diff --git a/package.json b/package.json index be97cc107..3865bae88 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "2sxc-ui", - "version": "14.07.00", + "version": "14.07.03", "description": "2sxc UI - the JS UI of 2sxc", "scripts": { "release-all": "npm run js2sxc && npm run inpage && npm run snippets && npm run quickdialog && npm run turn-on", diff --git a/projects/$2sxc/src/_/Window.ts b/projects/$2sxc/src/_/Window.ts index 5476cde3d..3fbafcb78 100644 --- a/projects/$2sxc/src/_/Window.ts +++ b/projects/$2sxc/src/_/Window.ts @@ -5,15 +5,20 @@ import { SxcGlobal } from '../sxc-global'; * @public */ declare global { - interface Window { - /** - * The global $2sxc object / function to generate Sxc instances - */ - $2sxc: SxcGlobal; + interface Window { + /** + * The global $2sxc object / function to generate Sxc instances + */ + $2sxc: SxcGlobal; - /** @internal */ - $: any & DnnJQueryExtensions; - } + /** @internal */ + $: any & DnnJQueryExtensions; + } + + /** + * The global $2sxc object / function to generate Sxc instances + */ + const $2sxc: SxcGlobal; } /** @internal */ diff --git a/projects/$2sxc/src/cms/command-names.ts b/projects/$2sxc/src/cms/command-names.ts index aa13f04c2..c90117567 100644 --- a/projects/$2sxc/src/cms/command-names.ts +++ b/projects/$2sxc/src/cms/command-names.ts @@ -11,7 +11,8 @@ * Names of commands known to 2sxc CMS - for use in toolbars and calling commands directly from code * @public */ -export enum CommandNames { +// IMPORTANT: this must be a `const enum`, otherwise it won't work in d.ts files +export const enum CommandNames { /** * `add` adds another demo-item to a **list of items**. * It does not open the edit-dialog. @@ -114,6 +115,7 @@ export enum CommandNames { * `code` will execute custom javascript. *
🔘 This is mainly for toolbars, to add buttons with custom code. *
📩 [Parameters](xref:Api.Js.SxcJs.CommandCodeParams) + *
_this used to be called `custom` and had a different setup_ */ code = 'code', diff --git a/projects/$2sxc/src/cms/command-params.ts b/projects/$2sxc/src/cms/command-params.ts index 973912498..086c7970c 100644 --- a/projects/$2sxc/src/cms/command-params.ts +++ b/projects/$2sxc/src/cms/command-params.ts @@ -2,73 +2,127 @@ import { TypeValue } from '../../../inpage/src/plumbing'; /** - * Command parameters are handed over to a command for execution + * Command parameters are handed over to a command for execution. + * It contains all possible combinations of parameters that can be used in a command. + * + * We will try to improve how this is documented, but ATM it just has all parameters, + * even though you may need none, or just a few. + * + * _Note: For your specific commands, you can also pass other parameters._ + * + * **Important for the docs** + * + * Most properties are actually not visible (you will get them in the types though). + * So actually you will usually create one of these: + * * [](xref:Api.Js.SxcJs.CommandParamsEntityById) + * * [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) + * * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * * [](xref:Api.Js.SxcJs.CommandAddParams) + * * [](xref:Api.Js.SxcJs.CommandAddExistingParams) + * * [](xref:Api.Js.SxcJs.CommandDataParams) + * * [](xref:Api.Js.SxcJs.CommandCopyParams) + * * [](xref:Api.Js.SxcJs.CommandCodeParams) + * * [](xref:Api.Js.SxcJs.CommandDeleteParams) + * * [](xref:Api.Js.SxcJs.CommandMetadataParams) + * * [](xref:Api.Js.SxcJs.CommandNewParams) + * + * Because of this, most of the properties below are NOT documented, as their purpose can change depending on the command used. * @public */ -export interface CommandParams { +export interface CommandParams extends Record + // We cannot extend from the real parameters, because this won't make it into the documentation + // extends Partial, Partial + { /** * The action is used in scenarios where the command name must be included + * @internal - wait with publishing this, it shouldn't actually be here. we may need to create another type which includes it */ action?: CommandNames; /** @internal */ items?: Array; - /** @internal */ + + /** + * Special change of dialogs, for example to change the edit-dialog into a new-dialog. + * @internal - not sure how this matches / replaces dialog, probably internal only + */ mode?: string; // both contentType and contentTypeName were used historically, so both variations may exist in Razor templaets - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ contentType?: string; - /** @internal */ + /** @internal old */ contentTypeName?: string; /** @internal */ pipelineId?: number; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ filters?: string; /** @internal */ dialog?: string; /** * @internal - * @deprecated but probably still in use + * @deprecated but still in use */ sortOrder?: number; /** - * Position in a list (content-block or field of another entity) - * index was added in v14.04 to replace the `sortOrder` which had a confusing name. - * @internal + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ index?: number; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ entityId?: number; - /** - * The guid - for people creating custom toolbars before 10.27 or automatically added since 10.27 - * @internal + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ entityGuid?: string; - /** - * The manually added title from before 10.27 - automatically enabled the delete-button - * @internal + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ entityTitle?: string; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ title?: string; - /** @internal */ - useModuleList?: boolean; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + useModuleList?: true; + + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ metadata?: CommandParamsMetadata; /** @internal */ isPublished?: boolean; - /** @internal */ - prefill?: Record; + + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + prefill?: Record; /** * Custom Code in the previous V9 standard @@ -76,9 +130,9 @@ export interface CommandParams { */ customCode?: string; - /** - * Custom Code function name only in the new V10.27 standard - * @internal + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ call?: string; @@ -89,14 +143,14 @@ export interface CommandParams { */ apps?: string; - /** - * Experimental in 10.27 - * @internal + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ parent?: string; - /** - * Experimental in 10.27 - * @internal + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ fields?: string; diff --git a/projects/$2sxc/src/cms/run-params.ts b/projects/$2sxc/src/cms/run-params.ts index 9878559e8..c819124b6 100644 --- a/projects/$2sxc/src/cms/run-params.ts +++ b/projects/$2sxc/src/cms/run-params.ts @@ -16,8 +16,7 @@ export interface RunParams { /** * The command params, like contentType, entityId etc. - * Optional for many actions, but can themselves also contain the property `action`, in which case action can be ommited. - * @internal + * Optional for many actions. */ params?: CommandParams; diff --git a/projects/$2sxc/src/index.ts b/projects/$2sxc/src/index.ts index 5fb9e4741..86c698e1b 100644 --- a/projects/$2sxc/src/index.ts +++ b/projects/$2sxc/src/index.ts @@ -21,5 +21,3 @@ export * from './cms'; export * from './sxc'; export * from './sxc-global'; - -(window as any).beta = new ToolUrlObjects(); \ No newline at end of file diff --git a/projects/inpage/src/commands/command/command-content-type.ts b/projects/inpage/src/commands/command/command-content-type.ts index f8578e85a..36b983158 100644 --- a/projects/inpage/src/commands/command/command-content-type.ts +++ b/projects/inpage/src/commands/command/command-content-type.ts @@ -1,4 +1,4 @@ -import { Command, CommandContentTypeParams, CommandNames, Commands } from '..'; +import { Command, CommandContentTypeParams, CommandNames, CommandParams, Commands } from '..'; import { ContextComplete } from '../../context'; /** @@ -23,7 +23,7 @@ Commands.addCommand(Command.clone(cmd, CommandNames.fields_old_contenttype)); /** * @internal */ -export function createContentTypeParams(context: ContextComplete) { +export function createContentTypeParams(context: ContextComplete): { contentType: string } { const result: CommandContentTypeParams = { contentType: context.button.command.params.contentType || context.contentBlock.contentTypeId, diff --git a/projects/inpage/src/commands/command/command-params-entity.ts b/projects/inpage/src/commands/command/command-params-entity.ts index 39cec1942..57e476488 100644 --- a/projects/inpage/src/commands/command/command-params-entity.ts +++ b/projects/inpage/src/commands/command/command-params-entity.ts @@ -21,6 +21,7 @@ export interface CommandParamsEntityInContentBlock { /** * Determins the position of the item in the list. + * index was added in v14.04 to replace the `sortOrder` which had a confusing name. */ index: number; diff --git a/projects/inpage/src/commands/engine/cms-engine.ts b/projects/inpage/src/commands/engine/cms-engine.ts index 7a491f16a..f57e65176 100644 --- a/projects/inpage/src/commands/engine/cms-engine.ts +++ b/projects/inpage/src/commands/engine/cms-engine.ts @@ -1,4 +1,5 @@ import { RunParams } from '../../../../$2sxc/src/cms'; +import { CommandParams } from '../../../../$2sxc/src/cms'; import { RunParamsHelpers } from '../../cms/run-params-helpers'; import { ContentBlockEditor } from '../../contentBlock/content-block-editor'; import { renderer } from '../../contentBlock/render'; @@ -11,9 +12,8 @@ import { ButtonCommand } from '../../toolbar/config'; import { InPageButtonJson } from '../../toolbar/config-loaders/config-formats/in-page-button'; import { WorkflowHelper, WorkflowPhases, WorkflowStepCodeArguments } from '../../workflow'; import { ToolbarWorkflowManager } from '../../workflow/toolbar-workflow-manager'; -import { CommandLinkGenerator } from '../command-link-generator'; -import { CommandParams } from '../../../../$2sxc/src/cms'; import { WorkflowStep } from '../../workflow/workflow-step'; +import { CommandLinkGenerator } from '../command-link-generator'; type CommandPromise = Promise; @@ -75,12 +75,14 @@ export class CmsEngine extends HasLog { const origEvent = event; const name = cmdParams.action; - const contentType = cmdParams.contentType; - cl.add(`run command '${name}' for type ${contentType}`); + // 2dm 2022-07-05 #badContentTypeExtractAndRefill - we seem to extract it, just to put it back on the ButtonCommand + // const contentType = cmdParams.contentType; + // cl.add(`run command '${name}' for type ${contentType}`); + cl.add(`run command '${name}'`); // Toolbar API v2 - const command = new ButtonCommand(name, contentType, cmdParams); - const newButtonConfig = new Button(command, command.name); + const btnCommand = new ButtonCommand(name, /* contentType, */ cmdParams); + const newButtonConfig = new Button(btnCommand, btnCommand.name); // merge conf & settings, but settings has higher priority const button: Button = { @@ -124,8 +126,7 @@ export class CmsEngine extends HasLog { } else { // if more than just a UI-action, then it needs to be sure the content-group is created first cl.add('command might change data, wrap in pre-flight to ensure content-block'); - finalPromise = wrapperPromise.then( - (wfArgs) => WorkflowHelper.isCancelled(wfArgs) + finalPromise = wrapperPromise.then((wfArgs) => WorkflowHelper.isCancelled(wfArgs) ? Promise.resolve(null) : ContentBlockEditor.singleton() .prepareToAddContent(context, cmdParams.useModuleList) diff --git a/projects/inpage/src/sxc/sxc-cms-real.ts b/projects/inpage/src/sxc/sxc-cms-real.ts index 6d318d92c..6cc353270 100644 --- a/projects/inpage/src/sxc/sxc-cms-real.ts +++ b/projects/inpage/src/sxc/sxc-cms-real.ts @@ -25,7 +25,7 @@ export class SxcCmsReal extends SxcCms { */ run(runParams: RunParams): Promise { RunParamsHelpers.ensureRunParamsInstanceOrError(runParams); - return new SxcGlobalCms().run({ ...runParams, context: this.sxc }); + return new SxcGlobalCms().runInternal({ ...runParams, context: this.sxc }); } // runTemplateDevelop() { diff --git a/projects/inpage/src/toolbar/config-loaders/command-config-loader.ts b/projects/inpage/src/toolbar/config-loaders/command-config-loader.ts index a5b0609f1..e9691af4e 100644 --- a/projects/inpage/src/toolbar/config-loaders/command-config-loader.ts +++ b/projects/inpage/src/toolbar/config-loaders/command-config-loader.ts @@ -1,5 +1,6 @@ import { ToolbarConfigLoader } from '.'; -import { InPageCommandJson, InPageCommandJsonWithTooMuchInfo } from '.'; +import { InPageCommandJsonWithTooMuchInfo } from '.'; +import { CommandParams } from '../../../../$2sxc/src/cms'; import { HasLog } from '../../core'; /** @@ -16,23 +17,24 @@ export class CommandConfigLoader extends HasLog { * because the target item could be specified directly, or in a complex internal object called entity * @param actDef */ - updateToV9(actDef: InPageCommandJsonWithTooMuchInfo): InPageCommandJson { + updateToV9(actDef: InPageCommandJsonWithTooMuchInfo): CommandParams { // doesn't have the pre-V9 properties, so we're fine if (!actDef.entity || !actDef.entity._2sxcEditInformation) - return actDef as InPageCommandJson; + return actDef as CommandParams; const editInfo = actDef.entity._2sxcEditInformation; // move up sortOrder property and set useModuleList - actDef.useModuleList = (editInfo.sortOrder !== undefined); // has sort-order, so use list + if (editInfo.sortOrder !== undefined) + actDef.useModuleList = true; // has sort-order, so use list if (editInfo.sortOrder !== undefined) actDef.sortOrder = editInfo.sortOrder; // move up entityId and clean-up the old 'entity' property if (actDef.entity.EntityId !== undefined) actDef.entityId = actDef.entity.EntityId; delete actDef.entity; - return actDef; + return actDef as unknown as CommandParams; } } diff --git a/projects/inpage/src/toolbar/config-loaders/config-formats/in-page-command.ts b/projects/inpage/src/toolbar/config-loaders/config-formats/in-page-command.ts index 2e836b544..9c010a3d1 100644 --- a/projects/inpage/src/toolbar/config-loaders/config-formats/in-page-command.ts +++ b/projects/inpage/src/toolbar/config-loaders/config-formats/in-page-command.ts @@ -26,7 +26,7 @@ export class InPageCommandJson { contentType?: string; /** determines that we should use a module list */ - useModuleList?: boolean; + useModuleList?: true; /** index in the list */ sortOrder?: number; diff --git a/projects/inpage/src/toolbar/config-loaders/group-config-loader.ts b/projects/inpage/src/toolbar/config-loaders/group-config-loader.ts index 08ba2f1b0..69645f4f2 100644 --- a/projects/inpage/src/toolbar/config-loaders/group-config-loader.ts +++ b/projects/inpage/src/toolbar/config-loaders/group-config-loader.ts @@ -1,6 +1,7 @@ import { ToolbarWip } from '.'; import { InPageButtonJson, InPageCommandJson } from '.'; import { ButtonGroupWip } from '.'; +import { RunParams } from '../../../../$2sxc/src/cms'; import { CommandNames, CommandParams, Commands } from '../../commands'; import { HasLog } from '../../core'; import { TypeValue } from '../../plumbing'; @@ -72,10 +73,10 @@ export class ButtonGroupConfigLoader extends HasLog { } // first check if we already got params in the object - then we will use those, otherwise the main object - const realParams = (btnCommand as ButtonCommand).params - || InPageCommandJson.noAction(btnCommand); + const realParams = (btnCommand as RunParams).params || InPageCommandJson.noAction(btnCommand); - const contentType = realParams.contentType; + // 2dm 2022-07-05 #badContentTypeExtractAndRefill - we seem to extract it, just to put it back on the ButtonCommand + // const contentType = realParams.contentType; // if the button belongs to a content-item, move the specs up to the item into the settings-object btnCommand = this.toolbar.command.updateToV9(btnCommand); @@ -83,7 +84,7 @@ export class ButtonGroupConfigLoader extends HasLog { // parameters adapter from v1 to v2 const params = { ...realParams, ...sharedParams }; // Toolbar API v2 - const command = new ButtonCommand(name, contentType, params); + const command = new ButtonCommand(name, /* contentType, */ params); let newButtonConfig = new Button(command, identifier); // settings adapter from v1 to v2 diff --git a/projects/inpage/src/toolbar/config/button-command.ts b/projects/inpage/src/toolbar/config/button-command.ts index 530ad999e..67b09ba3b 100644 --- a/projects/inpage/src/toolbar/config/button-command.ts +++ b/projects/inpage/src/toolbar/config/button-command.ts @@ -9,9 +9,10 @@ export class ButtonCommand { // customCode: string; - constructor(public name: CommandNames, contentType?: string, public params?: CommandParams) { + constructor(public name: CommandNames, /* contentType?: string, */ public params?: CommandParams) { if (!params) this.params = {}; - if (contentType) this.params.contentType = contentType; + // 2dm 2022-07-05 #badContentTypeExtractAndRefill - we seem to extract it, just to put it back on the ButtonCommand + // if (contentType) this.params.contentType = contentType; this.command = Commands.singleton().get(name); // activate command for this } diff --git a/projects/sxc-angular/package-lock.json b/projects/sxc-angular/package-lock.json index 530f76aab..060763e0d 100644 --- a/projects/sxc-angular/package-lock.json +++ b/projects/sxc-angular/package-lock.json @@ -21,7 +21,7 @@ "zone.js": "~0.11.6" }, "devDependencies": { - "@2sic.com/2sxc-typings": "^14.2.3", + "@2sic.com/2sxc-typings": "^14.7.1", "@angular-devkit/build-angular": "^13.0.0", "@angular/cli": "^13.0.0", "@angular/compiler-cli": "^13.0.0", @@ -46,9 +46,9 @@ } }, "node_modules/@2sic.com/2sxc-typings": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@2sic.com/2sxc-typings/-/2sxc-typings-14.2.3.tgz", - "integrity": "sha512-M8NNkzNIh3WmZUtxsFjG0NpMR+tSUkS5EzSHYz/uCnPLlBJTTpaJsXHpE/Y1H3bTxFklZUymnvNTcpdhFF2uGA==", + "version": "14.7.1", + "resolved": "https://registry.npmjs.org/@2sic.com/2sxc-typings/-/2sxc-typings-14.7.1.tgz", + "integrity": "sha512-0wcuVtt26zWbnLnMfskXm9bW0b19cd/BWAIbizNVkply0n18Stadm9KTNvjLBpdQ7Yhc+jScJAvjdc8RMnqY7A==", "dev": true }, "node_modules/@ampproject/remapping": { @@ -207,64 +207,6 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/esbuild": { "version": "0.13.12", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.12.tgz", @@ -315,15 +257,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@angular-devkit/build-angular/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/less": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", @@ -350,63 +283,6 @@ "source-map": "~0.6.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/postcss": { "version": "8.3.11", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", @@ -501,58 +377,6 @@ "source-map": "^0.6.0" } }, - "node_modules/@angular-devkit/build-angular/node_modules/stylus": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.55.0.tgz", - "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", - "dev": true, - "dependencies": { - "css": "^3.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/stylus/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/stylus/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/terser": { "version": "5.9.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", @@ -691,103 +515,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@angular-devkit/schematics/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -800,18 +527,6 @@ "npm": ">=2.0.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@angular-devkit/schematics/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -873,118 +588,21 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@angular/cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@angular/cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@angular/cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/@angular/cli/node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@angular/cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/cli/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular/cli/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "dev": true, + "dependencies": { + "ms": "2.1.2" }, "engines": { - "node": ">=10" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/@angular/cli/node_modules/semver": { @@ -1002,18 +620,6 @@ "node": ">=10" } }, - "node_modules/@angular/cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@angular/cli/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -6411,18 +6017,6 @@ "node": ">=8" } }, - "node_modules/critters/node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/critters/node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -6435,30 +6029,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/critters/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/critters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6658,42 +6228,6 @@ "webpack": "^5.0.0" } }, - "node_modules/css-loader/node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/css-loader/node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/css-loader/node_modules/semver": { "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", @@ -8866,12 +8400,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/har-validator/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -9507,45 +9035,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/inquirer/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inquirer/node_modules/rxjs": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", @@ -10522,12 +10011,6 @@ "karma-jasmine": ">=1.1" } }, - "node_modules/karma-jasmine/node_modules/jasmine-core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", - "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", - "dev": true - }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", @@ -10552,15 +10035,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/karma/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/karma/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -14575,18 +14049,6 @@ "node": ">=4" } }, - "node_modules/postcss-selector-parser/node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/postcss-url": { "version": "10.1.3", "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz", @@ -14773,15 +14235,6 @@ "node": ">=0.10.0" } }, - "node_modules/protractor/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/protractor/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -17381,25 +16834,6 @@ "typescript": ">=2.0" } }, - "node_modules/ts-node/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ts-node/node_modules/source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/tslib": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", @@ -18557,9 +17991,9 @@ }, "dependencies": { "@2sic.com/2sxc-typings": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@2sic.com/2sxc-typings/-/2sxc-typings-14.2.3.tgz", - "integrity": "sha512-M8NNkzNIh3WmZUtxsFjG0NpMR+tSUkS5EzSHYz/uCnPLlBJTTpaJsXHpE/Y1H3bTxFklZUymnvNTcpdhFF2uGA==", + "version": "14.7.1", + "resolved": "https://registry.npmjs.org/@2sic.com/2sxc-typings/-/2sxc-typings-14.7.1.tgz", + "integrity": "sha512-0wcuVtt26zWbnLnMfskXm9bW0b19cd/BWAIbizNVkply0n18Stadm9KTNvjLBpdQ7Yhc+jScJAvjdc8RMnqY7A==", "dev": true }, "@ampproject/remapping": { @@ -18637,84 +18071,41 @@ "https-proxy-agent": "5.0.0", "inquirer": "8.2.0", "karma-source-map-support": "1.4.0", - "less": "4.1.2", - "less-loader": "10.2.0", - "license-webpack-plugin": "3.0.0", - "loader-utils": "3.0.0", - "mini-css-extract-plugin": "2.4.3", - "minimatch": "3.0.4", - "open": "8.4.0", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "6.0.1", - "piscina": "3.1.0", - "postcss": "8.3.11", - "postcss-import": "14.0.2", - "postcss-loader": "6.2.0", - "postcss-preset-env": "6.7.0", - "regenerator-runtime": "0.13.9", - "resolve-url-loader": "4.0.0", - "rxjs": "6.6.7", - "sass": "1.43.4", - "sass-loader": "12.3.0", - "semver": "7.3.5", - "source-map-loader": "3.0.0", - "source-map-support": "0.5.20", - "stylus": "0.55.0", - "stylus-loader": "6.2.0", - "terser": "5.9.0", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.3.1", - "webpack": "5.60.0", - "webpack-dev-middleware": "5.2.1", - "webpack-dev-server": "4.4.0", - "webpack-merge": "5.8.0", - "webpack-subresource-integrity": "5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, + "less": "4.1.2", + "less-loader": "10.2.0", + "license-webpack-plugin": "3.0.0", + "loader-utils": "3.0.0", + "mini-css-extract-plugin": "2.4.3", + "minimatch": "3.0.4", + "open": "8.4.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "6.0.1", + "piscina": "3.1.0", + "postcss": "8.3.11", + "postcss-import": "14.0.2", + "postcss-loader": "6.2.0", + "postcss-preset-env": "6.7.0", + "regenerator-runtime": "0.13.9", + "resolve-url-loader": "4.0.0", + "rxjs": "6.6.7", + "sass": "1.43.4", + "sass-loader": "12.3.0", + "semver": "7.3.5", + "source-map-loader": "3.0.0", + "source-map-support": "0.5.20", + "stylus": "0.55.0", + "stylus-loader": "6.2.0", + "terser": "5.9.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.3.1", + "webpack": "5.60.0", + "webpack-dev-middleware": "5.2.1", + "webpack-dev-server": "4.4.0", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.0.0" + }, + "dependencies": { "esbuild": { "version": "0.13.12", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.12.tgz", @@ -18755,12 +18146,6 @@ "path-is-absolute": "^1.0.0" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "less": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", @@ -18779,45 +18164,6 @@ "tslib": "^2.3.0" } }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, "postcss": { "version": "8.3.11", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", @@ -18886,45 +18232,6 @@ "source-map": "^0.6.0" } }, - "stylus": { - "version": "0.55.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.55.0.tgz", - "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", - "dev": true, - "requires": { - "css": "^3.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "terser": { "version": "5.9.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", @@ -19029,73 +18336,6 @@ "rxjs": "6.6.7" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -19105,15 +18345,6 @@ "tslib": "^1.9.0" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -19164,40 +18395,6 @@ "uuid": "8.3.2" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -19207,39 +18404,6 @@ "ms": "2.1.2" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -19249,15 +18413,6 @@ "lru-cache": "^6.0.0" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -23406,12 +22561,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, "nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -23421,17 +22570,6 @@ "boolbase": "^1.0.0" } }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23584,23 +22722,6 @@ "semver": "^7.3.5" }, "dependencies": { - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "dev": true, - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, "semver": { "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", @@ -25232,12 +24353,6 @@ "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true } } }, @@ -25748,33 +24863,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, "rxjs": { "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", @@ -26500,12 +25588,6 @@ "color-convert": "^2.0.1" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -26624,14 +25706,6 @@ "dev": true, "requires": { "jasmine-core": "^3.6.0" - }, - "dependencies": { - "jasmine-core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", - "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", - "dev": true - } } }, "karma-jasmine-html-reporter": { @@ -29544,14 +28618,6 @@ "indexes-of": "^1.0.1", "uniq": "^1.0.1", "util-deprecate": "^1.0.2" - }, - "dependencies": { - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - } } }, "postcss-url": { @@ -29692,12 +28758,6 @@ "array-uniq": "^1.0.1" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -31729,24 +30789,6 @@ "make-error": "^1.1.1", "source-map-support": "^0.5.6", "yn": "^3.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } } }, "tslib": { diff --git a/projects/sxc-angular/package.json b/projects/sxc-angular/package.json index 3b99d1cd9..ddeab0df1 100644 --- a/projects/sxc-angular/package.json +++ b/projects/sxc-angular/package.json @@ -6,6 +6,8 @@ "dsa-copy:dist": "cpx \"dist/sxc-angular/{,**/}*.**.*\" \"../../../app-dnn-sxc-angular-dev/node_modules/@2sic.com/dnn-sxc-angular\" -w", "dsa-copy:2dm": "cpx \"dist/sxc-angular/{,**/}*.**.*\" \"../../../app-Directory/node_modules/@2sic.com/dnn-sxc-angular\" -w -v", "dsa-copy:template-ng11": "cpx \"dist/sxc-angular/{,**/}*.*\" \"/Projects/2sxc/app-template-angular/ng/node_modules/@2sic.com/dnn-sxc-angular\" -v", + "pub-dry": "cd dist/sxc-angular && npm publish --dry-run", + "pub": "cd dist/sxc-angular && npm publish", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" @@ -25,7 +27,7 @@ "zone.js": "~0.11.6" }, "devDependencies": { - "@2sic.com/2sxc-typings": "^14.2.3", + "@2sic.com/2sxc-typings": "^14.7.1", "@angular-devkit/build-angular": "^13.0.0", "@angular/cli": "^13.0.0", "@angular/compiler-cli": "^13.0.0", diff --git a/projects/sxc-angular/projects/sxc-angular/package.json b/projects/sxc-angular/projects/sxc-angular/package.json index 9e4a4f6d7..343bb2941 100644 --- a/projects/sxc-angular/projects/sxc-angular/package.json +++ b/projects/sxc-angular/projects/sxc-angular/package.json @@ -1,6 +1,6 @@ { "name": "@2sic.com/sxc-angular", - "version": "14.02.01", + "version": "14.07.00", "author": "2sic.com - daniel mettler (iJungleboy)", "bugs": { "url": "https://github.com/2sic/2sxc-ui/issues" diff --git a/projects/sxc-angular/projects/sxc-angular/src/lib/context/context-info.ts b/projects/sxc-angular/projects/sxc-angular/src/lib/context/context-info.ts index 5a1528f99..49e95e3f0 100644 --- a/projects/sxc-angular/projects/sxc-angular/src/lib/context/context-info.ts +++ b/projects/sxc-angular/projects/sxc-angular/src/lib/context/context-info.ts @@ -1,4 +1,4 @@ -import { Sxc, SxcGlobal } from "@2sic.com/2sxc-typings"; +import { Sxc, SxcGlobal } from '@2sic.com/2sxc-typings'; // These are the parameters which make up the current context / state of this app. // It's mainly needed to ensure that the Http Service is correctly set up. @@ -27,7 +27,7 @@ export interface ContextInfo { /** * Replace app name in path; replaces /app/auto/ - */ + */ appNameInPath: string; /** diff --git a/projects/sxc-typings/api-extractor-index.d.ts b/projects/sxc-typings/api-extractor-index.d.ts new file mode 100644 index 000000000..8c47d5a33 --- /dev/null +++ b/projects/sxc-typings/api-extractor-index.d.ts @@ -0,0 +1,11 @@ +// type definitions for 2sxc +// project: 2sxc typings +// definitions by: Daniel Mettler, 2sic + +// This file must be manually maintained, it's used by the api-extractor to start + +export * from './parts/dist/$2sxc/src'; + +export * from './parts/dist/core'; + +export * from './parts/dist/inpage/src'; diff --git a/projects/sxc-typings/api-extractor.json b/projects/sxc-typings/api-extractor.json index 472041683..fd7af99cd 100644 --- a/projects/sxc-typings/api-extractor.json +++ b/projects/sxc-typings/api-extractor.json @@ -45,7 +45,7 @@ * * SUPPORTED TOKENS: , , */ - "mainEntryPointFilePath": "./index.d.ts", + "mainEntryPointFilePath": "./api-extractor-index.d.ts", /** * A list of NPM package names whose exports should be treated as part of this package. @@ -233,7 +233,7 @@ * SUPPORTED TOKENS: , , * DEFAULT VALUE: "" */ - "publicTrimmedFilePath": "./index-public-part.d.ts", + "publicTrimmedFilePath": "./index-public.d.ts", /** * When a declaration is trimmed, by default it will be replaced by a code comment such as diff --git a/projects/sxc-typings/dist/2sxc-typings.d.ts b/projects/sxc-typings/dist/2sxc-typings.d.ts index dc833fc08..b7c9cabef 100644 --- a/projects/sxc-typings/dist/2sxc-typings.d.ts +++ b/projects/sxc-typings/dist/2sxc-typings.d.ts @@ -269,7 +269,7 @@ declare class ButtonCommand { name: CommandNames; params?: CommandParams; readonly command: Command; - constructor(name: CommandNames, contentType?: string, params?: CommandParams); + constructor(name: CommandNames, /* contentType?: string, */ params?: CommandParams); /** make static, as many ButtonCommand signatures are actually not objects */ static mergeAdditionalParams(command: ButtonCommand, additionalParams: Record): CommandParams; } @@ -496,7 +496,7 @@ declare class CommandConfigLoader extends HasLog { * because the target item could be specified directly, or in a complex internal object called entity * @param actDef */ - updateToV9(actDef: InPageCommandJsonWithTooMuchInfo): InPageCommandJson; + updateToV9(actDef: InPageCommandJsonWithTooMuchInfo): CommandParams; } /** @@ -655,7 +655,7 @@ export declare interface CommandMetadataParams extends CommandContentTypeParams, * Names of commands known to 2sxc CMS - for use in toolbars and calling commands directly from code * @public */ -export declare enum CommandNames { +export declare const enum CommandNames { /** * `add` adds another demo-item to a **list of items**. * It does not open the edit-dialog. @@ -745,6 +745,7 @@ export declare enum CommandNames { * `code` will execute custom javascript. *
🔘 This is mainly for toolbars, to add buttons with custom code. *
📩 [Parameters](xref:Api.Js.SxcJs.CommandCodeParams) + *
_this used to be called `custom` and had a different setup_ */ code = "code", /** @@ -948,69 +949,117 @@ export declare interface CommandNewParams extends CommandContentTypeParams, Part } /** - * Command parameters are handed over to a command for execution + * Command parameters are handed over to a command for execution. + * It contains all possible combinations of parameters that can be used in a command. + * + * We will try to improve how this is documented, but ATM it just has all parameters, + * even though you may need none, or just a few. + * + * _Note: For your specific commands, you can also pass other parameters._ + * + * **Important for the docs** + * + * Most properties are actually not visible (you will get them in the types though). + * So actually you will usually create one of these: + * * [](xref:Api.Js.SxcJs.CommandParamsEntityById) + * * [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) + * * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * * [](xref:Api.Js.SxcJs.CommandAddParams) + * * [](xref:Api.Js.SxcJs.CommandAddExistingParams) + * * [](xref:Api.Js.SxcJs.CommandDataParams) + * * [](xref:Api.Js.SxcJs.CommandCopyParams) + * * [](xref:Api.Js.SxcJs.CommandCodeParams) + * * [](xref:Api.Js.SxcJs.CommandDeleteParams) + * * [](xref:Api.Js.SxcJs.CommandMetadataParams) + * * [](xref:Api.Js.SxcJs.CommandNewParams) + * + * Because of this, most of the properties below are NOT documented, as their purpose can change depending on the command used. * @public */ -export declare interface CommandParams { +export declare interface CommandParams extends Record { /** * The action is used in scenarios where the command name must be included + * @internal - wait with publishing this, it shouldn't actually be here. we may need to create another type which includes it */ action?: CommandNames; /** @internal */ items?: Array; - /** @internal */ + /** + * Special change of dialogs, for example to change the edit-dialog into a new-dialog. + * @internal - not sure how this matches / replaces dialog, probably internal only + */ mode?: string; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ contentType?: string; - /** @internal */ + /** @internal old */ contentTypeName?: string; /** @internal */ pipelineId?: number; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ filters?: string; /** @internal */ dialog?: string; /** * @internal - * @deprecated but probably still in use + * @deprecated but still in use */ sortOrder?: number; /** - * Position in a list (content-block or field of another entity) - * index was added in v14.04 to replace the `sortOrder` which had a confusing name. - * @internal + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ index?: number; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ entityId?: number; /** - * The guid - for people creating custom toolbars before 10.27 or automatically added since 10.27 - * @internal + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ entityGuid?: string; /** - * The manually added title from before 10.27 - automatically enabled the delete-button - * @internal + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ entityTitle?: string; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ title?: string; - /** @internal */ - useModuleList?: boolean; - /** @internal */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + useModuleList?: true; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ metadata?: CommandParamsMetadata; /** @internal */ isPublished?: boolean; - /** @internal */ - prefill?: Record; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + prefill?: Record; /** * Custom Code in the previous V9 standard * @internal */ customCode?: string; /** - * Custom Code function name only in the new V10.27 standard - * @internal + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ call?: string; /** @@ -1019,13 +1068,13 @@ export declare interface CommandParams { */ apps?: string; /** - * Experimental in 10.27 - * @internal + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ parent?: string; /** - * Experimental in 10.27 - * @internal + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public */ fields?: string; /** @@ -1066,6 +1115,7 @@ export declare interface CommandParamsEntityById { export declare interface CommandParamsEntityInContentBlock { /** * Determins the position of the item in the list. + * index was added in v14.04 to replace the `sortOrder` which had a confusing name. */ index: number; /** @@ -1618,7 +1668,7 @@ declare class InPageCommandJson { /** the content-type for new items */ contentType?: string; /** determines that we should use a module list */ - useModuleList?: boolean; + useModuleList?: true; /** index in the list */ sortOrder?: number; /** Experimental in 10.27 */ @@ -2588,8 +2638,7 @@ export declare interface RunParams { action?: CommandNames; /** * The command params, like contentType, entityId etc. - * Optional for many actions, but can themselves also contain the property `action`, in which case action can be ommited. - * @internal + * Optional for many actions. */ params?: CommandParams; /** diff --git a/projects/sxc-typings/index-docs.ts b/projects/sxc-typings/docs-index.ts similarity index 66% rename from projects/sxc-typings/index-docs.ts rename to projects/sxc-typings/docs-index.ts index c5952fcad..18753b855 100644 --- a/projects/sxc-typings/index-docs.ts +++ b/projects/sxc-typings/docs-index.ts @@ -3,9 +3,9 @@ this has the definition of the augmented window object, because the api exporter doesn't support this. */ -import { SxcGlobal } from './index-public-part'; +import { SxcGlobal } from './docs-public'; -export * from "./index-public-part"; +export * from "./docs-public"; /** * Make sure the code knows that $2sxc exists on window @@ -17,4 +17,9 @@ declare global { */ $2sxc: SxcGlobal; } + + /** + * The global $2sxc object / function to generate Sxc instances + */ + const $2sxc: SxcGlobal; } \ No newline at end of file diff --git a/projects/sxc-typings/index-public-part.d.ts b/projects/sxc-typings/docs-public.ts similarity index 95% rename from projects/sxc-typings/index-public-part.d.ts rename to projects/sxc-typings/docs-public.ts index c4ce21621..28ca55946 100644 --- a/projects/sxc-typings/index-public-part.d.ts +++ b/projects/sxc-typings/docs-public.ts @@ -214,7 +214,7 @@ export declare interface CommandMetadataParams extends CommandContentTypeParams, * Names of commands known to 2sxc CMS - for use in toolbars and calling commands directly from code * @public */ -export declare enum CommandNames { +export declare const enum CommandNames { /** * `add` adds another demo-item to a **list of items**. * It does not open the edit-dialog. @@ -296,6 +296,7 @@ export declare enum CommandNames { * `code` will execute custom javascript. *
🔘 This is mainly for toolbars, to add buttons with custom code. *
📩 [Parameters](xref:Api.Js.SxcJs.CommandCodeParams) + *
_this used to be called `custom` and had a different setup_ */ code = "code", /* Excluded from this release type: code_old_custom */ @@ -463,36 +464,109 @@ export declare interface CommandNewParams extends CommandContentTypeParams, Part } /** - * Command parameters are handed over to a command for execution + * Command parameters are handed over to a command for execution. + * It contains all possible combinations of parameters that can be used in a command. + * + * We will try to improve how this is documented, but ATM it just has all parameters, + * even though you may need none, or just a few. + * + * _Note: For your specific commands, you can also pass other parameters._ + * + * **Important for the docs** + * + * Most properties are actually not visible (you will get them in the types though). + * So actually you will usually create one of these: + * * [](xref:Api.Js.SxcJs.CommandParamsEntityById) + * * [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) + * * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * * [](xref:Api.Js.SxcJs.CommandAddParams) + * * [](xref:Api.Js.SxcJs.CommandAddExistingParams) + * * [](xref:Api.Js.SxcJs.CommandDataParams) + * * [](xref:Api.Js.SxcJs.CommandCopyParams) + * * [](xref:Api.Js.SxcJs.CommandCodeParams) + * * [](xref:Api.Js.SxcJs.CommandDeleteParams) + * * [](xref:Api.Js.SxcJs.CommandMetadataParams) + * * [](xref:Api.Js.SxcJs.CommandNewParams) + * + * Because of this, most of the properties below are NOT documented, as their purpose can change depending on the command used. * @public */ -export declare interface CommandParams { - /** - * The action is used in scenarios where the command name must be included - */ - action?: CommandNames; +export declare interface CommandParams extends Record { + /* Excluded from this release type: action */ /* Excluded from this release type: items */ /* Excluded from this release type: mode */ - /* Excluded from this release type: contentType */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + contentType?: string; /* Excluded from this release type: contentTypeName */ /* Excluded from this release type: pipelineId */ - /* Excluded from this release type: filters */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + filters?: string; /* Excluded from this release type: dialog */ /* Excluded from this release type: sortOrder */ - /* Excluded from this release type: index */ - /* Excluded from this release type: entityId */ - /* Excluded from this release type: entityGuid */ - /* Excluded from this release type: entityTitle */ - /* Excluded from this release type: title */ - /* Excluded from this release type: useModuleList */ - /* Excluded from this release type: metadata */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + index?: number; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + entityId?: number; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + entityGuid?: string; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + entityTitle?: string; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + title?: string; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + useModuleList?: true; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + metadata?: CommandParamsMetadata; /* Excluded from this release type: isPublished */ - /* Excluded from this release type: prefill */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + prefill?: Record; /* Excluded from this release type: customCode */ - /* Excluded from this release type: call */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + call?: string; /* Excluded from this release type: apps */ - /* Excluded from this release type: parent */ - /* Excluded from this release type: fields */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + parent?: string; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + fields?: string; /* Excluded from this release type: isshared */ } @@ -527,6 +601,7 @@ export declare interface CommandParamsEntityById { export declare interface CommandParamsEntityInContentBlock { /** * Determins the position of the item in the list. + * index was added in v14.04 to replace the `sortOrder` which had a confusing name. */ index: number; /** @@ -1130,7 +1205,11 @@ export declare interface RunParams { * Required. */ action?: CommandNames; - /* Excluded from this release type: params */ + /** + * The command params, like contentType, entityId etc. + * Optional for many actions. + */ + params?: CommandParams; /** * The event which triggered this command - sometimes useful internally further use. * Optional in most cases, but in some cases it will improve the behavior of the code. diff --git a/projects/sxc-typings/index-public-part.ts b/projects/sxc-typings/index-public-part.ts deleted file mode 100644 index c4ce21621..000000000 --- a/projects/sxc-typings/index-public-part.ts +++ /dev/null @@ -1,2031 +0,0 @@ -/* Excluded from this release type: Actions */ - -/* Excluded from this release type: AjaxPromise */ - -/* Excluded from this release type: AntiForgeryTokenHeaderNameDnn */ - -/* Excluded from this release type: ApiExtensionPlaceholder */ - -/* Excluded from this release type: ApiUrlRoots */ - -/* Excluded from this release type: AppApiMap */ - -/* Excluded from this release type: AppApiMarker */ - -/* Excluded from this release type: AssetsLoader */ - -/* Excluded from this release type: AttrJsonContentGroup */ - -/* Excluded from this release type: AttrJsonEditContext */ - -/* Excluded from this release type: AttrJsonEntity */ - -/* Excluded from this release type: AttrJsonEnvironment */ - -/* Excluded from this release type: AttrJsonError */ - -/* Excluded from this release type: AttrJsonLanguage */ - -/* Excluded from this release type: AttrJsonUi */ - -/* Excluded from this release type: AttrJsonUser */ - -/* Excluded from this release type: BuildRule */ - -/* Excluded from this release type: BuildSteps */ - -/* Excluded from this release type: buildSxcRoot */ - -/* Excluded from this release type: Button */ - -/* Excluded from this release type: ButtonCommand */ - -/* Excluded from this release type: ButtonConfigLoader */ - -declare type ButtonGenOrProp = ButtonPropGen | T; - -/* Excluded from this release type: ButtonGroup */ - -/* Excluded from this release type: ButtonGroupConfigLoader */ - -/* Excluded from this release type: ButtonGroupsWip */ - -/* Excluded from this release type: ButtonGroupWip */ - -/** - * This is the most common call signature on most ButtonConfig properties - * @public - */ -declare type ButtonPropGen = (context: ContextComplete) => T; - -/** - * Structure for constants in the selectors, to guarantee we got everything - */ -declare interface CbOrMod { - id: string; - class: string; - selector: string; - findAllLists: () => HTMLElement[]; - findClosestList: (element: HTMLElement) => HTMLElement; - context: string; - singleItem?: string; -} - -/* Excluded from this release type: CmdParHlp */ - -/* Excluded from this release type: CmsEngine */ - -/* Excluded from this release type: Command */ - -/** - * Parameters used for the command `add-existing`. - *
- * The contentType name determines what items will be shown in the dialog. - * Depending on your use case, you will need to use the - * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) or [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) parameters as well. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandAddExistingParams extends CommandAddParams { -} - -/** - * Parameters used for the command `add`. - *
- * The `contentType` determines what items will be created, the `index` where. - * Depending on your use case, you will need to use the - * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) or [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) parameters as well. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandAddParams extends CommandContentTypeParams, Pick, Partial>, Partial> { -} - -/* Excluded from this release type: CommandCode */ - -/** - * Parameters used for the command `code` on toolbars (new in v14.4). - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandCodeParams { - /** - * Name of the function to call - must be available in the context. - * This is usually as a function window. Example: - *
- * If `call` is `sayHello` you need a `window.sayHello(params, context, event)`. - */ - call: string; -} - -/* Excluded from this release type: CommandConfigLoader */ - -/** - * Parameters used for the command `contenttype`. - *
- * The content-type name determines what items will be loaded to manage the fields. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandContentTypeParams { - /** - * The content-type name - */ - contentType: string; -} - -/** - * Parameters used for the command `copy`. - * Will copy the entity on `entityId`. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandCopyParams extends CommandContentTypeParams, CommandParamsEntityById { -} - -/* Excluded from this release type: CommandCustomParams */ - -/** - * Parameters used for the command `data`. - *
- * The content-type name determines what items will be managed. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandDataParams extends CommandContentTypeParams { - /** - * Filters to apply to the list of items. - *
- * Each property targets a field. - * The value is a string, number or array for filtering EntityIds or EntityGuids - */ - filters?: Record; -} - -/** - * Parameters used for the command `delete`. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandDeleteParams { - /** - * ID of item to delete, usually detected from context. - */ - entityId: number; - /** - * Guid of item to delete, usually detected from context. - */ - entityGuid: string; - /** - * Title of item to delete, usually detected from context. - * This is important to show the "Are you sure?" dialog. - */ - entityTitle: string; -} - -/* Excluded from this release type: CommandLinkGenerator */ - -/** - * Parameters used for the command `metadata`. - *
- * Will do either one of these: - * - if it has an `entityId`, will just open `edit` for that Entity - * - if it has no `entityId`, will open `new` for the current `contentType` - * and assign to the target specified by `metadata`: - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandMetadataParams extends CommandContentTypeParams, CommandParamsEntityById { - /** - * Target to assign the metadata to. - */ - metadata: CommandParamsMetadata; -} - -/** - * Names of commands known to 2sxc CMS - for use in toolbars and calling commands directly from code - * @public - */ -export declare enum CommandNames { - /** - * `add` adds another demo-item to a **list of items**. - * It does not open the edit-dialog. - *
The new item is placed after the item the (+) was clicked on. - *
💡 - * This is different than new, which opens a dialog to add something. - *
🪜 Only appears on toolbars of items which are in a list. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandAddParams) - */ - add = "add", - /** - * `add-existing` opens a dialog allowing the user to select an existing item to add to a **list of items**. - *
The new item is placed after the item the (+) was clicked on. - *
🪜 Only appears on toolbars of items which are in a list. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandAddExistingParams) - *
🆕 in v11.01 - */ - addExisting = "add-existing", - /** - * `app` opens the app-admin dialog - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 No params required, - * (auto-detected from context) - */ - app = "app", - /** - * `app-import` opens the dialog to import an App. - *
🔘 This is not available on the toolbar. - *
📩 No params required, - * (auto-detected from context) - */ - appImport = "app-import", - /** - * `app-resources` opens the edit dialog for app-resources (multi-language texts, labels etc.). - *
🔘 It's disabled on the toolbar if the app doesn't have resource-values to configure. - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 No params required, - * (auto-detected from context) - */ - appResources = "app-resources", - /** - * `app-settings` opens the edit dialog for the app-settings. - *
🔘 It's disabled on the toolbar if the app doesn't have setting-values to configure - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 No params required, - * (auto-detected from context) - */ - appSettings = "app-settings", - /** - * `apps` opens the manage all apps dialog. - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 No params required, - * (auto-detected based on toolbar) - */ - apps = "apps", - /** - * `data` opens the list to manage all items of a specific content-type. - *
🔘 Will use the settings of the current template to open. - * It is only shown to elevated admins. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandDataParams) - */ - data = "data", - /* Excluded from this release type: data_old_contentItems */ - /** - * `fields` opens the dialog to view or modify fields of a content-type. - *
🔘 On a toolbar it will use the content-type of the current item. - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandContentTypeParams) - */ - fields = "fields", - /* Excluded from this release type: fields_old_contenttype */ - /** - * `copy` opens the edit-dialog for the current item in copy-mode, so when saving it will be a new item. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandCopyParams) - *
🆕 in v14.03 - */ - copy = "copy", - /** - * `code` will execute custom javascript. - *
🔘 This is mainly for toolbars, to add buttons with custom code. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandCodeParams) - */ - code = "code", - /* Excluded from this release type: code_old_custom */ - /** - * `delete` will delete (not just remove) a content-item. - *
💡 This is similar to `remove` but really deletes the data from the DB. - *
🔘 It only appears if the toolbar explicitly asks for it. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandDeleteParams) - * (auto-detected from context) - */ - delete = "delete", - /** - * `edit` opens an edit-dialog. - *
- * In scenarios where the page is currently showing a _demo item_, this will have the same effect as `add`. - * So instead of editing the _demo item_ it would trigger a dialog to add a new item. - *
🔘 Only appears if `entityId` is known or item is in a list. - *
📩 Parameters either one of these: - * [Id](xref:Api.Js.SxcJs.CommandParamsEntityById), - * [In Block](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock), - * [In List](xref:Api.Js.SxcJs.CommandParamsEntityInList) - * (auto-detected from context) - */ - edit = "edit", - /* Excluded from this release type: image */ - /** - * `insights` opens the insights logs page - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 No params required. - */ - insights = "insights", - /* Excluded from this release type: insights_old_server */ - /** - * `instance-list` opens a dialog to manually re-order **items in a list**. - *
🪜 Only appears on toolbars of items which are in a list. - *
📩 No params required, - * (auto-detected from context) - */ - list = "list", - /* Excluded from this release type: list_old_instanceList */ - /** - * `layout` opens the in-page dialog to change the layout of the current content. - *
📩 No params required, - * (auto-detected from context) - */ - layout = "layout", - /** - * `metadata` opens the edit-dialog for the current metadata item. - *
🔘 It only appears if the toolbar explicitly asks for it. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandMetadataParams) - */ - metadata = "metadata", - /** - * `more` create a "…" (ellipsis) button which flips through the button groups of toolbars - *
🔘 It only appears if the toolbar has `more`=`auto` and has multiple groups. - *
📩 No params required, - * (auto-detected based on toolbar) - */ - more = "more", - /** - * `movedown` moves a content-item down one position in a **list of items**. - *
🪜 Only appears on toolbars of items which are in a list. - *
📩 Parameters either one of these: - * [In Block](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock), - * [In List](xref:Api.Js.SxcJs.CommandParamsEntityInList) - * (auto-detected from context) - */ - moveDown = "movedown", - /** - * `moveup` moves a content-item up one position in a **list of items**. - *
🪜 Only appears on toolbars of items which are in a list. - *
📩 Parameters either one of these: - * [In Block](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock), - * [In List](xref:Api.Js.SxcJs.CommandParamsEntityInList) - * (auto-detected from context) - */ - moveUp = "moveup", - /** - * `new` opens the edit-dialog to create a new item/entity. - *
- * If the previous item is in a list, it will add it to that list _after_ the previous item with the toolbar. - * Otherwise it just creates it and the visualization will differ depending on the App. - *
🪜 It works differently for lists - in which case it also adds it to the list. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandNewParams) - * (usually auto-detected from context) - */ - new = "new", - /* Excluded from this release type: newMode */ - /** - * `publish` tells the system to update a content-items status to published. If there was a published and a draft before, the draft will replace the previous item - *
🔘 Appears automatically if the item is in draft mode / not published. - *
📩 Parameters either one of these: - * [Id](xref:Api.Js.SxcJs.CommandParamsEntityById), - * [In Block](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock), - * [In List](xref:Api.Js.SxcJs.CommandParamsEntityInList) - * (auto-detected from context) - */ - publish = "publish", - /** - * `remove` removes an item from a list of items. - *
🪜 Only appears on toolbars of items which are in a list. - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandParamsEntityInList) - * (auto-detected from context) - */ - remove = "remove", - /** - * `replace` opens the dialog to assign a different content-item in this slot on module-assigned content items - *
📩 [Parameters](xref:Api.Js.SxcJs.CommandParamsEntityInList) - * (auto-detected from context) - */ - replace = "replace", - /** - * `template-develop` opens the template-editor dialog in a new window. - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 No params required, - * (auto-detected from context) - */ - template = "template", - /* Excluded from this release type: template_old_develop */ - /** - * `template-query` opens the pipeline/query-designer in a new window. - *
🔘 It's not available on the simple Content App, only on full Apps. - * It is disabled if no query is configured. - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 No params required, - * (auto-detected from context) - */ - query = "query", - /* Excluded from this release type: query_old_templateQuery */ - /** - * `template-settings` will change settings on the template currently used - *
🔐 Toolbar shows this automatically to elevated admins. - */ - view = "view", - /* Excluded from this release type: view_old_templateSettings */ - /** - * `system` opens the system dialog for this zone/site. - *
🔐 Toolbar shows this automatically to elevated admins. - *
📩 No params required, - * (auto-detected from context) - */ - system = "system", - /* Excluded from this release type: system_old_zone */ -} - -/** - * Parameters used for the command `new` - *
- * The ContentType name determines what kind of item will be created. - *
- * Can also contain `prefill` to add values to the new item. - *
- * Can also contain list-information, in which case it's added to that list. - * Depending on your use case, you will need to use the - * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) or [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) parameters as well. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandNewParams extends CommandContentTypeParams, Partial, Partial { - /** - * Optional values to prefill in the new-form - */ - prefill?: Record; -} - -/** - * Command parameters are handed over to a command for execution - * @public - */ -export declare interface CommandParams { - /** - * The action is used in scenarios where the command name must be included - */ - action?: CommandNames; - /* Excluded from this release type: items */ - /* Excluded from this release type: mode */ - /* Excluded from this release type: contentType */ - /* Excluded from this release type: contentTypeName */ - /* Excluded from this release type: pipelineId */ - /* Excluded from this release type: filters */ - /* Excluded from this release type: dialog */ - /* Excluded from this release type: sortOrder */ - /* Excluded from this release type: index */ - /* Excluded from this release type: entityId */ - /* Excluded from this release type: entityGuid */ - /* Excluded from this release type: entityTitle */ - /* Excluded from this release type: title */ - /* Excluded from this release type: useModuleList */ - /* Excluded from this release type: metadata */ - /* Excluded from this release type: isPublished */ - /* Excluded from this release type: prefill */ - /* Excluded from this release type: customCode */ - /* Excluded from this release type: call */ - /* Excluded from this release type: apps */ - /* Excluded from this release type: parent */ - /* Excluded from this release type: fields */ - /* Excluded from this release type: isshared */ -} - -/** - * Parameters used for commands which need an entity ID or a list-reference. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandParamsEntity extends CommandParamsEntityById, CommandParamsEntityInContentBlock, CommandParamsEntityInList { -} - -/** - * Parameters used for commands which address a specificy entity. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandParamsEntityById { - /** - * ID of item to edit. - */ - entityId: number; -} - -/** - * Parameters used for command which expect an item from a list of a ContentBlock. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandParamsEntityInContentBlock { - /** - * Determins the position of the item in the list. - */ - index: number; - /** - * Must be true, to work on the module list. - */ - useModuleList: true; -} - -/** - * Parameters used for command which expect an item in a list (field) of a parent. - *
- * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) - * @public - */ -export declare interface CommandParamsEntityInList { - /** - * Determins the position of the item in the list of that entity-field. - */ - index: number; - /** - * Parent Entity field(s) name(s). - * Usually just one field, like `Authors`. - * In field-sets it could be `Author,Award` or similar. - */ - fields: string; - /** - * Parent entity _GUID_ which has the field referencing this item. - */ - parent: string; -} - -/** - * Parameters on `metadata` for commands which have a metadata-target. - * @public - */ -export declare interface CommandParamsMetadata { - /** - * The key which identifies the target of this metadata item - */ - key: string; - /** - * the key type, will default to 'string' - */ - keyType?: string; - /** - * The target type, will default to 10 = CMS-Item - */ - targetType?: MetadataTargetTypes; -} - -declare type CommandPromise = Promise; - -/* Excluded from this release type: Commands */ - -/* Excluded from this release type: ContentBlockReference */ - -/* Excluded from this release type: ContentListActionParams */ - -/* Excluded from this release type: ContentListActions */ - -/** - * @public - */ -declare class ContextBundleContent extends ContextBundleInstance { - /* Excluded from this release type: item */ - /* Excluded from this release type: contentBlockReference */ - /* Excluded from this release type: contentBlock */ - /* Excluded from this release type: __constructor */ -} - -/** - * @public - */ -declare class ContextBundleInstance { - /** - * instance of sxc object - */ - sxc: Sxc; - /* Excluded from this release type: instance */ - /* Excluded from this release type: app */ - /* Excluded from this release type: ui */ - /* Excluded from this release type: page */ - /* Excluded from this release type: system */ - /* Excluded from this release type: tenant */ - /* Excluded from this release type: user */ - _isContext: boolean; - /* Excluded from this release type: __constructor */ - /* Excluded from this release type: is */ -} - -/** - * @public - */ -declare class ContextBundleToolbar extends ContextBundleContent { - /* Excluded from this release type: toolbar */ - /* Excluded from this release type: __constructor */ - /* Excluded from this release type: forButton */ -} - -/** - * @public - */ -declare class ContextComplete extends ContextBundleToolbar { - /* Excluded from this release type: _isCtxComplete */ - /* Excluded from this release type: button */ - /* Excluded from this release type: commandWorkflow */ - /* Excluded from this release type: __constructor */ - /* Excluded from this release type: findContext */ - /* Excluded from this release type: contextCopy */ - /* Excluded from this release type: getContextInstance */ - /* Excluded from this release type: is */ -} - -/** - * ContextIdentifier is used to initialize a Sxc object outside of the default context. - * @public - */ -export declare class ContextIdentifier { - /** - * ZoneId of this Context - * @requires zoneId - */ - zoneId: number; - /** - * AppId of this Context - * @requires appId - */ - appId: number; - /** - * PageId of this Context (optional) - * @optional - */ - pageId?: number; - /** - * ModuleId of this Context (optional) - * @optional - */ - moduleId?: number; - /* Excluded from this release type: _ignoreHeaders */ - /* Excluded from this release type: complete */ - /* Excluded from this release type: blockId */ - /* Excluded from this release type: is */ - /* Excluded from this release type: ensureCompleteOrThrow */ -} - -/* Excluded from this release type: ContextOfApp */ - -/* Excluded from this release type: ContextOfContentBlock */ - -/* Excluded from this release type: ContextOfInstance */ - -/* Excluded from this release type: ContextOfItem */ - -/* Excluded from this release type: ContextOfPage */ - -/* Excluded from this release type: ContextOfSystem */ - -/* Excluded from this release type: ContextOfTenant */ - -/* Excluded from this release type: ContextOfUi */ - -/* Excluded from this release type: ContextOfUser */ - -/* Excluded from this release type: DnnUiRoot */ - -/* Excluded from this release type: EnvironmentMetaLoader */ - -/** - * A context information for the current page, helping the JS talk with the backend - * @public - */ -export declare interface EnvironmentSpecs { - /** Page ID */ - page: number; - /** Optional API key - optional if set from external, because it's auto derived from root */ - api: string; - /** Optional App API Root - required because in Oqtane we'll have a different root for appAPIs */ - appApi: string; - /** Portal root path - used for various things incl. the API root */ - root: string; - /** Request verification token header name */ - rvtHeader: string; - /** Request verification token value */ - rvt: string; - /* Excluded from this release type: uiRoot */ - /** The platform code like 'dnn' or 'oqt' */ - platform: string; -} - -/** - * Any object that has an own log object - * @export - * @interface HasLog - * @public - */ -export declare abstract class HasLog { - /* Excluded from this release type: parentLog */ - /* Excluded from this release type: log */ - /* Excluded from this release type: __constructor */ - /* Excluded from this release type: initLog */ - /* Excluded from this release type: initLogInternal */ -} - -/* Excluded from this release type: HeaderNames */ - -/* Excluded from this release type: InPageButtonGroupJson */ - -/* Excluded from this release type: InPageButtonJson */ - -/* Excluded from this release type: InPageCommandJson */ - -/* Excluded from this release type: InPageCommandJsonWithTooMuchInfo */ - -/* Excluded from this release type: InPageToolbarConfigVariations */ - -/* Excluded from this release type: Insights */ - -declare class InsightsLogSet { - name: string; - logs: LogList; - constructor(name: string); -} - -/* Excluded from this release type: InsightsSingleton */ - -/* Excluded from this release type: ItemIdentifierCopy */ - -/* Excluded from this release type: ItemIdentifierGroup */ - -/* Excluded from this release type: ItemIdentifierInField */ - -/* Excluded from this release type: ItemIdentifierParent */ - -/* Excluded from this release type: ItemIdentifierShared */ - -/* Excluded from this release type: ItemIdentifierSimple */ - -/* Excluded from this release type: ListWithCursor */ - -/** - * A log object which will collect log entries for another ojbect - * @export - * @interface Log - * @public - */ -export declare class Log { - /** - * List of all entries added to this log - */ - entries: LogEntry[]; - /* Excluded from this release type: depth */ - /* Excluded from this release type: callDepths */ - /* Excluded from this release type: startTime */ - /** - * Maximum amount of entries to add - to prevent memory hoging - */ - maxEntries: number; - /* Excluded from this release type: __constructor */ - /* Excluded from this release type: liveDump */ - /* Excluded from this release type: _parentHasLiveDump */ - /* Excluded from this release type: keepData */ - /* Excluded from this release type: _parentHasKeepData */ - /* Excluded from this release type: fullIdentifier */ - /* Excluded from this release type: rename */ - /* Excluded from this release type: linkLog */ - /** - * Add a simple message to the log - * @param message - * - * preferred usage is with string parameter: - * log.add(`description ${ parameter }`); - * - * in case that we experience error with normal string parameter, we can use arrow function to enclose parameter like this () => parameter - * but use it very rarely, because there is certainly a performance implication! - * log.add(`description ${() => parameter}`); - */ - add(message: (() => string) | string, data?: unknown): string; - /* Excluded from this release type: addData */ - /* Excluded from this release type: logData */ - /* Excluded from this release type: _prepareEntry */ - /* Excluded from this release type: _prepareMessage */ - /* Excluded from this release type: call */ - /* Excluded from this release type: _callDepthAdd */ - /* Excluded from this release type: _callDepthRemove */ - /* Excluded from this release type: dump */ - /* Excluded from this release type: dumpList */ - /* Excluded from this release type: dumpOne */ - /* Excluded from this release type: _addEntry */ - /* Excluded from this release type: randomString */ - /* Excluded from this release type: parent */ - /* Excluded from this release type: scope */ - /** - * The name of this log, for scenarios where multiple loggers are mixed - */ - name: string; - /* Excluded from this release type: id */ - /* Excluded from this release type: idCache */ - /* Excluded from this release type: identifier */ -} - -/* Excluded from this release type: LogCall */ - -/** - * A log entry item - * @export - * @interface LogEntry - * @public - */ -export declare class LogEntry { - /* Excluded from this release type: log */ - message: string; - /* Excluded from this release type: depth */ - /** A timestamp for this entry to better see sequences of things happening */ - time: number; - /* Excluded from this release type: result */ - /* Excluded from this release type: data */ - /* Excluded from this release type: data */ - /* Excluded from this release type: _data */ - /* Excluded from this release type: source */ - /* Excluded from this release type: __constructor */ -} - -/* Excluded from this release type: LogEntryOptions */ - -/** @public */ -declare type LogList = Array<{ - key: string; - log: Log; -}>; - -/** - * A Metadata-Target identifier to tell an entity that it describes something else. - * - * Usually used in Sxc instances with the [Data Service](xref:Api.Js.SxcJs.SxcData) - * - * Warning: There is another MetadataFor type and they are not fully consistent. - * This is historical and not easy to correct, but we're working on it. - * @public - */ -export declare interface MetadataFor { - /** - * The target type identifier - * - TODO: @2dm - THIS SHOULD probably be number only - */ - Target: string | MetadataTargetTypes; - /** - * The number of the target, if it's identified by a number. - */ - Number?: number; - /** - * The string-id of the target, if it's identified by a string. - */ - String?: string; - /** - * The GUID of the target, if it's identified by a GUID. - */ - Guid?: string; - /* Excluded from this release type: Singleton */ -} - -/** - * Metadata Target Types - * - * These are constants to determine what something is assigned to (e.g. it describes an Entity, a file, etc.) - * - * Use it for the @see MetadataFor objects - * @public - */ -export declare enum MetadataTargetTypes { - /** - * Undefined Type (0) - included for completeness. - * Not usually used, actually None (1) is the default - */ - Undefined = 0, - /** - * Things that are not used as Metadata (1). This is the default for most Entities. - */ - None = 1, - /** - * Metadata of attributes / fields (2). This is used to store configuration like the field label, amount-of-rows, etc. - * Remarks = - * The key is always a number (int) pointing to the Attribute ID in the DB. - */ - Attribute = 2, - /** - * App metadata (3). Used to give Apps additional properties. - * Remarks = - * The key should always be an int ID of the App. - */ - App = 3, - /** - * Metadata of entities / data-items (4). - * This lets us enhance entities with additional information. - * Remarks = - * The Key should always be a GUID - */ - Entity = 4, - /** - * Metadata of a content-type / data-schema (5). Used to give it a description etc. - */ - ContentType = 5, - /** - * Zone metadata (6) - used to give a Zone additional information. - * Only used in very special cases, best not use. - */ - Zone = 6, - /** - * Item / Object of the Platform, like a File or Folder etc. (10) - * Remarks = - * * The key is usually a string to further specify what it's describing, like "file:72" - * * The text equivalent is CmsObject - */ - CmsItem = 10, - /** - * The entire system / platform - so Metadata for the current Dnn/Oqtane installation (11). - * Remarks = - * This is not in use as of now, just added for completeness sakes. - * New in v13 - */ - System = 11, - /** - * A Site - like the current site (12) - * Remarks = New in v13 - */ - Site = 12, - /** - * A Site - like the current site (13) - * Remarks = New in v13 / beta - */ - SiteVariant = 13, - /** - * A Page - like the current page (14) - * Remarks = New in v13 - */ - Page = 14, - /** - * A Page - like the current page (15) - * Remarks = New in v13 / beta - */ - PageVariant = 15, - /** - * A Module - like a module containing some content (16) - * Remarks = New in v13 - */ - Module = 16, - /** - * A Module - like a module containing some content (17) - * Remarks = New in v13 / beta - */ - ModuleVariant = 17, - /** - * A User - like the admin-user (18) - * Remarks = New in v13 - */ - User = 18, - /** Custom target (90). This is what you should use for basic apps which have a custom target that's none of the other defaults. */ - Custom = 90, - /** Custom target (91). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom1 = 91, - /** Custom target (92). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom2 = 92, - /** Custom target (93). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom3 = 93, - /** Custom target (94). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom4 = 94, - /** Custom target (95). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom5 = 95, - /** Custom target (96). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom6 = 96, - /** Custom target (97). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom7 = 97, - /** Custom target (98). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom8 = 98, - /** Custom target (99). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ - Custom9 = 99 -} - -/* Excluded from this release type: MetaHeaderJsApi */ - -/* Excluded from this release type: ModifierBase */ - -/* Excluded from this release type: ModifierContentBlock */ - -/* Excluded from this release type: ModifierContentBlockInstance */ - -/* Excluded from this release type: ModifierDnnModule */ - -/* Excluded from this release type: ModifierDnnModuleInternal */ - -/* Excluded from this release type: NoJQ */ - -/* Excluded from this release type: NumberNotDefinedHuge */ - -/* Excluded from this release type: Obj */ - -/* Excluded from this release type: Operations */ - -/* Excluded from this release type: PlatformDnn */ - -/* Excluded from this release type: PlatformOqtane */ - -/* Excluded from this release type: positionAndAlign */ - -/* Excluded from this release type: PositionCoordinates */ - -/* Excluded from this release type: Positioning */ - -/* Excluded from this release type: PromiseFactory */ - -/* Excluded from this release type: QeSelectors */ - -/* Excluded from this release type: QuickE */ - -/* Excluded from this release type: QuickEClipboard */ - -/** - * Quick Edit Configuration which has an `enable` and specific button configurations - * @public - */ -export declare class QuickEditConfig { - /** - * Determine whether this section is enabled. - */ - enable?: boolean | 'auto'; - /** - * Optional detailed configuration of the buttons. - */ - buttons?: QuickEditConfigButtons; -} - -/** - * Buttons on a quick-edit toolbar - * @public - */ -export declare class QuickEditConfigButtons { - /** - * Enable the button to "Add Content" - */ - addContent?: boolean; - /** - * Enable the button to "add App" - */ - addApp?: boolean; - /** - * Enable the button "Select" - */ - select?: boolean; - /** - * Enable the button "Paste" - */ - paste?: boolean; - /** - * Enable the button "Delete" - */ - delete?: boolean; - /** - * Enable the button "Move" - */ - move?: boolean; -} - -export declare const QuickEditConfigEnableAuto: string; - -/** - * Quick Edit - Full configuration at root, with `enable` and rules for `modules` and `innerBlocks` - * @public - */ -export declare class QuickEditConfigRoot extends QuickEditConfig { - /** - * The buttons configuration on the root. - * Will be used for the `modules` and `innerBlocks` if not specified there. - * Note that if not specified, will always default to true for all buttons. - */ - buttons?: QuickEditConfigButtons; - /** - * Optional configuration for the Inner Content Blocks. - */ - innerBlocks?: QuickEditConfig; - /** - * Optional configuration for the Modules. - */ - modules?: QuickEditConfig; - /* Excluded from this release type: getDefault */ -} - -/* Excluded from this release type: QuickEditOverlay */ - -/* Excluded from this release type: refresh */ - -/* Excluded from this release type: RuleManager */ - -/* Excluded from this release type: RuleParams */ - -/** - * Parameters for the Instance sxc.cms.run(...) command. - * New in 13.03 - */ -export declare interface RunParams { - /** - * The action to perform. - * Required. - */ - action?: CommandNames; - /* Excluded from this release type: params */ - /** - * The event which triggered this command - sometimes useful internally further use. - * Optional in most cases, but in some cases it will improve the behavior of the code. - */ - event?: MouseEvent; - /** - * Workflows work the same way as with a toolbar, except that they are added here and not registered on init. - * Because of limitations in automatic documentation, the type here is set to `unknown` but it's actually `WorkflowStep` | `WorkflowStep[]` - */ - workflows?: unknown; -} - -/* Excluded from this release type: RunParamsHelpers */ - -/** - * Parameters for the **Global** $2sxc.cms.run(...) command in Addition to the [RunParams](xref:Api.Js.SxcJs.RunParams). - * It provides context to the run-params such as a Sxc instance or a tag which it started on. - * New in 12.10 - * @public - */ -export declare interface RunParamsWithContext extends RunParams { - /** - * The tag on which the run was triggered - it's used to give the command a context to start from - * We always need the tag OR the context, but never both - */ - tag?: HTMLElement; - /** - * The context to run in, basically containing module id, etc. - * We always need the tag OR the context, but never both - */ - context?: Sxc | ContextIdentifier; -} - -/* Excluded from this release type: RunParamsWithWorkflows */ - -/* Excluded from this release type: Selection_2 */ - -/* Excluded from this release type: SharedLogic */ - -/* Excluded from this release type: Stats */ - -/** - * The typical sxc-instance object for a specific DNN module or content-block - * @public - */ -export declare class Sxc extends HasLog { - /** the sxc-instance ID, which is usually the DNN Module Id */ - id: number; - /** - * content-block ID, which is either the module ID, or the content-block definition entity ID - * this is an advanced concept you usually don't care about, otherwise you should research it - */ - cbid: number; - /* Excluded from this release type: cacheKey */ - /* Excluded from this release type: root */ - /* Excluded from this release type: ctx */ - /* Excluded from this release type: _isSxcInstance */ - /** - * Web API calls for this instance. - * This is the pure call APIs system. - * To get data or queries, best use the data or query services. - */ - webApi: SxcWebApi; - /* Excluded from this release type: manage */ - /** - * CMS operations on this sxc-instance, such as opening the edit dialog etc. - */ - cms: SxcCms; - /* Excluded from this release type: __constructor */ - /* Excluded from this release type: is */ - /** - * Get a data service for a specific content-type. - * - * @param contentType: name of the content type which this service will get - */ - data(contentType: string): SxcData; - /** - * - * @param query - */ - query(query: string): SxcQuery; - /* Excluded from this release type: resolveServiceUrl */ - /* Excluded from this release type: showDetailedHttpError */ - /** - * Test if the current code is in edit-mode and additional javascripts have been loaded to make it work - * @returns true if we are in edit-mode - */ - isEditMode(): boolean; - /* Excluded from this release type: recreate */ -} - -/* Excluded from this release type: SxcApiUrlRoot */ - -/** - * This is in charge of sxc.cms on the instance level. - * ATM it just has the run command. - * In future, it may also have dedicated command like `layout` etc. - * @public - */ -export declare class SxcCms extends SxcPart { - /* Excluded from this release type: __constructor */ - /** - * Run a command on this sxc-instance. - * Requires edit mode to be on, which would enable the edit-JS parts. - * To use, remember to activate `2sxc.JsCms` on the page - * @param runParams - real type is actually RunParams - */ - run(runParams: RunParams): Promise; -} - -/* Excluded from this release type: SxcCmsReal */ - -/** - * Data Service for an App / Sxc-Instance to get/create data of a specific Content-Type - * @public - */ -export declare class SxcData extends SxcDataServiceBase { - readonly name: string; - /* Excluded from this release type: __constructor */ - /** - * Get all items of this type. - */ - getAll(): Promise; - /** - * Get the specific item with the ID. It will return null if not found - */ - getOne(id: number): Promise | null; - /* Excluded from this release type: getMany */ - /* Excluded from this release type: getInternal */ - /** - * Create a new entity with the values supplied - * @param values a simple object containing the values to create - */ - create(values: Record): Promise>; - /** - * Create a new entity with the values supplied and also a metadata-for reference - * @param values a simple object containing the values to create - */ - create(values: Record, metadataFor: MetadataFor | string): Promise>; - /** - * Update an existing entity with the values supplied - */ - update(id: number, values: Record): Promise>; - /** - * Delete an entity - * @param id id of the item to delete - */ - delete(id: number): Promise; - /** - * Delete an entity - * @param guid GUID of the item to delete - */ - delete(guid: string): Promise; -} - -/** - * Base class doing common checks. - * This is internal and not important, but we can't keep it out of the docs. - * @public - */ -export declare abstract class SxcDataServiceBase extends SxcPart { - readonly name: string; - protected readonly webApi: SxcWebApi; - /* Excluded from this release type: __constructor */ -} - -/** - * This is the root global `window.$2sxc` function / object. - * - * It is both a function `window.$2sxc(...)` and object `window.$2sxc.insights...` - * - * If the page feature `2sxc.JsCms` is enabled, the `window.$2sxc` will also be a [SxcGlobalWithCms](xref:Api.Js.SxcJs.SxcGlobalWithCms) - * @public - */ -export declare interface SxcGlobal { - /** - * Get an Sxc Instance - * @param id number: moduleId | HTMLElement: tag in the page | Sxc: an existing sxc - will just be returned | ContextIdentifier: an identifier in complex scenarios without a moduleId/context - * @param cbid number - * @returns SxcInstance - */ - (id: number | HTMLElement | ContextIdentifier | Sxc, cbid?: number): Sxc; - /** - * Get an Sxc Instance using the moduleId. - * Using `$2sxc.get(...)` is the same as using `$2sxc(...)` - * @param moduleId number: moduleId - * @returns SxcInstance - * @since v14.01 - */ - get(moduleId: number): Sxc; - /** - * Get an Sxc Instance using the moduleId and contentBlockId. - * Using `$2sxc.get(...)` is the same as using `$2sxc(...)` - * @param moduleId number: moduleId - * @param contentBlockId number: content-block ID - * @returns Sxc - * @since v14.01 - */ - get(moduleId: number, contentBlockId: number): Sxc; - /** - * Get an Sxc Instance using a tag / `HtmlElement`. Using `$2sxc.get(...)` is the same as using `$2sxc(...)` - * @param tag HTMLElement: tag in the page - * @returns Sxc - * @since v14.01 - */ - get(tag: HTMLElement): Sxc; - /** - * Get an Sxc Instance using a full context-identifier (advanced). Using `$2sxc.get(...)` is the same as using `$2sxc(...)` - * @param context ContextIdentifier: full context identifier - * @returns Sxc - * @since v14.01 - */ - get(context: ContextIdentifier): Sxc; - /** - * Get an Sxc Instance passing in an existing Sxc - just for cases where you're not sure what you aready have. Using `$2sxc.get(...)` is the same as using `$2sxc(...)` - * @param sxc Sxc: an existing sxc - will just be returned - * @returns Sxc - the same Sxc as the one which was passed in - * @since v14.01 - */ - get(sxc: Sxc): Sxc; - /* Excluded from this release type: _controllers */ - /* Excluded from this release type: beta */ - /* Excluded from this release type: _manage */ - /* Excluded from this release type: _translateInit */ - /* Excluded from this release type: debug */ - /* Excluded from this release type: stats */ - /** - * system information, mainly for checking which version of 2sxc is running - * note: it's not always updated reliably, but it helps when debugging - */ - sysinfo: { - /** the version using the ##.##.## syntax */ - version: string; - /** a short text description, for people who have no idea what this is */ - description: string; - }; - /** - * Environment information - * @type {SxcGlobalEnvironment} - */ - env: SxcGlobalEnvironment; - /** - * Http helper for API calls and such - */ - http: SxcGlobalHttp; - /** - * The debugging / insights system. - * Call the `$2sxc.insights()` without parameters to get instructions what the parameters could be. - * @param partName optional name of a part of the system for which we want to see the logs - * @param index optional index on that part for which log we want to see - * @param start log start index - this is to skip the first few lines if there are too many - * @param length amount of lines to show - in some cases will default to 25 - */ - insights(partName: string, index?: number, start?: number, length?: number): void; - /* Excluded from this release type: _insights */ - /* Excluded from this release type: log */ - /** - * Helper to work with url parameters behind ? or # - */ - urlParams: UrlParams; - /* Excluded from this release type: totalPopup */ -} - -/** - * Global Content-Management System on the $2sxc.cms. - * - * It is only available if the page is in edit mode / the page feature `2sxc.JsCms` has been activated. - * @public - */ -export declare class SxcGlobalCms extends HasLog { - /* Excluded from this release type: autoDump */ - /* Excluded from this release type: __constructor */ - /* Excluded from this release type: resetLog */ - /** - * Run a command within a specific context - mostly for internal use. - * @param runParams The complete run params with a context - * @returns A promise which triggers when the command has completed. - */ - run(runParams: RunParamsWithContext): Promise; - /** - * Run a command within a specific context. - * @param tag The context providing tag - an HTML tag inside a module/content-block - * @param action command-name (action) - * @param event Optional mouse-event which allows the command to do some optimizations for that case - like a mouse-click - * @returns A promise which triggers when the command has completed. - */ - run(tag: HTMLElement, action: string, event?: MouseEvent): Promise; - /** - * Run a command within a specific context. - * @param tag The context providing tag - an HTML tag inside a module/content-block - * @param action command-name (action) - * @param params an object containing the the command-params - * @param event Optional mouse-event which allows the command to do some optimizations for that case - like a mouse-click - * @returns A promise which triggers when the command has completed. - */ - run(tag: HTMLElement, action: string, params?: CommandParams, event?: MouseEvent): Promise; - /** - * Run a command within a specific context. - * @param tag The context providing tag - an HTML tag inside a module/content-block - * @param commandParams an object containing the the command-params as well as the command-name (action) - * @param event Optional mouse-event which allows the command to do some optimizations for that case - like a mouse-click - * @returns A promise which triggers when the command has completed. - */ - run(tag: HTMLElement, commandParams: CommandParams, event?: MouseEvent): Promise; - /* Excluded from this release type: runInternal */ - /* Excluded from this release type: do */ -} - -/* Excluded from this release type: SxcGlobalDebug */ - -/** - * Provides environment information to $2sxc - usually page-id, api-root and stuff like that - * @public - */ -export declare class SxcGlobalEnvironment extends HasLog { - /* Excluded from this release type: header */ - /** - * Flag to determine if the environment information is available. - */ - ready: boolean; - /** - * Where the environment information came from. - */ - source: string; - /* Excluded from this release type: metaLoader */ - /* Excluded from this release type: __constructor */ - /** - * Manually load a new EnvironmentSpecs in cases where the page cannot provide them. - * This is only used in scenarios outside of Dnn / Oqtane, you will usually not need this. - * @param envSpecs new info to load - * @param source _optional_ name where the data came from - */ - load(envSpecs: EnvironmentSpecs, source?: string): void; - /* Excluded from this release type: replacedRvt */ - /* Excluded from this release type: updateRvt */ - /** - * The API endpoint url from the environment - */ - api(): string; - /* Excluded from this release type: appApi */ - /** - * The current page ID - often needed in API calls - */ - page(): number; - /** - * The request verification token header name for internal WebAPI calls - */ - rvtHeader(): string; - /** - * The request-verification token for internal WebAPI calls - */ - rvt(): string; - /* Excluded from this release type: uiRoot */ - /** - * The platform code like 'oqt' or 'dnn' in case the JS needs to know the difference - */ - platform(): string; - /* Excluded from this release type: ensureReadyOrThrow */ -} - -/** - * Global HTTP Service for information and helpers on `$2sxc.http` - * @public - */ -export declare class SxcGlobalHttp extends HasLog { - private env; - /* Excluded from this release type: __constructor */ - /** - * All the headers which are needed in an ajax call. - * @returns Dictionary / Record of headers - */ - headers(): Record; - /** - * All the headers which are needed in an ajax call - within a module context. - * @param id _optional_ module ID - * @returns Dictionary / Record of headers - */ - headers(id: number): Record; - /** - * All the headers which are needed in an ajax call - within a module and content-block context. - * @param id _optional_ module ID - * @param cbid _optional_ content block ID - * @returns Dictionary / Record of headers - */ - headers(id: number, cbid: number): Record; - /** - * All the headers which are needed in an ajax call. - * Uses a module and content-block context (but these could also be null) - * and a full context identifier for advanced operations. - * @param id _optional_ module ID - * @param cbid _optional_ content block ID - * @param ctx _optional_ context information to include in the header - * @returns Dictionary / Record of headers - */ - headers(id: number, cbid: number, ctx: ContextIdentifier): Record; - /* Excluded from this release type: apiRoot */ - /* Excluded from this release type: appApiRoot */ - /** - * Convert short urls like `app/auto/api/Posts/All` to the full URL needed. - * Will ignore urls which clearly already are the full url. - * @param url short URL like `app/auto/api/Posts/All` - * @returns the converted, long url with the full endpoint - */ - apiUrl(url: string): string; - /** - * Convert short urls like `app/auto/api/Posts/All` to the full URL needed. - * Will ignore urls which clearly already are the full url. - * @param url short URL like `app/auto/api/Posts/All` - * @param endpointName _optional_ endpoint name if accessing a different exotic endpoint - * @returns the converted, long url with the full endpoint - */ - apiUrl(url: string, endpointName: string): string; -} - -/* Excluded from this release type: SxcGlobalManage */ - -/** - * $2sxc global interface _extending_ the `SxcGlobal` when the page feature `JsCms` is enabled. - * - * If the page feature `2sxc.JsCms` is not enabled, the `window.$2sxc` will be a [SxcGlobal](xref:Api.Js.SxcJs.SxcGlobal) - * @public - */ -export declare interface SxcGlobalWithCms { - /* Excluded from this release type: system */ - /** - * Will retrieve a resource in the current language. - * Mainly used for toolbars etc. to support localization. - * - * Only available when edit mode is on meaning the page feature JsCms is enabled - * @param key the key of the resource to translate - */ - translate(key: string): string; - /* Excluded from this release type: context */ - /** - * Content Management features on the $2sxc - */ - cms: SxcGlobalCms; -} - -/* Excluded from this release type: SxcManage */ - -/** - * Base class for anything attached to an sxc-instance. - * This is internal and not important, but we can't keep it out of the docs. - * @public - */ -export declare abstract class SxcPart { - /* Excluded from this release type: sxc */ - /* Excluded from this release type: partName */ - /* Excluded from this release type: __constructor */ -} - -/** - * Instance Query Service - * @public - */ -export declare class SxcQuery extends SxcDataServiceBase { - readonly name: string; - /* Excluded from this release type: __constructor */ - getAll(): Promise; - getAll(urlParams: string | Record): Promise; - getAll(urlParams: string | Record, data: string | Record): Promise; - /** - * Get just one stream, returning an array of items in that stream - * - * @template T - * @param stream - * @returns {Promise} containing an array of items - or empty if stream not found or nothing returned - */ - getStream(stream: string): Promise; - getStream(stream: string, urlParams: string | Record): Promise; - getStream(stream: string, urlParams: string | Record, data: string | Record): Promise; - /** - * Get a query but only the mentioned streams. - * This will reduce the amount of data retrieved on queries that have many streams. - * @template T The schema/interfaces of what will be returned - * @returns {Promise} Promise containing a object with stream-names and items in the streams. - * @public - */ - getStreams(streams: string): Promise; - /** - * Get a query but only the mentioned streams. - * This will reduce the amount of data retrieved on queries that have many streams. - * @template T The schema/interfaces of what will be returned - * @param streams name of streams to get, comma separated - * @param urlParams additional parameters for the URL, either as a string or as a object - * @returns {Promise} Promise containing a object with stream-names and items in the streams. - * @public - */ - getStreams(streams: string, urlParams: string | Record): Promise; - /** - * Get a query but only the mentioned streams. - * This will reduce the amount of data retrieved on queries that have many streams. - * @template T The schema/interfaces of what will be returned - * @param streams name of streams to get, comma separated - * @param urlParams additional parameters for the URL, either as a string or as a object - * @param data data to include in case of a POST call - if this is provided, it will use a post - * @returns {Promise} Promise containing a object with stream-names and items in the streams. - * @public - */ - getStreams(streams: string, urlParams: string | Record, data: string | Record): Promise; - /* Excluded from this release type: getInternal */ -} - -/* Excluded from this release type: SxcTools */ - -/* Excluded from this release type: SxcVersion */ - -/** - * helper API to run ajax / REST calls to the server - * it will ensure that the headers etc. are set correctly - * and that urls are rewritten - * @public - */ -export declare class SxcWebApi implements ZzzSxcWebApiDeprecated { - private readonly sxc; - /* Excluded from this release type: env */ - /* Excluded from this release type: __constructor */ - /** - * **Deprecated** - docs in the separate interface - * @deprecated use fetchJson instead - */ - get(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; - /** - * **Deprecated** - docs in the separate interface - * @deprecated use fetchJson instead - */ - post(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; - /** - * **Deprecated** - docs in the separate interface - * @deprecated use fetchJson instead - */ - delete(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; - /** - * **Deprecated** - docs in the separate interface - * @deprecated use fetchJson instead - */ - put(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; - /** - * **Deprecated** - docs in the separate interface - * @deprecated use fetchJson instead - */ - request(settings: string | ZzzAjaxSettingsDeprecated, params: any, data: any, preventAutoFail: boolean, method: string): any; - /** - * Will retrieve data from the backend using a standard fetch. - * @param url a full url or short-hand like `controller/method?params` `app/auto/api/controller/method?params`. Note that params would also be specified on the url. - * @param data optional POST data - * @param method optional method, defaults to `GET` unless it has data, in which case it defaults to `POST` - * @returns a Promise containing a Response object, just like a normal fetch would. - * example: webApi.fetchRaw('Rss/Feed'); - * example: webApi.fetchRaw(webApi.url('Rss/Feed', { id: 47 })); // url params - * example: webApi.fetchRaw('Rss/Feed', { id: 47 }); // post params - * example: webApi.fetchRaw(webApi.url('Rss/Feed', { id: 47 }), { something: 'this is a test' }); // url & post params - * maybe: webApi.fetchRaw({url: 'Rss/Feed', params: { id: 47 }}) - * maybe: webApi.fetchRaw({url: ..., params: { ...}, body: { ...}, method: 'GET' }) - */ - fetchRaw(url: string, data?: string | Record, method?: string): Promise; - /* Excluded from this release type: fetch */ - /** - * Will retrieve data from the backend using a standard fetch and give you an object. - * @param url a full url or short-hand like `controller/method?params` `app/auto/api/controller/method?params`. Note that params would also be specified on the url. - * @param data optional POST data - * @param method optional method, defaults to `GET` unless it has data, in which case it defaults to `POST` - * @returns a Promise containing any object. - */ - fetchJson(url: string, data?: string | Record, method?: string): Promise; - /** - * All the headers which are needed in an ajax call for this to work reliably. - * Use this if you need to get a list of headers in another system - */ - headers(method?: string): Record; - /** - * - * @param url A short, medium or long url. - * Short like `controller/method`, - * medium like `app/auto/api/controller/method` - * long like `https://xyz. - * In all cases it can also have ?params etc. - * @param params Optional parameters as string or object, will be added to url-params. - * @returns In the cases of a short/medium url, - * it will auto-expand to have the full url as needed for an API call. - */ - url(url: string, params?: string | Record): string; -} - -/* Excluded from this release type: SystemUpgrader */ - -/* Excluded from this release type: TemplateEditor */ - -/* Excluded from this release type: TemplateIdentifier */ - -/* Excluded from this release type: Toolbar */ - -/* Excluded from this release type: TOOLBAR_FOLLOW_ALWAYS */ - -/* Excluded from this release type: TOOLBAR_FOLLOW_INITIAL */ - -/* Excluded from this release type: TOOLBAR_FOLLOW_SCROLL */ - -/* Excluded from this release type: TOOLBAR_SHOW_ALWAYS */ - -/* Excluded from this release type: TOOLBAR_SHOW_HOVER */ - -/* Excluded from this release type: ToolbarButtonSettings */ - -/* Excluded from this release type: ToolbarConfigLoader */ - -/* Excluded from this release type: ToolbarConfigLoaderV09 */ - -/* Excluded from this release type: ToolbarConfigLoaderV10 */ - -/* Excluded from this release type: ToolbarInitConfig */ - -/* Excluded from this release type: ToolbarManager */ - -/* Excluded from this release type: ToolbarSettings */ - -/* Excluded from this release type: ToolbarTemplate */ - -/* Excluded from this release type: ToolbarTemplateGroup */ - -/* Excluded from this release type: ToolbarTemplateManager */ - -/* Excluded from this release type: ToolbarWip */ - -/* Excluded from this release type: ToolbarWithWorkflow */ - -/** - * A workflow manager _of a Toolbar_ which will run stuff before / after commands. - * When toolbars are created, they will add a Manager and then raise an event for in-page code to add workflow steps. - * Normally the toolbar with raise a `toolbar-init` event where you can then add steps. - * @public - */ -export declare class ToolbarWorkflowManager extends HasLog { - private isDummy; - /* Excluded from this release type: steps */ - /* Excluded from this release type: __constructor */ - /** - * Register one or many [workflow-steps](xref:Api.Js.SxcJs.WorkflowStep) to the toolbar, to use if toolbar commands are executed. - */ - add(steps: WorkflowStep | WorkflowStep[]): void; - /* Excluded from this release type: addOne */ - /* Excluded from this release type: run */ - /* Excluded from this release type: attach */ - /* Excluded from this release type: runNextPromiseIfNotCancelled */ -} - -/* Excluded from this release type: ToSxcName */ - -/* Excluded from this release type: TotalPopup */ - -declare type TypeAutoAddMore = null | 'start' | 'end' | true; - -/* Excluded from this release type: TypeFollow */ - -declare type TypeHover = 'left' | 'right' | 'none'; - -/* Excluded from this release type: TypeShow */ - -/* Excluded from this release type: TypeTbD */ - -export declare type TypeValue = boolean | string | number | Date; - -/* Excluded from this release type: urlClean */ - -declare interface UrlItemParams { - prefill?: Record; - items?: string; - contentTypeName?: string; - filters?: string; -} - -/** - * Helper object to read url params. - * Available on `$2sxc.urlParams` - * @public - */ -export declare class UrlParams { - /** - * Get a param from the url, no matter if it's behind ? or # - * If not found, will return an empty string `''` - * @param name - */ - get(name: string): string; - /** - * Get a required param from the url, no matter if it's behind ? or # - * Will throw an error if not found - * @param name - */ - require(name: string): string; - /** - * Checks if debug is enabled in the URL - * @returns - */ - isDebug(): boolean; - /* Excluded from this release type: toUrl */ - /* Excluded from this release type: toObj */ -} - -/* Excluded from this release type: WorkflowCommands */ - -/* Excluded from this release type: WorkflowHelper */ - -/** - * Phases / events of a specific workflow. - */ -export declare enum WorkflowPhases { - /** - * Run at every phase - before and after events/commands - */ - all = "all", - /** - * Run before a specific event / command - */ - before = "before", - /** - * Run after a specific event / command - */ - after = "after" -} - -/* Excluded from this release type: WorkflowPromiseFactory */ - -/** - * A workflow step (code-sequence) to run before/after specific events. - * @public - */ -export declare interface WorkflowStep { - /** - * The name of this step, in case it needs to be replaced or somehow controlled - * Will be empty by default - */ - name?: string; - /** - * The action this step is for, can be 'any', 'edit', etc. - * Will be 'all' by default - */ - command: string; - /** - * Action-phase being run, like 'all', 'before', 'after' - * will be 'before' by default - */ - phase?: WorkflowPhases; - /** - * Execution priority, higher comes first - * Will be 1 by default. - */ - priority?: number; - /** - * The code which is run, must be a promise-factory. - * So it's a function that will return a promise. - * Required. - * See [](xref:Api.Js.SxcJs.WorkflowStepCode) - */ - code: (args: WorkflowStepCodeArguments) => WorkflowStepCodeArguments; -} - -/* Excluded from this release type: WorkflowStepCode */ - -/** - * Arguments for [WorkflowStepCode](xref:Api.Js.SxcJs.WorkflowStepCode). - * Will be passed to your code and should also be returned by your code. - * This also allows cancelling further execution. - * @public - */ -export declare class WorkflowStepCodeArguments { - /** - * Name this workflow is running for - */ - command: string; - /** - * The phase it's in (before, after, etc.) - */ - phase: WorkflowPhases; - /** - * Context of the current command / step being run - */ - context: ContextComplete; - /** - * Result in after-phases of the workflow - * BETA - never really tested this - */ - result: unknown; - /* Excluded from this release type: __constructor */ - /** - * If the workflow should be cancelled. - * Can be set by any workflow step. - * If set to true, following steps / workflows will not run. - */ - cancel: boolean; -} - -/* Excluded from this release type: WorkflowStepHelper */ - -/** - * Deprecated parameters for old jQuery AJAX calls. - * Shouldn't be used any more. - * @public - * @deprecated - */ -export declare interface ZzzAjaxSettingsDeprecated { - /* Excluded from this release type: endpoint */ - /** - * Controller name, for controller/action calls - */ - controller?: string; - /** - * action name, for controller/action calls - */ - action?: string; - /** - * The params to be used in the url for the request - */ - params?: any; - /* Excluded from this release type: preventAutoFail */ -} - -/** - * **Deprecated** - * Old APIs on sxc.webApi. - * They only exist if jQuery is included on the page, and we highly discourage their use. - * @deprecated - */ -export declare interface ZzzSxcWebApiDeprecated { - /** - * **Deprecated** - * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) - * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. - * - * Returns an http-get promise using jQuery - * @param settingsOrUrl the url to get - * @param params jQuery style ajax parameters - * @param data jQuery style data for post/put requests - * @param preventAutoFail - * @returns jQuery ajax promise object - * @deprecated use fetchJson instead - */ - get(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; - /** - * **Deprecated** - * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) - * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. - * - * Returns an http-post promise using jQuery - * @param settingsOrUrl the url to get - * @param params jQuery style ajax parameters - * @param data jQuery style data for post/put requests - * @param preventAutoFail - * @returns jQuery ajax promise object - * @deprecated use fetchJson instead - */ - post(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; - /** - * **Deprecated** - * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) - * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. - * - * Returns an http-delete promise using jQuery - * @param settingsOrUrl the url to talk to - * @param params jQuery style ajax parameters - * @param data jQuery style data for post/put requests - * @param preventAutoFail - * @returns jQuery ajax promise object - * @deprecated use fetchJson instead - */ - delete(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; - /** - * **Deprecated** - * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) - * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. - * - * Returns an http-put promise using jQuery - * @param settingsOrUrl the url to put - * @param params jQuery style ajax parameters - * @param data jQuery style data for post/put requests - * @param preventAutoFail - * @returns jQuery ajax promise object - * @deprecated use fetchJson instead - */ - put(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; - /** - * **Deprecated** - * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) - * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. - * - * Generic http request using jQuery - * @param settingsOrUrl the url to get - * @param params jQuery style ajax parameters - * @param data jQuery style data for post/put requests - * @param preventAutoFail - * @param method the http verb name - * @returns jQuery ajax promise object - * @deprecated use fetchJson instead - */ - request(settings: string | ZzzAjaxSettingsDeprecated, params: any, data: any, preventAutoFail: boolean, method: string): any; -} - -export { } diff --git a/projects/sxc-typings/index-public.d.ts b/projects/sxc-typings/index-public.d.ts index 7bc33eebe..28ca55946 100644 --- a/projects/sxc-typings/index-public.d.ts +++ b/projects/sxc-typings/index-public.d.ts @@ -1,20 +1,2110 @@ -/* - Special custom d.ts file - this has the definition of the augmented window object, because the api exporter doesn't support this. -*/ +/* Excluded from this release type: Actions */ -import { SxcGlobal } from './index-public-part.d'; +/* Excluded from this release type: AjaxPromise */ -export * from "./index-public-part.d"; +/* Excluded from this release type: AntiForgeryTokenHeaderNameDnn */ + +/* Excluded from this release type: ApiExtensionPlaceholder */ + +/* Excluded from this release type: ApiUrlRoots */ + +/* Excluded from this release type: AppApiMap */ + +/* Excluded from this release type: AppApiMarker */ + +/* Excluded from this release type: AssetsLoader */ + +/* Excluded from this release type: AttrJsonContentGroup */ + +/* Excluded from this release type: AttrJsonEditContext */ + +/* Excluded from this release type: AttrJsonEntity */ + +/* Excluded from this release type: AttrJsonEnvironment */ + +/* Excluded from this release type: AttrJsonError */ + +/* Excluded from this release type: AttrJsonLanguage */ + +/* Excluded from this release type: AttrJsonUi */ + +/* Excluded from this release type: AttrJsonUser */ + +/* Excluded from this release type: BuildRule */ + +/* Excluded from this release type: BuildSteps */ + +/* Excluded from this release type: buildSxcRoot */ + +/* Excluded from this release type: Button */ + +/* Excluded from this release type: ButtonCommand */ + +/* Excluded from this release type: ButtonConfigLoader */ + +declare type ButtonGenOrProp = ButtonPropGen | T; + +/* Excluded from this release type: ButtonGroup */ + +/* Excluded from this release type: ButtonGroupConfigLoader */ + +/* Excluded from this release type: ButtonGroupsWip */ + +/* Excluded from this release type: ButtonGroupWip */ + +/** + * This is the most common call signature on most ButtonConfig properties + * @public + */ +declare type ButtonPropGen = (context: ContextComplete) => T; + +/** + * Structure for constants in the selectors, to guarantee we got everything + */ +declare interface CbOrMod { + id: string; + class: string; + selector: string; + findAllLists: () => HTMLElement[]; + findClosestList: (element: HTMLElement) => HTMLElement; + context: string; + singleItem?: string; +} + +/* Excluded from this release type: CmdParHlp */ + +/* Excluded from this release type: CmsEngine */ + +/* Excluded from this release type: Command */ + +/** + * Parameters used for the command `add-existing`. + *
+ * The contentType name determines what items will be shown in the dialog. + * Depending on your use case, you will need to use the + * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) or [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) parameters as well. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandAddExistingParams extends CommandAddParams { +} + +/** + * Parameters used for the command `add`. + *
+ * The `contentType` determines what items will be created, the `index` where. + * Depending on your use case, you will need to use the + * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) or [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) parameters as well. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandAddParams extends CommandContentTypeParams, Pick, Partial>, Partial> { +} + +/* Excluded from this release type: CommandCode */ + +/** + * Parameters used for the command `code` on toolbars (new in v14.4). + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandCodeParams { + /** + * Name of the function to call - must be available in the context. + * This is usually as a function window. Example: + *
+ * If `call` is `sayHello` you need a `window.sayHello(params, context, event)`. + */ + call: string; +} + +/* Excluded from this release type: CommandConfigLoader */ + +/** + * Parameters used for the command `contenttype`. + *
+ * The content-type name determines what items will be loaded to manage the fields. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandContentTypeParams { + /** + * The content-type name + */ + contentType: string; +} + +/** + * Parameters used for the command `copy`. + * Will copy the entity on `entityId`. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandCopyParams extends CommandContentTypeParams, CommandParamsEntityById { +} + +/* Excluded from this release type: CommandCustomParams */ + +/** + * Parameters used for the command `data`. + *
+ * The content-type name determines what items will be managed. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandDataParams extends CommandContentTypeParams { + /** + * Filters to apply to the list of items. + *
+ * Each property targets a field. + * The value is a string, number or array for filtering EntityIds or EntityGuids + */ + filters?: Record; +} + +/** + * Parameters used for the command `delete`. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandDeleteParams { + /** + * ID of item to delete, usually detected from context. + */ + entityId: number; + /** + * Guid of item to delete, usually detected from context. + */ + entityGuid: string; + /** + * Title of item to delete, usually detected from context. + * This is important to show the "Are you sure?" dialog. + */ + entityTitle: string; +} + +/* Excluded from this release type: CommandLinkGenerator */ + +/** + * Parameters used for the command `metadata`. + *
+ * Will do either one of these: + * - if it has an `entityId`, will just open `edit` for that Entity + * - if it has no `entityId`, will open `new` for the current `contentType` + * and assign to the target specified by `metadata`: + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandMetadataParams extends CommandContentTypeParams, CommandParamsEntityById { + /** + * Target to assign the metadata to. + */ + metadata: CommandParamsMetadata; +} + +/** + * Names of commands known to 2sxc CMS - for use in toolbars and calling commands directly from code + * @public + */ +export declare const enum CommandNames { + /** + * `add` adds another demo-item to a **list of items**. + * It does not open the edit-dialog. + *
The new item is placed after the item the (+) was clicked on. + *
💡 + * This is different than new, which opens a dialog to add something. + *
🪜 Only appears on toolbars of items which are in a list. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandAddParams) + */ + add = "add", + /** + * `add-existing` opens a dialog allowing the user to select an existing item to add to a **list of items**. + *
The new item is placed after the item the (+) was clicked on. + *
🪜 Only appears on toolbars of items which are in a list. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandAddExistingParams) + *
🆕 in v11.01 + */ + addExisting = "add-existing", + /** + * `app` opens the app-admin dialog + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 No params required, + * (auto-detected from context) + */ + app = "app", + /** + * `app-import` opens the dialog to import an App. + *
🔘 This is not available on the toolbar. + *
📩 No params required, + * (auto-detected from context) + */ + appImport = "app-import", + /** + * `app-resources` opens the edit dialog for app-resources (multi-language texts, labels etc.). + *
🔘 It's disabled on the toolbar if the app doesn't have resource-values to configure. + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 No params required, + * (auto-detected from context) + */ + appResources = "app-resources", + /** + * `app-settings` opens the edit dialog for the app-settings. + *
🔘 It's disabled on the toolbar if the app doesn't have setting-values to configure + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 No params required, + * (auto-detected from context) + */ + appSettings = "app-settings", + /** + * `apps` opens the manage all apps dialog. + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 No params required, + * (auto-detected based on toolbar) + */ + apps = "apps", + /** + * `data` opens the list to manage all items of a specific content-type. + *
🔘 Will use the settings of the current template to open. + * It is only shown to elevated admins. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandDataParams) + */ + data = "data", + /* Excluded from this release type: data_old_contentItems */ + /** + * `fields` opens the dialog to view or modify fields of a content-type. + *
🔘 On a toolbar it will use the content-type of the current item. + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandContentTypeParams) + */ + fields = "fields", + /* Excluded from this release type: fields_old_contenttype */ + /** + * `copy` opens the edit-dialog for the current item in copy-mode, so when saving it will be a new item. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandCopyParams) + *
🆕 in v14.03 + */ + copy = "copy", + /** + * `code` will execute custom javascript. + *
🔘 This is mainly for toolbars, to add buttons with custom code. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandCodeParams) + *
_this used to be called `custom` and had a different setup_ + */ + code = "code", + /* Excluded from this release type: code_old_custom */ + /** + * `delete` will delete (not just remove) a content-item. + *
💡 This is similar to `remove` but really deletes the data from the DB. + *
🔘 It only appears if the toolbar explicitly asks for it. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandDeleteParams) + * (auto-detected from context) + */ + delete = "delete", + /** + * `edit` opens an edit-dialog. + *
+ * In scenarios where the page is currently showing a _demo item_, this will have the same effect as `add`. + * So instead of editing the _demo item_ it would trigger a dialog to add a new item. + *
🔘 Only appears if `entityId` is known or item is in a list. + *
📩 Parameters either one of these: + * [Id](xref:Api.Js.SxcJs.CommandParamsEntityById), + * [In Block](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock), + * [In List](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * (auto-detected from context) + */ + edit = "edit", + /* Excluded from this release type: image */ + /** + * `insights` opens the insights logs page + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 No params required. + */ + insights = "insights", + /* Excluded from this release type: insights_old_server */ + /** + * `instance-list` opens a dialog to manually re-order **items in a list**. + *
🪜 Only appears on toolbars of items which are in a list. + *
📩 No params required, + * (auto-detected from context) + */ + list = "list", + /* Excluded from this release type: list_old_instanceList */ + /** + * `layout` opens the in-page dialog to change the layout of the current content. + *
📩 No params required, + * (auto-detected from context) + */ + layout = "layout", + /** + * `metadata` opens the edit-dialog for the current metadata item. + *
🔘 It only appears if the toolbar explicitly asks for it. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandMetadataParams) + */ + metadata = "metadata", + /** + * `more` create a "…" (ellipsis) button which flips through the button groups of toolbars + *
🔘 It only appears if the toolbar has `more`=`auto` and has multiple groups. + *
📩 No params required, + * (auto-detected based on toolbar) + */ + more = "more", + /** + * `movedown` moves a content-item down one position in a **list of items**. + *
🪜 Only appears on toolbars of items which are in a list. + *
📩 Parameters either one of these: + * [In Block](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock), + * [In List](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * (auto-detected from context) + */ + moveDown = "movedown", + /** + * `moveup` moves a content-item up one position in a **list of items**. + *
🪜 Only appears on toolbars of items which are in a list. + *
📩 Parameters either one of these: + * [In Block](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock), + * [In List](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * (auto-detected from context) + */ + moveUp = "moveup", + /** + * `new` opens the edit-dialog to create a new item/entity. + *
+ * If the previous item is in a list, it will add it to that list _after_ the previous item with the toolbar. + * Otherwise it just creates it and the visualization will differ depending on the App. + *
🪜 It works differently for lists - in which case it also adds it to the list. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandNewParams) + * (usually auto-detected from context) + */ + new = "new", + /* Excluded from this release type: newMode */ + /** + * `publish` tells the system to update a content-items status to published. If there was a published and a draft before, the draft will replace the previous item + *
🔘 Appears automatically if the item is in draft mode / not published. + *
📩 Parameters either one of these: + * [Id](xref:Api.Js.SxcJs.CommandParamsEntityById), + * [In Block](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock), + * [In List](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * (auto-detected from context) + */ + publish = "publish", + /** + * `remove` removes an item from a list of items. + *
🪜 Only appears on toolbars of items which are in a list. + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * (auto-detected from context) + */ + remove = "remove", + /** + * `replace` opens the dialog to assign a different content-item in this slot on module-assigned content items + *
📩 [Parameters](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * (auto-detected from context) + */ + replace = "replace", + /** + * `template-develop` opens the template-editor dialog in a new window. + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 No params required, + * (auto-detected from context) + */ + template = "template", + /* Excluded from this release type: template_old_develop */ + /** + * `template-query` opens the pipeline/query-designer in a new window. + *
🔘 It's not available on the simple Content App, only on full Apps. + * It is disabled if no query is configured. + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 No params required, + * (auto-detected from context) + */ + query = "query", + /* Excluded from this release type: query_old_templateQuery */ + /** + * `template-settings` will change settings on the template currently used + *
🔐 Toolbar shows this automatically to elevated admins. + */ + view = "view", + /* Excluded from this release type: view_old_templateSettings */ + /** + * `system` opens the system dialog for this zone/site. + *
🔐 Toolbar shows this automatically to elevated admins. + *
📩 No params required, + * (auto-detected from context) + */ + system = "system", + /* Excluded from this release type: system_old_zone */ +} + +/** + * Parameters used for the command `new` + *
+ * The ContentType name determines what kind of item will be created. + *
+ * Can also contain `prefill` to add values to the new item. + *
+ * Can also contain list-information, in which case it's added to that list. + * Depending on your use case, you will need to use the + * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) or [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) parameters as well. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandNewParams extends CommandContentTypeParams, Partial, Partial { + /** + * Optional values to prefill in the new-form + */ + prefill?: Record; +} + +/** + * Command parameters are handed over to a command for execution. + * It contains all possible combinations of parameters that can be used in a command. + * + * We will try to improve how this is documented, but ATM it just has all parameters, + * even though you may need none, or just a few. + * + * _Note: For your specific commands, you can also pass other parameters._ + * + * **Important for the docs** + * + * Most properties are actually not visible (you will get them in the types though). + * So actually you will usually create one of these: + * * [](xref:Api.Js.SxcJs.CommandParamsEntityById) + * * [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) + * * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) + * * [](xref:Api.Js.SxcJs.CommandAddParams) + * * [](xref:Api.Js.SxcJs.CommandAddExistingParams) + * * [](xref:Api.Js.SxcJs.CommandDataParams) + * * [](xref:Api.Js.SxcJs.CommandCopyParams) + * * [](xref:Api.Js.SxcJs.CommandCodeParams) + * * [](xref:Api.Js.SxcJs.CommandDeleteParams) + * * [](xref:Api.Js.SxcJs.CommandMetadataParams) + * * [](xref:Api.Js.SxcJs.CommandNewParams) + * + * Because of this, most of the properties below are NOT documented, as their purpose can change depending on the command used. + * @public + */ +export declare interface CommandParams extends Record { + /* Excluded from this release type: action */ + /* Excluded from this release type: items */ + /* Excluded from this release type: mode */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + contentType?: string; + /* Excluded from this release type: contentTypeName */ + /* Excluded from this release type: pipelineId */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + filters?: string; + /* Excluded from this release type: dialog */ + /* Excluded from this release type: sortOrder */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + index?: number; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + entityId?: number; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + entityGuid?: string; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + entityTitle?: string; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + title?: string; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + useModuleList?: true; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + metadata?: CommandParamsMetadata; + /* Excluded from this release type: isPublished */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + prefill?: Record; + /* Excluded from this release type: customCode */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + call?: string; + /* Excluded from this release type: apps */ + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + parent?: string; + /** + * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames). + * @public + */ + fields?: string; + /* Excluded from this release type: isshared */ +} + +/** + * Parameters used for commands which need an entity ID or a list-reference. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandParamsEntity extends CommandParamsEntityById, CommandParamsEntityInContentBlock, CommandParamsEntityInList { +} + +/** + * Parameters used for commands which address a specificy entity. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandParamsEntityById { + /** + * ID of item to edit. + */ + entityId: number; +} + +/** + * Parameters used for command which expect an item from a list of a ContentBlock. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandParamsEntityInContentBlock { + /** + * Determins the position of the item in the list. + * index was added in v14.04 to replace the `sortOrder` which had a confusing name. + */ + index: number; + /** + * Must be true, to work on the module list. + */ + useModuleList: true; +} + +/** + * Parameters used for command which expect an item in a list (field) of a parent. + *
+ * ⤴️ back to [All Command Names](xref:Api.Js.SxcJs.CommandNames) + * @public + */ +export declare interface CommandParamsEntityInList { + /** + * Determins the position of the item in the list of that entity-field. + */ + index: number; + /** + * Parent Entity field(s) name(s). + * Usually just one field, like `Authors`. + * In field-sets it could be `Author,Award` or similar. + */ + fields: string; + /** + * Parent entity _GUID_ which has the field referencing this item. + */ + parent: string; +} + +/** + * Parameters on `metadata` for commands which have a metadata-target. + * @public + */ +export declare interface CommandParamsMetadata { + /** + * The key which identifies the target of this metadata item + */ + key: string; + /** + * the key type, will default to 'string' + */ + keyType?: string; + /** + * The target type, will default to 10 = CMS-Item + */ + targetType?: MetadataTargetTypes; +} + +declare type CommandPromise = Promise; + +/* Excluded from this release type: Commands */ + +/* Excluded from this release type: ContentBlockReference */ + +/* Excluded from this release type: ContentListActionParams */ + +/* Excluded from this release type: ContentListActions */ + +/** + * @public + */ +declare class ContextBundleContent extends ContextBundleInstance { + /* Excluded from this release type: item */ + /* Excluded from this release type: contentBlockReference */ + /* Excluded from this release type: contentBlock */ + /* Excluded from this release type: __constructor */ +} + +/** + * @public + */ +declare class ContextBundleInstance { + /** + * instance of sxc object + */ + sxc: Sxc; + /* Excluded from this release type: instance */ + /* Excluded from this release type: app */ + /* Excluded from this release type: ui */ + /* Excluded from this release type: page */ + /* Excluded from this release type: system */ + /* Excluded from this release type: tenant */ + /* Excluded from this release type: user */ + _isContext: boolean; + /* Excluded from this release type: __constructor */ + /* Excluded from this release type: is */ +} + +/** + * @public + */ +declare class ContextBundleToolbar extends ContextBundleContent { + /* Excluded from this release type: toolbar */ + /* Excluded from this release type: __constructor */ + /* Excluded from this release type: forButton */ +} + +/** + * @public + */ +declare class ContextComplete extends ContextBundleToolbar { + /* Excluded from this release type: _isCtxComplete */ + /* Excluded from this release type: button */ + /* Excluded from this release type: commandWorkflow */ + /* Excluded from this release type: __constructor */ + /* Excluded from this release type: findContext */ + /* Excluded from this release type: contextCopy */ + /* Excluded from this release type: getContextInstance */ + /* Excluded from this release type: is */ +} + +/** + * ContextIdentifier is used to initialize a Sxc object outside of the default context. + * @public + */ +export declare class ContextIdentifier { + /** + * ZoneId of this Context + * @requires zoneId + */ + zoneId: number; + /** + * AppId of this Context + * @requires appId + */ + appId: number; + /** + * PageId of this Context (optional) + * @optional + */ + pageId?: number; + /** + * ModuleId of this Context (optional) + * @optional + */ + moduleId?: number; + /* Excluded from this release type: _ignoreHeaders */ + /* Excluded from this release type: complete */ + /* Excluded from this release type: blockId */ + /* Excluded from this release type: is */ + /* Excluded from this release type: ensureCompleteOrThrow */ +} + +/* Excluded from this release type: ContextOfApp */ + +/* Excluded from this release type: ContextOfContentBlock */ + +/* Excluded from this release type: ContextOfInstance */ + +/* Excluded from this release type: ContextOfItem */ + +/* Excluded from this release type: ContextOfPage */ + +/* Excluded from this release type: ContextOfSystem */ + +/* Excluded from this release type: ContextOfTenant */ + +/* Excluded from this release type: ContextOfUi */ + +/* Excluded from this release type: ContextOfUser */ + +/* Excluded from this release type: DnnUiRoot */ + +/* Excluded from this release type: EnvironmentMetaLoader */ + +/** + * A context information for the current page, helping the JS talk with the backend + * @public + */ +export declare interface EnvironmentSpecs { + /** Page ID */ + page: number; + /** Optional API key - optional if set from external, because it's auto derived from root */ + api: string; + /** Optional App API Root - required because in Oqtane we'll have a different root for appAPIs */ + appApi: string; + /** Portal root path - used for various things incl. the API root */ + root: string; + /** Request verification token header name */ + rvtHeader: string; + /** Request verification token value */ + rvt: string; + /* Excluded from this release type: uiRoot */ + /** The platform code like 'dnn' or 'oqt' */ + platform: string; +} + +/** + * Any object that has an own log object + * @export + * @interface HasLog + * @public + */ +export declare abstract class HasLog { + /* Excluded from this release type: parentLog */ + /* Excluded from this release type: log */ + /* Excluded from this release type: __constructor */ + /* Excluded from this release type: initLog */ + /* Excluded from this release type: initLogInternal */ +} + +/* Excluded from this release type: HeaderNames */ + +/* Excluded from this release type: InPageButtonGroupJson */ + +/* Excluded from this release type: InPageButtonJson */ + +/* Excluded from this release type: InPageCommandJson */ + +/* Excluded from this release type: InPageCommandJsonWithTooMuchInfo */ + +/* Excluded from this release type: InPageToolbarConfigVariations */ + +/* Excluded from this release type: Insights */ + +declare class InsightsLogSet { + name: string; + logs: LogList; + constructor(name: string); +} + +/* Excluded from this release type: InsightsSingleton */ + +/* Excluded from this release type: ItemIdentifierCopy */ + +/* Excluded from this release type: ItemIdentifierGroup */ + +/* Excluded from this release type: ItemIdentifierInField */ + +/* Excluded from this release type: ItemIdentifierParent */ + +/* Excluded from this release type: ItemIdentifierShared */ + +/* Excluded from this release type: ItemIdentifierSimple */ + +/* Excluded from this release type: ListWithCursor */ + +/** + * A log object which will collect log entries for another ojbect + * @export + * @interface Log + * @public + */ +export declare class Log { + /** + * List of all entries added to this log + */ + entries: LogEntry[]; + /* Excluded from this release type: depth */ + /* Excluded from this release type: callDepths */ + /* Excluded from this release type: startTime */ + /** + * Maximum amount of entries to add - to prevent memory hoging + */ + maxEntries: number; + /* Excluded from this release type: __constructor */ + /* Excluded from this release type: liveDump */ + /* Excluded from this release type: _parentHasLiveDump */ + /* Excluded from this release type: keepData */ + /* Excluded from this release type: _parentHasKeepData */ + /* Excluded from this release type: fullIdentifier */ + /* Excluded from this release type: rename */ + /* Excluded from this release type: linkLog */ + /** + * Add a simple message to the log + * @param message + * + * preferred usage is with string parameter: + * log.add(`description ${ parameter }`); + * + * in case that we experience error with normal string parameter, we can use arrow function to enclose parameter like this () => parameter + * but use it very rarely, because there is certainly a performance implication! + * log.add(`description ${() => parameter}`); + */ + add(message: (() => string) | string, data?: unknown): string; + /* Excluded from this release type: addData */ + /* Excluded from this release type: logData */ + /* Excluded from this release type: _prepareEntry */ + /* Excluded from this release type: _prepareMessage */ + /* Excluded from this release type: call */ + /* Excluded from this release type: _callDepthAdd */ + /* Excluded from this release type: _callDepthRemove */ + /* Excluded from this release type: dump */ + /* Excluded from this release type: dumpList */ + /* Excluded from this release type: dumpOne */ + /* Excluded from this release type: _addEntry */ + /* Excluded from this release type: randomString */ + /* Excluded from this release type: parent */ + /* Excluded from this release type: scope */ + /** + * The name of this log, for scenarios where multiple loggers are mixed + */ + name: string; + /* Excluded from this release type: id */ + /* Excluded from this release type: idCache */ + /* Excluded from this release type: identifier */ +} + +/* Excluded from this release type: LogCall */ + +/** + * A log entry item + * @export + * @interface LogEntry + * @public + */ +export declare class LogEntry { + /* Excluded from this release type: log */ + message: string; + /* Excluded from this release type: depth */ + /** A timestamp for this entry to better see sequences of things happening */ + time: number; + /* Excluded from this release type: result */ + /* Excluded from this release type: data */ + /* Excluded from this release type: data */ + /* Excluded from this release type: _data */ + /* Excluded from this release type: source */ + /* Excluded from this release type: __constructor */ +} + +/* Excluded from this release type: LogEntryOptions */ + +/** @public */ +declare type LogList = Array<{ + key: string; + log: Log; +}>; + +/** + * A Metadata-Target identifier to tell an entity that it describes something else. + * + * Usually used in Sxc instances with the [Data Service](xref:Api.Js.SxcJs.SxcData) + * + * Warning: There is another MetadataFor type and they are not fully consistent. + * This is historical and not easy to correct, but we're working on it. + * @public + */ +export declare interface MetadataFor { + /** + * The target type identifier + * - TODO: @2dm - THIS SHOULD probably be number only + */ + Target: string | MetadataTargetTypes; + /** + * The number of the target, if it's identified by a number. + */ + Number?: number; + /** + * The string-id of the target, if it's identified by a string. + */ + String?: string; + /** + * The GUID of the target, if it's identified by a GUID. + */ + Guid?: string; + /* Excluded from this release type: Singleton */ +} + +/** + * Metadata Target Types + * + * These are constants to determine what something is assigned to (e.g. it describes an Entity, a file, etc.) + * + * Use it for the @see MetadataFor objects + * @public + */ +export declare enum MetadataTargetTypes { + /** + * Undefined Type (0) - included for completeness. + * Not usually used, actually None (1) is the default + */ + Undefined = 0, + /** + * Things that are not used as Metadata (1). This is the default for most Entities. + */ + None = 1, + /** + * Metadata of attributes / fields (2). This is used to store configuration like the field label, amount-of-rows, etc. + * Remarks = + * The key is always a number (int) pointing to the Attribute ID in the DB. + */ + Attribute = 2, + /** + * App metadata (3). Used to give Apps additional properties. + * Remarks = + * The key should always be an int ID of the App. + */ + App = 3, + /** + * Metadata of entities / data-items (4). + * This lets us enhance entities with additional information. + * Remarks = + * The Key should always be a GUID + */ + Entity = 4, + /** + * Metadata of a content-type / data-schema (5). Used to give it a description etc. + */ + ContentType = 5, + /** + * Zone metadata (6) - used to give a Zone additional information. + * Only used in very special cases, best not use. + */ + Zone = 6, + /** + * Item / Object of the Platform, like a File or Folder etc. (10) + * Remarks = + * * The key is usually a string to further specify what it's describing, like "file:72" + * * The text equivalent is CmsObject + */ + CmsItem = 10, + /** + * The entire system / platform - so Metadata for the current Dnn/Oqtane installation (11). + * Remarks = + * This is not in use as of now, just added for completeness sakes. + * New in v13 + */ + System = 11, + /** + * A Site - like the current site (12) + * Remarks = New in v13 + */ + Site = 12, + /** + * A Site - like the current site (13) + * Remarks = New in v13 / beta + */ + SiteVariant = 13, + /** + * A Page - like the current page (14) + * Remarks = New in v13 + */ + Page = 14, + /** + * A Page - like the current page (15) + * Remarks = New in v13 / beta + */ + PageVariant = 15, + /** + * A Module - like a module containing some content (16) + * Remarks = New in v13 + */ + Module = 16, + /** + * A Module - like a module containing some content (17) + * Remarks = New in v13 / beta + */ + ModuleVariant = 17, + /** + * A User - like the admin-user (18) + * Remarks = New in v13 + */ + User = 18, + /** Custom target (90). This is what you should use for basic apps which have a custom target that's none of the other defaults. */ + Custom = 90, + /** Custom target (91). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom1 = 91, + /** Custom target (92). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom2 = 92, + /** Custom target (93). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom3 = 93, + /** Custom target (94). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom4 = 94, + /** Custom target (95). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom5 = 95, + /** Custom target (96). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom6 = 96, + /** Custom target (97). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom7 = 97, + /** Custom target (98). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom8 = 98, + /** Custom target (99). Use this for basic apps which need multiple different custom targets (advanced, rare use case) */ + Custom9 = 99 +} + +/* Excluded from this release type: MetaHeaderJsApi */ + +/* Excluded from this release type: ModifierBase */ + +/* Excluded from this release type: ModifierContentBlock */ + +/* Excluded from this release type: ModifierContentBlockInstance */ + +/* Excluded from this release type: ModifierDnnModule */ + +/* Excluded from this release type: ModifierDnnModuleInternal */ + +/* Excluded from this release type: NoJQ */ + +/* Excluded from this release type: NumberNotDefinedHuge */ + +/* Excluded from this release type: Obj */ + +/* Excluded from this release type: Operations */ + +/* Excluded from this release type: PlatformDnn */ + +/* Excluded from this release type: PlatformOqtane */ + +/* Excluded from this release type: positionAndAlign */ + +/* Excluded from this release type: PositionCoordinates */ + +/* Excluded from this release type: Positioning */ + +/* Excluded from this release type: PromiseFactory */ + +/* Excluded from this release type: QeSelectors */ + +/* Excluded from this release type: QuickE */ + +/* Excluded from this release type: QuickEClipboard */ + +/** + * Quick Edit Configuration which has an `enable` and specific button configurations + * @public + */ +export declare class QuickEditConfig { + /** + * Determine whether this section is enabled. + */ + enable?: boolean | 'auto'; + /** + * Optional detailed configuration of the buttons. + */ + buttons?: QuickEditConfigButtons; +} + +/** + * Buttons on a quick-edit toolbar + * @public + */ +export declare class QuickEditConfigButtons { + /** + * Enable the button to "Add Content" + */ + addContent?: boolean; + /** + * Enable the button to "add App" + */ + addApp?: boolean; + /** + * Enable the button "Select" + */ + select?: boolean; + /** + * Enable the button "Paste" + */ + paste?: boolean; + /** + * Enable the button "Delete" + */ + delete?: boolean; + /** + * Enable the button "Move" + */ + move?: boolean; +} + +export declare const QuickEditConfigEnableAuto: string; + +/** + * Quick Edit - Full configuration at root, with `enable` and rules for `modules` and `innerBlocks` + * @public + */ +export declare class QuickEditConfigRoot extends QuickEditConfig { + /** + * The buttons configuration on the root. + * Will be used for the `modules` and `innerBlocks` if not specified there. + * Note that if not specified, will always default to true for all buttons. + */ + buttons?: QuickEditConfigButtons; + /** + * Optional configuration for the Inner Content Blocks. + */ + innerBlocks?: QuickEditConfig; + /** + * Optional configuration for the Modules. + */ + modules?: QuickEditConfig; + /* Excluded from this release type: getDefault */ +} + +/* Excluded from this release type: QuickEditOverlay */ + +/* Excluded from this release type: refresh */ + +/* Excluded from this release type: RuleManager */ + +/* Excluded from this release type: RuleParams */ + +/** + * Parameters for the Instance sxc.cms.run(...) command. + * New in 13.03 + */ +export declare interface RunParams { + /** + * The action to perform. + * Required. + */ + action?: CommandNames; + /** + * The command params, like contentType, entityId etc. + * Optional for many actions. + */ + params?: CommandParams; + /** + * The event which triggered this command - sometimes useful internally further use. + * Optional in most cases, but in some cases it will improve the behavior of the code. + */ + event?: MouseEvent; + /** + * Workflows work the same way as with a toolbar, except that they are added here and not registered on init. + * Because of limitations in automatic documentation, the type here is set to `unknown` but it's actually `WorkflowStep` | `WorkflowStep[]` + */ + workflows?: unknown; +} + +/* Excluded from this release type: RunParamsHelpers */ + +/** + * Parameters for the **Global** $2sxc.cms.run(...) command in Addition to the [RunParams](xref:Api.Js.SxcJs.RunParams). + * It provides context to the run-params such as a Sxc instance or a tag which it started on. + * New in 12.10 + * @public + */ +export declare interface RunParamsWithContext extends RunParams { + /** + * The tag on which the run was triggered - it's used to give the command a context to start from + * We always need the tag OR the context, but never both + */ + tag?: HTMLElement; + /** + * The context to run in, basically containing module id, etc. + * We always need the tag OR the context, but never both + */ + context?: Sxc | ContextIdentifier; +} + +/* Excluded from this release type: RunParamsWithWorkflows */ + +/* Excluded from this release type: Selection_2 */ + +/* Excluded from this release type: SharedLogic */ + +/* Excluded from this release type: Stats */ + +/** + * The typical sxc-instance object for a specific DNN module or content-block + * @public + */ +export declare class Sxc extends HasLog { + /** the sxc-instance ID, which is usually the DNN Module Id */ + id: number; + /** + * content-block ID, which is either the module ID, or the content-block definition entity ID + * this is an advanced concept you usually don't care about, otherwise you should research it + */ + cbid: number; + /* Excluded from this release type: cacheKey */ + /* Excluded from this release type: root */ + /* Excluded from this release type: ctx */ + /* Excluded from this release type: _isSxcInstance */ + /** + * Web API calls for this instance. + * This is the pure call APIs system. + * To get data or queries, best use the data or query services. + */ + webApi: SxcWebApi; + /* Excluded from this release type: manage */ + /** + * CMS operations on this sxc-instance, such as opening the edit dialog etc. + */ + cms: SxcCms; + /* Excluded from this release type: __constructor */ + /* Excluded from this release type: is */ + /** + * Get a data service for a specific content-type. + * + * @param contentType: name of the content type which this service will get + */ + data(contentType: string): SxcData; + /** + * + * @param query + */ + query(query: string): SxcQuery; + /* Excluded from this release type: resolveServiceUrl */ + /* Excluded from this release type: showDetailedHttpError */ + /** + * Test if the current code is in edit-mode and additional javascripts have been loaded to make it work + * @returns true if we are in edit-mode + */ + isEditMode(): boolean; + /* Excluded from this release type: recreate */ +} + +/* Excluded from this release type: SxcApiUrlRoot */ + +/** + * This is in charge of sxc.cms on the instance level. + * ATM it just has the run command. + * In future, it may also have dedicated command like `layout` etc. + * @public + */ +export declare class SxcCms extends SxcPart { + /* Excluded from this release type: __constructor */ + /** + * Run a command on this sxc-instance. + * Requires edit mode to be on, which would enable the edit-JS parts. + * To use, remember to activate `2sxc.JsCms` on the page + * @param runParams - real type is actually RunParams + */ + run(runParams: RunParams): Promise; +} + +/* Excluded from this release type: SxcCmsReal */ + +/** + * Data Service for an App / Sxc-Instance to get/create data of a specific Content-Type + * @public + */ +export declare class SxcData extends SxcDataServiceBase { + readonly name: string; + /* Excluded from this release type: __constructor */ + /** + * Get all items of this type. + */ + getAll(): Promise; + /** + * Get the specific item with the ID. It will return null if not found + */ + getOne(id: number): Promise | null; + /* Excluded from this release type: getMany */ + /* Excluded from this release type: getInternal */ + /** + * Create a new entity with the values supplied + * @param values a simple object containing the values to create + */ + create(values: Record): Promise>; + /** + * Create a new entity with the values supplied and also a metadata-for reference + * @param values a simple object containing the values to create + */ + create(values: Record, metadataFor: MetadataFor | string): Promise>; + /** + * Update an existing entity with the values supplied + */ + update(id: number, values: Record): Promise>; + /** + * Delete an entity + * @param id id of the item to delete + */ + delete(id: number): Promise; + /** + * Delete an entity + * @param guid GUID of the item to delete + */ + delete(guid: string): Promise; +} + +/** + * Base class doing common checks. + * This is internal and not important, but we can't keep it out of the docs. + * @public + */ +export declare abstract class SxcDataServiceBase extends SxcPart { + readonly name: string; + protected readonly webApi: SxcWebApi; + /* Excluded from this release type: __constructor */ +} + +/** + * This is the root global `window.$2sxc` function / object. + * + * It is both a function `window.$2sxc(...)` and object `window.$2sxc.insights...` + * + * If the page feature `2sxc.JsCms` is enabled, the `window.$2sxc` will also be a [SxcGlobalWithCms](xref:Api.Js.SxcJs.SxcGlobalWithCms) + * @public + */ +export declare interface SxcGlobal { + /** + * Get an Sxc Instance + * @param id number: moduleId | HTMLElement: tag in the page | Sxc: an existing sxc - will just be returned | ContextIdentifier: an identifier in complex scenarios without a moduleId/context + * @param cbid number + * @returns SxcInstance + */ + (id: number | HTMLElement | ContextIdentifier | Sxc, cbid?: number): Sxc; + /** + * Get an Sxc Instance using the moduleId. + * Using `$2sxc.get(...)` is the same as using `$2sxc(...)` + * @param moduleId number: moduleId + * @returns SxcInstance + * @since v14.01 + */ + get(moduleId: number): Sxc; + /** + * Get an Sxc Instance using the moduleId and contentBlockId. + * Using `$2sxc.get(...)` is the same as using `$2sxc(...)` + * @param moduleId number: moduleId + * @param contentBlockId number: content-block ID + * @returns Sxc + * @since v14.01 + */ + get(moduleId: number, contentBlockId: number): Sxc; + /** + * Get an Sxc Instance using a tag / `HtmlElement`. Using `$2sxc.get(...)` is the same as using `$2sxc(...)` + * @param tag HTMLElement: tag in the page + * @returns Sxc + * @since v14.01 + */ + get(tag: HTMLElement): Sxc; + /** + * Get an Sxc Instance using a full context-identifier (advanced). Using `$2sxc.get(...)` is the same as using `$2sxc(...)` + * @param context ContextIdentifier: full context identifier + * @returns Sxc + * @since v14.01 + */ + get(context: ContextIdentifier): Sxc; + /** + * Get an Sxc Instance passing in an existing Sxc - just for cases where you're not sure what you aready have. Using `$2sxc.get(...)` is the same as using `$2sxc(...)` + * @param sxc Sxc: an existing sxc - will just be returned + * @returns Sxc - the same Sxc as the one which was passed in + * @since v14.01 + */ + get(sxc: Sxc): Sxc; + /* Excluded from this release type: _controllers */ + /* Excluded from this release type: beta */ + /* Excluded from this release type: _manage */ + /* Excluded from this release type: _translateInit */ + /* Excluded from this release type: debug */ + /* Excluded from this release type: stats */ + /** + * system information, mainly for checking which version of 2sxc is running + * note: it's not always updated reliably, but it helps when debugging + */ + sysinfo: { + /** the version using the ##.##.## syntax */ + version: string; + /** a short text description, for people who have no idea what this is */ + description: string; + }; + /** + * Environment information + * @type {SxcGlobalEnvironment} + */ + env: SxcGlobalEnvironment; + /** + * Http helper for API calls and such + */ + http: SxcGlobalHttp; + /** + * The debugging / insights system. + * Call the `$2sxc.insights()` without parameters to get instructions what the parameters could be. + * @param partName optional name of a part of the system for which we want to see the logs + * @param index optional index on that part for which log we want to see + * @param start log start index - this is to skip the first few lines if there are too many + * @param length amount of lines to show - in some cases will default to 25 + */ + insights(partName: string, index?: number, start?: number, length?: number): void; + /* Excluded from this release type: _insights */ + /* Excluded from this release type: log */ + /** + * Helper to work with url parameters behind ? or # + */ + urlParams: UrlParams; + /* Excluded from this release type: totalPopup */ +} + +/** + * Global Content-Management System on the $2sxc.cms. + * + * It is only available if the page is in edit mode / the page feature `2sxc.JsCms` has been activated. + * @public + */ +export declare class SxcGlobalCms extends HasLog { + /* Excluded from this release type: autoDump */ + /* Excluded from this release type: __constructor */ + /* Excluded from this release type: resetLog */ + /** + * Run a command within a specific context - mostly for internal use. + * @param runParams The complete run params with a context + * @returns A promise which triggers when the command has completed. + */ + run(runParams: RunParamsWithContext): Promise; + /** + * Run a command within a specific context. + * @param tag The context providing tag - an HTML tag inside a module/content-block + * @param action command-name (action) + * @param event Optional mouse-event which allows the command to do some optimizations for that case - like a mouse-click + * @returns A promise which triggers when the command has completed. + */ + run(tag: HTMLElement, action: string, event?: MouseEvent): Promise; + /** + * Run a command within a specific context. + * @param tag The context providing tag - an HTML tag inside a module/content-block + * @param action command-name (action) + * @param params an object containing the the command-params + * @param event Optional mouse-event which allows the command to do some optimizations for that case - like a mouse-click + * @returns A promise which triggers when the command has completed. + */ + run(tag: HTMLElement, action: string, params?: CommandParams, event?: MouseEvent): Promise; + /** + * Run a command within a specific context. + * @param tag The context providing tag - an HTML tag inside a module/content-block + * @param commandParams an object containing the the command-params as well as the command-name (action) + * @param event Optional mouse-event which allows the command to do some optimizations for that case - like a mouse-click + * @returns A promise which triggers when the command has completed. + */ + run(tag: HTMLElement, commandParams: CommandParams, event?: MouseEvent): Promise; + /* Excluded from this release type: runInternal */ + /* Excluded from this release type: do */ +} + +/* Excluded from this release type: SxcGlobalDebug */ + +/** + * Provides environment information to $2sxc - usually page-id, api-root and stuff like that + * @public + */ +export declare class SxcGlobalEnvironment extends HasLog { + /* Excluded from this release type: header */ + /** + * Flag to determine if the environment information is available. + */ + ready: boolean; + /** + * Where the environment information came from. + */ + source: string; + /* Excluded from this release type: metaLoader */ + /* Excluded from this release type: __constructor */ + /** + * Manually load a new EnvironmentSpecs in cases where the page cannot provide them. + * This is only used in scenarios outside of Dnn / Oqtane, you will usually not need this. + * @param envSpecs new info to load + * @param source _optional_ name where the data came from + */ + load(envSpecs: EnvironmentSpecs, source?: string): void; + /* Excluded from this release type: replacedRvt */ + /* Excluded from this release type: updateRvt */ + /** + * The API endpoint url from the environment + */ + api(): string; + /* Excluded from this release type: appApi */ + /** + * The current page ID - often needed in API calls + */ + page(): number; + /** + * The request verification token header name for internal WebAPI calls + */ + rvtHeader(): string; + /** + * The request-verification token for internal WebAPI calls + */ + rvt(): string; + /* Excluded from this release type: uiRoot */ + /** + * The platform code like 'oqt' or 'dnn' in case the JS needs to know the difference + */ + platform(): string; + /* Excluded from this release type: ensureReadyOrThrow */ +} + +/** + * Global HTTP Service for information and helpers on `$2sxc.http` + * @public + */ +export declare class SxcGlobalHttp extends HasLog { + private env; + /* Excluded from this release type: __constructor */ + /** + * All the headers which are needed in an ajax call. + * @returns Dictionary / Record of headers + */ + headers(): Record; + /** + * All the headers which are needed in an ajax call - within a module context. + * @param id _optional_ module ID + * @returns Dictionary / Record of headers + */ + headers(id: number): Record; + /** + * All the headers which are needed in an ajax call - within a module and content-block context. + * @param id _optional_ module ID + * @param cbid _optional_ content block ID + * @returns Dictionary / Record of headers + */ + headers(id: number, cbid: number): Record; + /** + * All the headers which are needed in an ajax call. + * Uses a module and content-block context (but these could also be null) + * and a full context identifier for advanced operations. + * @param id _optional_ module ID + * @param cbid _optional_ content block ID + * @param ctx _optional_ context information to include in the header + * @returns Dictionary / Record of headers + */ + headers(id: number, cbid: number, ctx: ContextIdentifier): Record; + /* Excluded from this release type: apiRoot */ + /* Excluded from this release type: appApiRoot */ + /** + * Convert short urls like `app/auto/api/Posts/All` to the full URL needed. + * Will ignore urls which clearly already are the full url. + * @param url short URL like `app/auto/api/Posts/All` + * @returns the converted, long url with the full endpoint + */ + apiUrl(url: string): string; + /** + * Convert short urls like `app/auto/api/Posts/All` to the full URL needed. + * Will ignore urls which clearly already are the full url. + * @param url short URL like `app/auto/api/Posts/All` + * @param endpointName _optional_ endpoint name if accessing a different exotic endpoint + * @returns the converted, long url with the full endpoint + */ + apiUrl(url: string, endpointName: string): string; +} + +/* Excluded from this release type: SxcGlobalManage */ + +/** + * $2sxc global interface _extending_ the `SxcGlobal` when the page feature `JsCms` is enabled. + * + * If the page feature `2sxc.JsCms` is not enabled, the `window.$2sxc` will be a [SxcGlobal](xref:Api.Js.SxcJs.SxcGlobal) + * @public + */ +export declare interface SxcGlobalWithCms { + /* Excluded from this release type: system */ + /** + * Will retrieve a resource in the current language. + * Mainly used for toolbars etc. to support localization. + * + * Only available when edit mode is on meaning the page feature JsCms is enabled + * @param key the key of the resource to translate + */ + translate(key: string): string; + /* Excluded from this release type: context */ + /** + * Content Management features on the $2sxc + */ + cms: SxcGlobalCms; +} + +/* Excluded from this release type: SxcManage */ + +/** + * Base class for anything attached to an sxc-instance. + * This is internal and not important, but we can't keep it out of the docs. + * @public + */ +export declare abstract class SxcPart { + /* Excluded from this release type: sxc */ + /* Excluded from this release type: partName */ + /* Excluded from this release type: __constructor */ +} + +/** + * Instance Query Service + * @public + */ +export declare class SxcQuery extends SxcDataServiceBase { + readonly name: string; + /* Excluded from this release type: __constructor */ + getAll(): Promise; + getAll(urlParams: string | Record): Promise; + getAll(urlParams: string | Record, data: string | Record): Promise; + /** + * Get just one stream, returning an array of items in that stream + * + * @template T + * @param stream + * @returns {Promise} containing an array of items - or empty if stream not found or nothing returned + */ + getStream(stream: string): Promise; + getStream(stream: string, urlParams: string | Record): Promise; + getStream(stream: string, urlParams: string | Record, data: string | Record): Promise; + /** + * Get a query but only the mentioned streams. + * This will reduce the amount of data retrieved on queries that have many streams. + * @template T The schema/interfaces of what will be returned + * @returns {Promise} Promise containing a object with stream-names and items in the streams. + * @public + */ + getStreams(streams: string): Promise; + /** + * Get a query but only the mentioned streams. + * This will reduce the amount of data retrieved on queries that have many streams. + * @template T The schema/interfaces of what will be returned + * @param streams name of streams to get, comma separated + * @param urlParams additional parameters for the URL, either as a string or as a object + * @returns {Promise} Promise containing a object with stream-names and items in the streams. + * @public + */ + getStreams(streams: string, urlParams: string | Record): Promise; + /** + * Get a query but only the mentioned streams. + * This will reduce the amount of data retrieved on queries that have many streams. + * @template T The schema/interfaces of what will be returned + * @param streams name of streams to get, comma separated + * @param urlParams additional parameters for the URL, either as a string or as a object + * @param data data to include in case of a POST call - if this is provided, it will use a post + * @returns {Promise} Promise containing a object with stream-names and items in the streams. + * @public + */ + getStreams(streams: string, urlParams: string | Record, data: string | Record): Promise; + /* Excluded from this release type: getInternal */ +} + +/* Excluded from this release type: SxcTools */ + +/* Excluded from this release type: SxcVersion */ + +/** + * helper API to run ajax / REST calls to the server + * it will ensure that the headers etc. are set correctly + * and that urls are rewritten + * @public + */ +export declare class SxcWebApi implements ZzzSxcWebApiDeprecated { + private readonly sxc; + /* Excluded from this release type: env */ + /* Excluded from this release type: __constructor */ + /** + * **Deprecated** - docs in the separate interface + * @deprecated use fetchJson instead + */ + get(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; + /** + * **Deprecated** - docs in the separate interface + * @deprecated use fetchJson instead + */ + post(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; + /** + * **Deprecated** - docs in the separate interface + * @deprecated use fetchJson instead + */ + delete(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; + /** + * **Deprecated** - docs in the separate interface + * @deprecated use fetchJson instead + */ + put(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; + /** + * **Deprecated** - docs in the separate interface + * @deprecated use fetchJson instead + */ + request(settings: string | ZzzAjaxSettingsDeprecated, params: any, data: any, preventAutoFail: boolean, method: string): any; + /** + * Will retrieve data from the backend using a standard fetch. + * @param url a full url or short-hand like `controller/method?params` `app/auto/api/controller/method?params`. Note that params would also be specified on the url. + * @param data optional POST data + * @param method optional method, defaults to `GET` unless it has data, in which case it defaults to `POST` + * @returns a Promise containing a Response object, just like a normal fetch would. + * example: webApi.fetchRaw('Rss/Feed'); + * example: webApi.fetchRaw(webApi.url('Rss/Feed', { id: 47 })); // url params + * example: webApi.fetchRaw('Rss/Feed', { id: 47 }); // post params + * example: webApi.fetchRaw(webApi.url('Rss/Feed', { id: 47 }), { something: 'this is a test' }); // url & post params + * maybe: webApi.fetchRaw({url: 'Rss/Feed', params: { id: 47 }}) + * maybe: webApi.fetchRaw({url: ..., params: { ...}, body: { ...}, method: 'GET' }) + */ + fetchRaw(url: string, data?: string | Record, method?: string): Promise; + /* Excluded from this release type: fetch */ + /** + * Will retrieve data from the backend using a standard fetch and give you an object. + * @param url a full url or short-hand like `controller/method?params` `app/auto/api/controller/method?params`. Note that params would also be specified on the url. + * @param data optional POST data + * @param method optional method, defaults to `GET` unless it has data, in which case it defaults to `POST` + * @returns a Promise containing any object. + */ + fetchJson(url: string, data?: string | Record, method?: string): Promise; + /** + * All the headers which are needed in an ajax call for this to work reliably. + * Use this if you need to get a list of headers in another system + */ + headers(method?: string): Record; + /** + * + * @param url A short, medium or long url. + * Short like `controller/method`, + * medium like `app/auto/api/controller/method` + * long like `https://xyz. + * In all cases it can also have ?params etc. + * @param params Optional parameters as string or object, will be added to url-params. + * @returns In the cases of a short/medium url, + * it will auto-expand to have the full url as needed for an API call. + */ + url(url: string, params?: string | Record): string; +} + +/* Excluded from this release type: SystemUpgrader */ + +/* Excluded from this release type: TemplateEditor */ + +/* Excluded from this release type: TemplateIdentifier */ + +/* Excluded from this release type: Toolbar */ + +/* Excluded from this release type: TOOLBAR_FOLLOW_ALWAYS */ + +/* Excluded from this release type: TOOLBAR_FOLLOW_INITIAL */ + +/* Excluded from this release type: TOOLBAR_FOLLOW_SCROLL */ + +/* Excluded from this release type: TOOLBAR_SHOW_ALWAYS */ + +/* Excluded from this release type: TOOLBAR_SHOW_HOVER */ + +/* Excluded from this release type: ToolbarButtonSettings */ + +/* Excluded from this release type: ToolbarConfigLoader */ + +/* Excluded from this release type: ToolbarConfigLoaderV09 */ + +/* Excluded from this release type: ToolbarConfigLoaderV10 */ + +/* Excluded from this release type: ToolbarInitConfig */ + +/* Excluded from this release type: ToolbarManager */ + +/* Excluded from this release type: ToolbarSettings */ + +/* Excluded from this release type: ToolbarTemplate */ + +/* Excluded from this release type: ToolbarTemplateGroup */ + +/* Excluded from this release type: ToolbarTemplateManager */ + +/* Excluded from this release type: ToolbarWip */ + +/* Excluded from this release type: ToolbarWithWorkflow */ + +/** + * A workflow manager _of a Toolbar_ which will run stuff before / after commands. + * When toolbars are created, they will add a Manager and then raise an event for in-page code to add workflow steps. + * Normally the toolbar with raise a `toolbar-init` event where you can then add steps. + * @public + */ +export declare class ToolbarWorkflowManager extends HasLog { + private isDummy; + /* Excluded from this release type: steps */ + /* Excluded from this release type: __constructor */ + /** + * Register one or many [workflow-steps](xref:Api.Js.SxcJs.WorkflowStep) to the toolbar, to use if toolbar commands are executed. + */ + add(steps: WorkflowStep | WorkflowStep[]): void; + /* Excluded from this release type: addOne */ + /* Excluded from this release type: run */ + /* Excluded from this release type: attach */ + /* Excluded from this release type: runNextPromiseIfNotCancelled */ +} + +/* Excluded from this release type: ToSxcName */ + +/* Excluded from this release type: TotalPopup */ + +declare type TypeAutoAddMore = null | 'start' | 'end' | true; + +/* Excluded from this release type: TypeFollow */ + +declare type TypeHover = 'left' | 'right' | 'none'; + +/* Excluded from this release type: TypeShow */ + +/* Excluded from this release type: TypeTbD */ + +export declare type TypeValue = boolean | string | number | Date; + +/* Excluded from this release type: urlClean */ + +declare interface UrlItemParams { + prefill?: Record; + items?: string; + contentTypeName?: string; + filters?: string; +} + +/** + * Helper object to read url params. + * Available on `$2sxc.urlParams` + * @public + */ +export declare class UrlParams { + /** + * Get a param from the url, no matter if it's behind ? or # + * If not found, will return an empty string `''` + * @param name + */ + get(name: string): string; + /** + * Get a required param from the url, no matter if it's behind ? or # + * Will throw an error if not found + * @param name + */ + require(name: string): string; + /** + * Checks if debug is enabled in the URL + * @returns + */ + isDebug(): boolean; + /* Excluded from this release type: toUrl */ + /* Excluded from this release type: toObj */ +} + +/* Excluded from this release type: WorkflowCommands */ + +/* Excluded from this release type: WorkflowHelper */ + +/** + * Phases / events of a specific workflow. + */ +export declare enum WorkflowPhases { + /** + * Run at every phase - before and after events/commands + */ + all = "all", + /** + * Run before a specific event / command + */ + before = "before", + /** + * Run after a specific event / command + */ + after = "after" +} + +/* Excluded from this release type: WorkflowPromiseFactory */ + +/** + * A workflow step (code-sequence) to run before/after specific events. + * @public + */ +export declare interface WorkflowStep { + /** + * The name of this step, in case it needs to be replaced or somehow controlled + * Will be empty by default + */ + name?: string; + /** + * The action this step is for, can be 'any', 'edit', etc. + * Will be 'all' by default + */ + command: string; + /** + * Action-phase being run, like 'all', 'before', 'after' + * will be 'before' by default + */ + phase?: WorkflowPhases; + /** + * Execution priority, higher comes first + * Will be 1 by default. + */ + priority?: number; + /** + * The code which is run, must be a promise-factory. + * So it's a function that will return a promise. + * Required. + * See [](xref:Api.Js.SxcJs.WorkflowStepCode) + */ + code: (args: WorkflowStepCodeArguments) => WorkflowStepCodeArguments; +} + +/* Excluded from this release type: WorkflowStepCode */ /** - * Make sure the code knows that $2sxc exists on window + * Arguments for [WorkflowStepCode](xref:Api.Js.SxcJs.WorkflowStepCode). + * Will be passed to your code and should also be returned by your code. + * This also allows cancelling further execution. + * @public */ -declare global { - interface Window { +export declare class WorkflowStepCodeArguments { /** - * The global $2sxc object / function to generate Sxc instances + * Name this workflow is running for */ - $2sxc: SxcGlobal; - } -} \ No newline at end of file + command: string; + /** + * The phase it's in (before, after, etc.) + */ + phase: WorkflowPhases; + /** + * Context of the current command / step being run + */ + context: ContextComplete; + /** + * Result in after-phases of the workflow + * BETA - never really tested this + */ + result: unknown; + /* Excluded from this release type: __constructor */ + /** + * If the workflow should be cancelled. + * Can be set by any workflow step. + * If set to true, following steps / workflows will not run. + */ + cancel: boolean; +} + +/* Excluded from this release type: WorkflowStepHelper */ + +/** + * Deprecated parameters for old jQuery AJAX calls. + * Shouldn't be used any more. + * @public + * @deprecated + */ +export declare interface ZzzAjaxSettingsDeprecated { + /* Excluded from this release type: endpoint */ + /** + * Controller name, for controller/action calls + */ + controller?: string; + /** + * action name, for controller/action calls + */ + action?: string; + /** + * The params to be used in the url for the request + */ + params?: any; + /* Excluded from this release type: preventAutoFail */ +} + +/** + * **Deprecated** + * Old APIs on sxc.webApi. + * They only exist if jQuery is included on the page, and we highly discourage their use. + * @deprecated + */ +export declare interface ZzzSxcWebApiDeprecated { + /** + * **Deprecated** + * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) + * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. + * + * Returns an http-get promise using jQuery + * @param settingsOrUrl the url to get + * @param params jQuery style ajax parameters + * @param data jQuery style data for post/put requests + * @param preventAutoFail + * @returns jQuery ajax promise object + * @deprecated use fetchJson instead + */ + get(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; + /** + * **Deprecated** + * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) + * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. + * + * Returns an http-post promise using jQuery + * @param settingsOrUrl the url to get + * @param params jQuery style ajax parameters + * @param data jQuery style data for post/put requests + * @param preventAutoFail + * @returns jQuery ajax promise object + * @deprecated use fetchJson instead + */ + post(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; + /** + * **Deprecated** + * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) + * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. + * + * Returns an http-delete promise using jQuery + * @param settingsOrUrl the url to talk to + * @param params jQuery style ajax parameters + * @param data jQuery style data for post/put requests + * @param preventAutoFail + * @returns jQuery ajax promise object + * @deprecated use fetchJson instead + */ + delete(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; + /** + * **Deprecated** + * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) + * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. + * + * Returns an http-put promise using jQuery + * @param settingsOrUrl the url to put + * @param params jQuery style ajax parameters + * @param data jQuery style data for post/put requests + * @param preventAutoFail + * @returns jQuery ajax promise object + * @deprecated use fetchJson instead + */ + put(settingsOrUrl: string | ZzzAjaxSettingsDeprecated, params?: any, data?: any, preventAutoFail?: boolean): any; + /** + * **Deprecated** + * Please use [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchJson) + * or [fetchJson()](xref:Api.Js.SxcJs.SxcWebApi.fetchRaw) instead. + * + * Generic http request using jQuery + * @param settingsOrUrl the url to get + * @param params jQuery style ajax parameters + * @param data jQuery style data for post/put requests + * @param preventAutoFail + * @param method the http verb name + * @returns jQuery ajax promise object + * @deprecated use fetchJson instead + */ + request(settings: string | ZzzAjaxSettingsDeprecated, params: any, data: any, preventAutoFail: boolean, method: string): any; +} + +export { } diff --git a/projects/sxc-typings/index.d.ts b/projects/sxc-typings/index.d.ts index 8c47d5a33..5a8632983 100644 --- a/projects/sxc-typings/index.d.ts +++ b/projects/sxc-typings/index.d.ts @@ -1,11 +1,25 @@ -// type definitions for 2sxc -// project: 2sxc typings -// definitions by: Daniel Mettler, 2sic +/* + Special custom d.ts file + this has the definition of the augmented window object, because the api exporter doesn't support this. +*/ -// This file must be manually maintained, it's used by the api-extractor to start +import { SxcGlobal } from './index-public'; -export * from './parts/dist/$2sxc/src'; +export * from "./index-public"; -export * from './parts/dist/core'; +/** + * Make sure the code knows that $2sxc exists on window and globally + */ +declare global { + interface Window { + /** + * The global $2sxc object / function to generate Sxc instances + */ + $2sxc: SxcGlobal; + } -export * from './parts/dist/inpage/src'; + /** + * The global $2sxc object / function to generate Sxc instances + */ + const $2sxc: SxcGlobal; +} diff --git a/projects/sxc-typings/input/typedoc.api.json b/projects/sxc-typings/input/typedoc.api.json index 90ea2633d..14f3540e3 100644 --- a/projects/sxc-typings/input/typedoc.api.json +++ b/projects/sxc-typings/input/typedoc.api.json @@ -685,7 +685,7 @@ "excerptTokens": [ { "kind": "Content", - "text": "export declare enum CommandNames " + "text": "export declare const enum CommandNames " } ], "releaseTag": "Public", @@ -841,7 +841,7 @@ { "kind": "EnumMember", "canonicalReference": "@2sic.com/2sxc-typings!CommandNames.code:member", - "docComment": "/**\n * `code` will execute custom javascript.
🔘 This is mainly for toolbars, to add buttons with custom code.
📩 [Parameters](xref:Api.Js.SxcJs.CommandCodeParams)\n */\n", + "docComment": "/**\n * `code` will execute custom javascript.
🔘 This is mainly for toolbars, to add buttons with custom code.
📩 [Parameters](xref:Api.Js.SxcJs.CommandCodeParams)
_this used to be called `custom` and had a different setup_\n */\n", "excerptTokens": [ { "kind": "Content", @@ -1394,11 +1394,20 @@ { "kind": "Interface", "canonicalReference": "@2sic.com/2sxc-typings!CommandParams:interface", - "docComment": "/**\n * Command parameters are handed over to a command for execution\n *\n * @public\n */\n", + "docComment": "/**\n * Command parameters are handed over to a command for execution. It contains all possible combinations of parameters that can be used in a command.\n *\n * We will try to improve how this is documented, but ATM it just has all parameters, even though you may need none, or just a few.\n *\n * _Note: For your specific commands, you can also pass other parameters._\n *\n * **Important for the docs**\n *\n * Most properties are actually not visible (you will get them in the types though). So actually you will usually create one of these: * [](xref:Api.Js.SxcJs.CommandParamsEntityById) * [](xref:Api.Js.SxcJs.CommandParamsEntityInContentBlock) * [](xref:Api.Js.SxcJs.CommandParamsEntityInList) * [](xref:Api.Js.SxcJs.CommandAddParams) * [](xref:Api.Js.SxcJs.CommandAddExistingParams) * [](xref:Api.Js.SxcJs.CommandDataParams) * [](xref:Api.Js.SxcJs.CommandCopyParams) * [](xref:Api.Js.SxcJs.CommandCodeParams) * [](xref:Api.Js.SxcJs.CommandDeleteParams) * [](xref:Api.Js.SxcJs.CommandMetadataParams) * [](xref:Api.Js.SxcJs.CommandNewParams)\n *\n * Because of this, most of the properties below are NOT documented, as their purpose can change depending on the command used.\n *\n * @public\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "export interface CommandParams " + "text": "export interface CommandParams extends " + }, + { + "kind": "Reference", + "text": "Record", + "canonicalReference": "!Record:type" + }, + { + "kind": "Content", + "text": " " } ], "releaseTag": "Public", @@ -1406,17 +1415,233 @@ "members": [ { "kind": "PropertySignature", - "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#action:member", - "docComment": "/**\n * The action is used in scenarios where the command name must be included\n */\n", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#call:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "action?: " + "text": "call?: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "call", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#contentType:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "contentType?: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "contentType", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#entityGuid:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "entityGuid?: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "entityGuid", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#entityId:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "entityId?: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "entityId", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#entityTitle:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "entityTitle?: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "entityTitle", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#fields:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "fields?: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "fields", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#filters:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "filters?: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "filters", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#index:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "index?: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "index", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#metadata:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "metadata?: " }, { "kind": "Reference", - "text": "CommandNames", - "canonicalReference": "@2sic.com/2sxc-typings!CommandNames:enum" + "text": "CommandParamsMetadata", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParamsMetadata:interface" }, { "kind": "Content", @@ -1426,14 +1651,141 @@ "isReadonly": false, "isOptional": true, "releaseTag": "Public", - "name": "action", + "name": "metadata", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#parent:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "parent?: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "parent", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#prefill:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "prefill?: " + }, + { + "kind": "Reference", + "text": "Record", + "canonicalReference": "!Record:type" + }, + { + "kind": "Content", + "text": "" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "prefill", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 5 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#title:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "title?: " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "title", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams#useModuleList:member", + "docComment": "/**\n * The purpose of this varies by [Command](xref:Api.Js.SxcJs.CommandNames).\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "useModuleList?: " + }, + { + "kind": "Content", + "text": "true" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "useModuleList", "propertyTypeTokenRange": { "startIndex": 1, "endIndex": 2 } } ], - "extendsTokenRanges": [] + "extendsTokenRanges": [ + { + "startIndex": 1, + "endIndex": 2 + } + ] }, { "kind": "Interface", @@ -1549,7 +1901,7 @@ { "kind": "PropertySignature", "canonicalReference": "@2sic.com/2sxc-typings!CommandParamsEntityInContentBlock#index:member", - "docComment": "/**\n * Determins the position of the item in the list.\n */\n", + "docComment": "/**\n * Determins the position of the item in the list. index was added in v14.04 to replace the `sortOrder` which had a confusing name.\n */\n", "excerptTokens": [ { "kind": "Content", @@ -3560,6 +3912,34 @@ "endIndex": 2 } }, + { + "kind": "PropertySignature", + "canonicalReference": "@2sic.com/2sxc-typings!RunParams#params:member", + "docComment": "/**\n * The command params, like contentType, entityId etc. Optional for many actions.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "params?: " + }, + { + "kind": "Reference", + "text": "CommandParams", + "canonicalReference": "@2sic.com/2sxc-typings!CommandParams:interface" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": true, + "releaseTag": "Public", + "name": "params", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, { "kind": "PropertySignature", "canonicalReference": "@2sic.com/2sxc-typings!RunParams#workflows:member", diff --git a/projects/sxc-typings/package.json b/projects/sxc-typings/package.json index 688d52d8a..b880e0a10 100644 --- a/projects/sxc-typings/package.json +++ b/projects/sxc-typings/package.json @@ -1,7 +1,8 @@ { "// notes": "The version is used in the final NPM. For beta releases, use pattern '14.02.0-beta.0'", - "version": "14.07.00", - "types": "./index-public.d.ts", + "version": "14.07.03", + "main": "./index.d.ts", + "types": "./index.d.ts", "scripts": { "generate": "typings.cmd \".\\parts\\dist\"", "publish-dry": "npm publish --dry-run", @@ -18,7 +19,8 @@ "url": "https://github.com/2sic/2sxc-ui/issues" }, "files": [ - "index-public*.d.ts" + "index.d.ts", + "index-public.d.ts" ], "description": "Typescript typings to work with core 2sxc objects", "homepage": "https://github.com/2sic/2sxc-ui/tree/master/typings#readme", @@ -37,7 +39,6 @@ "type": "git", "url": "git+https://github.com/2sic/2sxc-ui.git" }, - "main": "", "devDependencies": { "@microsoft/api-documenter": "^7.17.19", "@microsoft/api-extractor": "^7.25.2", diff --git a/projects/sxc-typings/readme.md b/projects/sxc-typings/readme.md index 7b416b18a..abc5cfc07 100644 --- a/projects/sxc-typings/readme.md +++ b/projects/sxc-typings/readme.md @@ -1,6 +1,6 @@ -# 2sxc TypeScript Typings +# 2sxc TypeScript Types / Typings -This are the public typings for NPM, which should help you write type-safe code when working with the core 2sxc JavaScript APIs. +This are the public types for NPM, which should help you write type-safe code when working with the core 2sxc JavaScript APIs. Use this for your DNN/2sxc TypeScript and to create Angular, React, Vue etc. adaptors. diff --git a/projects/sxc-typings/tsconfig.typedoc.json b/projects/sxc-typings/tsconfig.typedoc.json index 8729ab15f..706169f75 100644 --- a/projects/sxc-typings/tsconfig.typedoc.json +++ b/projects/sxc-typings/tsconfig.typedoc.json @@ -2,17 +2,11 @@ "extends": "./tsconfig.json", "include": [ - "./index-docs.ts", - "./index-public-part.ts" + "./docs-index.ts", + "./docs-public.ts" ], - - - "typedocOptions": { - // "entryPoints": [ - // "./index-docs.d.ts" - // ], // don't create out - "out": "./docs/typedoc", "json": "./docs/typedoc/typedoc.json", "name": "Api.Js.SxcJs", diff --git a/projects/sxc-typings/typings.cmd b/projects/sxc-typings/typings.cmd index 9f5df4aa9..1b01a7270 100644 --- a/projects/sxc-typings/typings.cmd +++ b/projects/sxc-typings/typings.cmd @@ -14,6 +14,6 @@ call api-extractor run --local --verbose @Echo 4. Create the .ts files from the .d.ts because this is what is used by docFx @REM can't copy this, as the reference to the file would be off with a ".d" instead of the ts @REM copy index-public.d.ts index-docs.ts -copy index-public-part.d.ts index-public-part.ts +copy index-public.d.ts docs-public.ts @REM return 0