@tiny-mce-umbraco/backoffice 17.2.0 → 17.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cms/api/types.gen.d.ts +1 -0
- package/dist-cms/api/types.gen.d.ts.map +1 -1
- package/dist-cms/clipboard/block/copy/block-rte-to-block-copy-translator.d.ts +9 -0
- package/dist-cms/clipboard/block/copy/block-rte-to-block-copy-translator.d.ts.map +1 -0
- package/dist-cms/clipboard/block/copy/block-rte-to-block-copy-translator.js +23 -0
- package/dist-cms/clipboard/block/paste/block-to-block-rte-paste-translator.d.ts +15 -0
- package/dist-cms/clipboard/block/paste/block-to-block-rte-paste-translator.d.ts.map +1 -0
- package/dist-cms/clipboard/block/paste/block-to-block-rte-paste-translator.js +27 -0
- package/dist-cms/clipboard/manifests.d.ts +2 -0
- package/dist-cms/clipboard/manifests.d.ts.map +1 -0
- package/dist-cms/clipboard/manifests.js +20 -0
- package/dist-cms/components/input-tiny-mce/input-tiny-mce.defaults.d.ts.map +1 -1
- package/dist-cms/components/input-tiny-mce/input-tiny-mce.defaults.js +77 -8
- package/dist-cms/components/input-tiny-mce/input-tiny-mce.element.d.ts.map +1 -1
- package/dist-cms/components/input-tiny-mce/input-tiny-mce.element.js +32 -4
- package/dist-cms/localizations/ar.d.ts.map +1 -1
- package/dist-cms/localizations/ar.js +3 -0
- package/dist-cms/localizations/bs.d.ts.map +1 -1
- package/dist-cms/localizations/bs.js +3 -0
- package/dist-cms/localizations/cy.d.ts.map +1 -1
- package/dist-cms/localizations/cy.js +3 -0
- package/dist-cms/localizations/da.d.ts.map +1 -1
- package/dist-cms/localizations/da.js +4 -0
- package/dist-cms/localizations/en.d.ts.map +1 -1
- package/dist-cms/localizations/en.js +4 -0
- package/dist-cms/localizations/hr.d.ts.map +1 -1
- package/dist-cms/localizations/hr.js +3 -0
- package/dist-cms/localizations/it.d.ts.map +1 -1
- package/dist-cms/localizations/it.js +3 -0
- package/dist-cms/localizations/manifests.d.ts.map +1 -1
- package/dist-cms/localizations/manifests.js +24 -24
- package/dist-cms/localizations/nl.d.ts.map +1 -1
- package/dist-cms/localizations/nl.js +3 -0
- package/dist-cms/localizations/tr.d.ts.map +1 -1
- package/dist-cms/localizations/tr.js +3 -0
- package/dist-cms/manifests.d.ts.map +1 -1
- package/dist-cms/manifests.js +2 -0
- package/dist-cms/plugins/tiny-mce-block-picker.plugin.d.ts.map +1 -1
- package/dist-cms/plugins/tiny-mce-block-picker.plugin.js +20 -2
- package/dist-cms/plugins/tiny-mce-embeddedmedia.plugin.d.ts.map +1 -1
- package/dist-cms/plugins/tiny-mce-embeddedmedia.plugin.js +1 -0
- package/dist-cms/plugins/tiny-mce-mediapicker.plugin.d.ts.map +1 -1
- package/dist-cms/plugins/tiny-mce-mediapicker.plugin.js +7 -3
- package/dist-cms/property-editors/tiny-mce/manifests.d.ts.map +1 -1
- package/dist-cms/property-editors/tiny-mce/manifests.js +8 -0
- package/package.json +6 -6
- package/dist-cms/README.md +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.gen.d.ts","sourceRoot":"","sources":["../../src/api/types.gen.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,yBAAyB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtH,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,8BAA8B,CAAC;CACxC,CAAC;AAEF,oBAAY,8BAA8B;IACtC,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,GAAG,QAAQ;CACd;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACvC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,YAAY,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC1B,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACrC,cAAc,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,4CAA4C,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IACb;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IACb;;OAEG;IACH,GAAG,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,eAAe,CAAC,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,GAAG,EAAE,0BAA0B,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.gen.d.ts","sourceRoot":"","sources":["../../src/api/types.gen.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,yBAAyB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtH,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,8BAA8B,CAAC;CACxC,CAAC;AAEF,oBAAY,8BAA8B;IACtC,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,GAAG,QAAQ;CACd;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACvC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,YAAY,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC1B,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACrC,cAAc,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,4CAA4C,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IACb;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IACb;;OAEG;IACH,GAAG,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,eAAe,CAAC,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,GAAG,EAAE,0BAA0B,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
|
2
|
+
import type { UmbBlockRteValueModel } from '@umbraco-cms/backoffice/block-rte';
|
|
3
|
+
import type { UmbBlockClipboardEntryValueModel } from '@umbraco-cms/backoffice/block';
|
|
4
|
+
import type { UmbClipboardCopyPropertyValueTranslator } from '@umbraco-cms/backoffice/clipboard';
|
|
5
|
+
export declare class UmbTinyMceBlockRteToBlockClipboardCopyPropertyValueTranslator extends UmbControllerBase implements UmbClipboardCopyPropertyValueTranslator<UmbBlockRteValueModel> {
|
|
6
|
+
translate(propertyValue: UmbBlockRteValueModel): Promise<UmbBlockClipboardEntryValueModel>;
|
|
7
|
+
}
|
|
8
|
+
export { UmbTinyMceBlockRteToBlockClipboardCopyPropertyValueTranslator as api };
|
|
9
|
+
//# sourceMappingURL=block-rte-to-block-copy-translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-rte-to-block-copy-translator.d.ts","sourceRoot":"","sources":["../../../../src/clipboard/block/copy/block-rte-to-block-copy-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,mCAAmC,CAAC;AAEjG,qBAAa,6DACZ,SAAQ,iBACR,YAAW,uCAAuC,CAAC,qBAAqB,CAAC;IAEnE,SAAS,CAAC,aAAa,EAAE,qBAAqB,GAAG,OAAO,CAAC,gCAAgC,CAAC;CAkBhG;AAED,OAAO,EAAE,6DAA6D,IAAI,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
|
2
|
+
import { UMB_BLOCK_RTE_PROPERTY_EDITOR_SCHEMA_ALIAS } from '@umbraco-cms/backoffice/rte';
|
|
3
|
+
export class UmbTinyMceBlockRteToBlockClipboardCopyPropertyValueTranslator extends UmbControllerBase {
|
|
4
|
+
async translate(propertyValue) {
|
|
5
|
+
if (!propertyValue) {
|
|
6
|
+
throw new Error('Property value is missing.');
|
|
7
|
+
}
|
|
8
|
+
const valueClone = structuredClone(propertyValue);
|
|
9
|
+
const contentData = valueClone.contentData;
|
|
10
|
+
const layout = valueClone.layout?.[UMB_BLOCK_RTE_PROPERTY_EDITOR_SCHEMA_ALIAS] ?? undefined;
|
|
11
|
+
const settingsData = valueClone.settingsData;
|
|
12
|
+
layout?.forEach((layoutItem) => {
|
|
13
|
+
// @ts-expect-error removing $type from layout item
|
|
14
|
+
delete layoutItem.$type;
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
contentData: contentData ?? [],
|
|
18
|
+
layout: layout,
|
|
19
|
+
settingsData: settingsData ?? [],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export { UmbTinyMceBlockRteToBlockClipboardCopyPropertyValueTranslator as api };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
|
2
|
+
import type { UmbBlockClipboardEntryValueModel } from '@umbraco-cms/backoffice/block';
|
|
3
|
+
import type { UmbPropertyEditorRteValueType } from '@umbraco-cms/backoffice/rte';
|
|
4
|
+
import type { UmbClipboardPastePropertyValueTranslator } from '@umbraco-cms/backoffice/clipboard';
|
|
5
|
+
export declare class UmbTinyMceBlockToBlockRteClipboardPastePropertyValueTranslator extends UmbControllerBase implements UmbClipboardPastePropertyValueTranslator<UmbBlockClipboardEntryValueModel, UmbPropertyEditorRteValueType> {
|
|
6
|
+
translate(value: UmbBlockClipboardEntryValueModel): Promise<UmbPropertyEditorRteValueType>;
|
|
7
|
+
isCompatibleValue(propertyValue: UmbPropertyEditorRteValueType, config: Array<{
|
|
8
|
+
alias: string;
|
|
9
|
+
value: [{
|
|
10
|
+
contentElementTypeKey: string;
|
|
11
|
+
}];
|
|
12
|
+
}>): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
export { UmbTinyMceBlockToBlockRteClipboardPastePropertyValueTranslator as api };
|
|
15
|
+
//# sourceMappingURL=block-to-block-rte-paste-translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-to-block-rte-paste-translator.d.ts","sourceRoot":"","sources":["../../../../src/clipboard/block/paste/block-to-block-rte-paste-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,mCAAmC,CAAC;AAElG,qBAAa,8DACZ,SAAQ,iBACR,YAAW,wCAAwC,CAAC,gCAAgC,EAAE,6BAA6B,CAAC;IAE9G,SAAS,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAkB1F,iBAAiB,CACtB,aAAa,EAAE,6BAA6B,EAC5C,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC;YAAE,qBAAqB,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,GAC1E,OAAO,CAAC,OAAO,CAAC;CAMnB;AAED,OAAO,EAAE,8DAA8D,IAAI,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
|
2
|
+
import { UMB_BLOCK_RTE_PROPERTY_EDITOR_SCHEMA_ALIAS } from '@umbraco-cms/backoffice/rte';
|
|
3
|
+
export class UmbTinyMceBlockToBlockRteClipboardPastePropertyValueTranslator extends UmbControllerBase {
|
|
4
|
+
async translate(value) {
|
|
5
|
+
if (!value) {
|
|
6
|
+
throw new Error('Value is missing.');
|
|
7
|
+
}
|
|
8
|
+
const valueClone = structuredClone(value);
|
|
9
|
+
return {
|
|
10
|
+
markup: '',
|
|
11
|
+
blocks: {
|
|
12
|
+
contentData: valueClone.contentData,
|
|
13
|
+
settingsData: valueClone.settingsData,
|
|
14
|
+
expose: [],
|
|
15
|
+
layout: {
|
|
16
|
+
[UMB_BLOCK_RTE_PROPERTY_EDITOR_SCHEMA_ALIAS]: valueClone.layout ?? undefined,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async isCompatibleValue(propertyValue, config) {
|
|
22
|
+
const allowedBlockContentTypes = config.find((c) => c.alias === 'blocks')?.value.map((b) => b.contentElementTypeKey) ?? [];
|
|
23
|
+
const blockContentTypes = propertyValue.blocks?.contentData.map((c) => c.contentTypeKey) ?? [];
|
|
24
|
+
return blockContentTypes.every((b) => allowedBlockContentTypes.includes(b));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export { UmbTinyMceBlockToBlockRteClipboardPastePropertyValueTranslator as api };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifests.d.ts","sourceRoot":"","sources":["../../src/clipboard/manifests.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,oBAAoB,CAiBjD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { UMB_BLOCK_RTE_PROPERTY_EDITOR_UI_ALIAS } from '@tiny-mce-umbraco/backoffice/core';
|
|
2
|
+
import { UMB_BLOCK_CLIPBOARD_ENTRY_VALUE_TYPE } from '@umbraco-cms/backoffice/block';
|
|
3
|
+
export const manifests = [
|
|
4
|
+
{
|
|
5
|
+
type: 'clipboardCopyPropertyValueTranslator',
|
|
6
|
+
alias: 'TinyMCE.ClipboardCopyPropertyValueTranslator.BlockRteToBlock',
|
|
7
|
+
name: 'TinyMCE Block RTE To Block Clipboard Copy Property Value Translator',
|
|
8
|
+
api: () => import('./block/copy/block-rte-to-block-copy-translator.js'),
|
|
9
|
+
fromPropertyEditorUi: UMB_BLOCK_RTE_PROPERTY_EDITOR_UI_ALIAS,
|
|
10
|
+
toClipboardEntryValueType: UMB_BLOCK_CLIPBOARD_ENTRY_VALUE_TYPE,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
type: 'clipboardPastePropertyValueTranslator',
|
|
14
|
+
alias: 'TinyMCE.ClipboardPastePropertyValueTranslator.BlockToBlockRte',
|
|
15
|
+
name: 'TinyMCE Block To Block RTE Clipboard Paste Property Value Translator',
|
|
16
|
+
api: () => import('./block/paste/block-to-block-rte-paste-translator.js'),
|
|
17
|
+
fromClipboardEntryValueType: UMB_BLOCK_CLIPBOARD_ENTRY_VALUE_TYPE,
|
|
18
|
+
toPropertyEditorUi: UMB_BLOCK_RTE_PROPERTY_EDITOR_UI_ALIAS,
|
|
19
|
+
},
|
|
20
|
+
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-tiny-mce.defaults.d.ts","sourceRoot":"","sources":["../../../src/components/input-tiny-mce/input-tiny-mce.defaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"input-tiny-mce.defaults.d.ts","sourceRoot":"","sources":["../../../src/components/input-tiny-mce/input-tiny-mce.defaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAKjF,eAAO,MAAM,4CAA4C,sCAAsC,CAAC;AAEhG,eAAO,MAAM,yBAAyB,uQAmB5B,CAAC;AAMX,eAAO,MAAM,qBAAqB,EAAE,gBAmOnC,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { UMB_CONTEXT_REQUEST_EVENT_TYPE } from '@umbraco-cms/backoffice/context-api';
|
|
2
|
+
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
|
|
2
3
|
import { UUIIconRequestEvent } from '@umbraco-cms/backoffice/external/uui';
|
|
4
|
+
import { umbLocalizationManager } from '@umbraco-cms/backoffice/localization-api';
|
|
3
5
|
export const UMB_BLOCK_ENTRY_WEB_COMPONENTS_ABSOLUTE_PATH = '@umbraco-cms/backoffice/block-rte';
|
|
4
6
|
export const defaultPremiumPluginsList = [
|
|
5
7
|
'a11ychecker',
|
|
@@ -21,13 +23,15 @@ export const defaultPremiumPluginsList = [
|
|
|
21
23
|
'tinymcespellchecker',
|
|
22
24
|
'tableofcontents',
|
|
23
25
|
];
|
|
24
|
-
//we
|
|
25
|
-
//
|
|
26
|
+
//we use extended_valid_elements only for Umbraco custom elements and non-standard HTML elements
|
|
27
|
+
//that must be added on top of valid_elements. Standard HTML elements (h1-h6, div, ul, li, span)
|
|
28
|
+
//must NOT appear here because extended_valid_elements overrides valid_elements exclusions —
|
|
29
|
+
//if a user removes an element from ValidElements config it would still be allowed via this list.
|
|
26
30
|
export const defaultFallbackConfig = {
|
|
27
31
|
plugins: ['anchor', 'charmap', 'table', 'lists', 'advlist', 'autolink', 'directionality', 'searchreplace'],
|
|
28
|
-
valid_elements: '+a[id|style|rel|data-id|data-udi|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-s[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[class|align|style],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],small[class|style],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],figure,figcaption,cite,video[*],audio[*],picture[*],source[*],canvas[*],details[*],summary[*],-code',
|
|
32
|
+
valid_elements: '+a[id|style|rel|data-id|data-udi|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/-b[class|style],-em/-i[class|style],-strike[class|style],-s[class|style],-u[class|style],#p[id|style|dir|class|align],-ol[class|reversed|start|style|type],-ul[class|style],-li[class|style],br[class],img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border|alt=|title|hspace|vspace|width|height|align|umbracoorgwidth|umbracoorgheight|onresize|onresizestart|onresizeend|rel|data-id],-sub[style|class],-sup[style|class],-blockquote[dir|style|class],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],#td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor|scope],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|scope],caption[id|lang|dir|class|style],-div[id|dir|class|align|style|contenteditable|data-embed-url|data-embed-height|data-embed-width|data-embed-constrain],-span[class|align|style|lang],-pre[class|align|style],address[class|align|style],-h1[id|dir|class|align|style],-h2[id|dir|class|align|style],-h3[id|dir|class|align|style],-h4[id|dir|class|align|style],-h5[id|dir|class|align|style],-h6[id|style|dir|class|align|style],hr[class|style],small[class|style],dd[id|class|title|style|dir|lang],dl[id|class|title|style|dir|lang],dt[id|class|title|style|dir|lang],object[class|id|width|height|codebase|*],param[name|value|_value|class],embed[type|width|height|src|class|*],map[name|class],area[shape|coords|href|alt|target|class],bdo[class],button[class],iframe[*],figure,figcaption,cite,video[*],audio[*],picture[*],source[*],canvas[*],details[*],summary[*],-code',
|
|
29
33
|
invalid_elements: 'font',
|
|
30
|
-
extended_valid_elements: '@[id|class|style],+umb-rte-block[!data-content-key],+umb-rte-block-inline[!data-content-key]
|
|
34
|
+
extended_valid_elements: '@[id|class|style],+umb-rte-block[!data-content-key],+umb-rte-block-inline[!data-content-key],ins[datetime|cite],figure,figcaption,iframe[*]',
|
|
31
35
|
custom_elements: 'umb-rte-block,~umb-rte-block-inline',
|
|
32
36
|
toolbar: [
|
|
33
37
|
'styles',
|
|
@@ -122,12 +126,77 @@ export const defaultFallbackConfig = {
|
|
|
122
126
|
// Change the history!
|
|
123
127
|
window.history.pushState(null, '', path);
|
|
124
128
|
});
|
|
125
|
-
//
|
|
129
|
+
// Sync block editor localization keys into the iframe's module-scope umbLocalizationManager.
|
|
130
|
+
// The iframe has a completely separate module scope (and thus a separate umbLocalizationManager
|
|
131
|
+
// instance) from the outer document. Without this, requestDelete() in UmbBlockEntryContext
|
|
132
|
+
// falls back to returning raw keys because the iframe's manager has no registered translations.
|
|
133
|
+
const locSetsToSync = [];
|
|
134
|
+
const BLOCK_LOC_KEYS = ['blockEditor_confirmDeleteBlockTitle', 'blockEditor_confirmDeleteBlockMessage'];
|
|
135
|
+
umbLocalizationManager.localizations.forEach((locSet, code) => {
|
|
136
|
+
const locSetAny = locSet;
|
|
137
|
+
const entry = {
|
|
138
|
+
$code: code,
|
|
139
|
+
$dir: locSetAny['$dir'] ?? 'ltr',
|
|
140
|
+
};
|
|
141
|
+
let hasKey = false;
|
|
142
|
+
for (const key of BLOCK_LOC_KEYS) {
|
|
143
|
+
const val = locSetAny[key];
|
|
144
|
+
if (typeof val === 'string') {
|
|
145
|
+
entry[key] = val;
|
|
146
|
+
hasKey = true;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (hasKey)
|
|
150
|
+
locSetsToSync.push(entry);
|
|
151
|
+
});
|
|
152
|
+
if (locSetsToSync.length > 0) {
|
|
153
|
+
const locScript = document.createElement('script');
|
|
154
|
+
locScript.setAttribute('type', 'module');
|
|
155
|
+
locScript.text = `
|
|
156
|
+
import { umbLocalizationManager } from "@umbraco-cms/backoffice/localization-api";
|
|
157
|
+
${JSON.stringify(locSetsToSync)}.forEach(s => umbLocalizationManager.registerLocalization(s));
|
|
158
|
+
`;
|
|
159
|
+
editor.dom.doc.head.appendChild(locScript);
|
|
160
|
+
}
|
|
161
|
+
// Expose the outer extension registry on the outer window so the injected module
|
|
162
|
+
// script below can sync blockAction manifests into the iframe's per-realm instance.
|
|
163
|
+
// umb-block-action-list reads umbExtensionsRegistry as a module-level singleton
|
|
164
|
+
// (not via context), so the context proxy alone cannot bridge it across realms.
|
|
165
|
+
window._umbOuterExtReg = umbExtensionsRegistry;
|
|
166
|
+
// Load backoffice JS so we can get the umb-rte-block component registered inside the iframe.
|
|
167
|
+
// Also:
|
|
168
|
+
// 1. Import @umbraco-cms/backoffice/block to register the blockAction kind definition
|
|
169
|
+
// and the <umb-block-action> custom element in the iframe's realm. These are NOT
|
|
170
|
+
// transitively imported by block-rte, but umb-block-action-list needs them to
|
|
171
|
+
// instantiate block action extensions (kind: 'default').
|
|
172
|
+
// 2. Sync blockAction manifests from the outer registry into the iframe's registry.
|
|
173
|
+
// Umbraco registers manifests via umbraco-package.json (not module imports), so they
|
|
174
|
+
// only exist in the outer registry — we must copy them into the iframe's per-realm
|
|
175
|
+
// umbExtensionsRegistry so umb-block-action-list can discover them.
|
|
126
176
|
const script = document.createElement('script');
|
|
127
|
-
script.type = 'text/javascript';
|
|
128
177
|
script.setAttribute('type', 'module');
|
|
129
|
-
script.text = `
|
|
130
|
-
|
|
178
|
+
script.text = `
|
|
179
|
+
import { umbExtensionsRegistry } from "@umbraco-cms/backoffice/extension-registry";
|
|
180
|
+
import { UMB_BLOCK_ACTION_DEFAULT_KIND_MANIFEST } from "@umbraco-cms/backoffice/block";
|
|
181
|
+
import "${UMB_BLOCK_ENTRY_WEB_COMPONENTS_ABSOLUTE_PATH}";
|
|
182
|
+
|
|
183
|
+
// Register the blockAction default kind definition in the inner realm's registry.
|
|
184
|
+
// UMB_BLOCK_ACTION_DEFAULT_KIND_MANIFEST is imported here (inner realm), so its
|
|
185
|
+
// element factory — element: () => import('./block-action.element.js') — captures
|
|
186
|
+
// the inner realm's module URL. When the extension system later calls that factory,
|
|
187
|
+
// block-action.element.js is loaded in the inner realm, registering <umb-block-action>
|
|
188
|
+
// in the inner customElements registry.
|
|
189
|
+
umbExtensionsRegistry.registerMany([UMB_BLOCK_ACTION_DEFAULT_KIND_MANIFEST]);
|
|
190
|
+
|
|
191
|
+
// Sync blockAction manifests from the outer registry into the inner realm's registry.
|
|
192
|
+
// Umbraco registers these via umbraco-package.json at backoffice startup; they only
|
|
193
|
+
// exist in the outer registry and must be copied so umb-block-action-list can discover them.
|
|
194
|
+
const outerReg = window.parent?._umbOuterExtReg;
|
|
195
|
+
if (outerReg) {
|
|
196
|
+
const blockActions = outerReg.getByType('blockAction') ?? [];
|
|
197
|
+
if (blockActions.length) umbExtensionsRegistry.registerMany(blockActions);
|
|
198
|
+
}
|
|
199
|
+
`;
|
|
131
200
|
editor.dom.doc.head.appendChild(script);
|
|
132
201
|
},
|
|
133
202
|
style_formats: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-tiny-mce.element.d.ts","sourceRoot":"","sources":["../../../src/components/input-tiny-mce/input-tiny-mce.element.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIpE,OAAO,KAAK,EAAe,MAAM,EAAoB,MAAM,+CAA+C,CAAC;AAE3G,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;;
|
|
1
|
+
{"version":3,"file":"input-tiny-mce.element.d.ts","sourceRoot":"","sources":["../../../src/components/input-tiny-mce/input-tiny-mce.element.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIpE,OAAO,KAAK,EAAe,MAAM,EAAoB,MAAM,+CAA+C,CAAC;AAE3G,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;;AA8DjG,qBACa,sBAAuB,SAAQ,2BAAsC;;IAEjF,aAAa,CAAC,EAAE,iCAAiC,CAAC;cAS/B,cAAc;IAIjC,IAAa,KAAK,CAAC,QAAQ,EAAE,kBAAkB,GAAG,QAAQ,EAOzD;IAED,IAAa,KAAK,IAAI,kBAAkB,GAAG,QAAQ,CAElD;IAED;;;;;OAKG;IACH,IACW,QAAQ,YAElB;IACD,IAAW,QAAQ,CAAC,KAAK,SAAA,EAOxB;IAID,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAc;IAE9C,SAAS;IAIA,YAAY;IAsBZ,oBAAoB;IA0BvB,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC;IA+UpD;;;OAGG;IACM,MAAM;IAIf,gBAAyB,MAAM,4BAkB7B;CACF;AAED,eAAe,sBAAsB,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,sBAAsB,CAAC;KAC7C;CACD"}
|
|
@@ -15,7 +15,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
15
15
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
16
16
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
17
17
|
};
|
|
18
|
-
var _UmbInputTinyMceElement_instances, _UmbInputTinyMceElement_plugins, _UmbInputTinyMceElement_editorRef, _UmbInputTinyMceElement_stylesheetRepository, _UmbInputTinyMceElement_umbStylesheetRuleManager, _UmbInputTinyMceElement_readonly, _UmbInputTinyMceElement_loadEditor, _UmbInputTinyMceElement_loadPlugins, _UmbInputTinyMceElement_getTinyMceConfig, _UmbInputTinyMceElement_setTinyConfig, _UmbInputTinyMceElement_getLanguage, _UmbInputTinyMceElement_editorSetup, _UmbInputTinyMceElement_onInit, _UmbInputTinyMceElement_onChange;
|
|
18
|
+
var _UmbInputTinyMceElement_instances, _UmbInputTinyMceElement_plugins, _UmbInputTinyMceElement_editorRef, _UmbInputTinyMceElement_sanitizeTinyMce, _UmbInputTinyMceElement_stylesheetRepository, _UmbInputTinyMceElement_umbStylesheetRuleManager, _UmbInputTinyMceElement_readonly, _UmbInputTinyMceElement_loadEditor, _UmbInputTinyMceElement_loadPlugins, _UmbInputTinyMceElement_getTinyMceConfig, _UmbInputTinyMceElement_setTinyConfig, _UmbInputTinyMceElement_getLanguage, _UmbInputTinyMceElement_editorSetup, _UmbInputTinyMceElement_onInit, _UmbInputTinyMceElement_onChange;
|
|
19
19
|
import { availableLanguages } from '@tiny-mce-umbraco/backoffice/core';
|
|
20
20
|
import { defaultFallbackConfig, defaultPremiumPluginsList } from '@tiny-mce-umbraco/backoffice/core';
|
|
21
21
|
import { pastePreProcessHandler } from '@tiny-mce-umbraco/backoffice/core';
|
|
@@ -57,6 +57,27 @@ function mergeArrays(arr1, arr2) {
|
|
|
57
57
|
const a2 = Array.isArray(arr2) ? arr2 : arr2 ? [arr2] : [];
|
|
58
58
|
return Array.from(new Set([...a1, ...a2]));
|
|
59
59
|
}
|
|
60
|
+
// Some config paths (e.g. Umbraco:CMS:RichTextEditor:CustomConfig) can only store scalar string
|
|
61
|
+
// values via the .NET config binder. Complex TinyMCE options like style_formats were historically
|
|
62
|
+
// stored as JSON strings in Umbraco v13. This function parses those JSON strings back into real
|
|
63
|
+
// objects/arrays so TinyMCE receives the correct types.
|
|
64
|
+
function parseJsonStringValues(config) {
|
|
65
|
+
const result = {};
|
|
66
|
+
for (const [key, value] of Object.entries(config)) {
|
|
67
|
+
if (typeof value === 'string' && (value.startsWith('[') || value.startsWith('{'))) {
|
|
68
|
+
try {
|
|
69
|
+
result[key] = JSON.parse(value);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
result[key] = value;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
result[key] = value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
60
81
|
let UmbInputTinyMceElement = class UmbInputTinyMceElement extends UUIFormControlMixin(UmbLitElement, '') {
|
|
61
82
|
constructor() {
|
|
62
83
|
super(...arguments);
|
|
@@ -64,6 +85,7 @@ let UmbInputTinyMceElement = class UmbInputTinyMceElement extends UUIFormControl
|
|
|
64
85
|
//#plugins: Array<ClassConstructor<UmbTinyMcePluginBase> | undefined> = [];
|
|
65
86
|
_UmbInputTinyMceElement_plugins.set(this, []);
|
|
66
87
|
_UmbInputTinyMceElement_editorRef.set(this, null);
|
|
88
|
+
_UmbInputTinyMceElement_sanitizeTinyMce.set(this, true);
|
|
67
89
|
_UmbInputTinyMceElement_stylesheetRepository.set(this, new UmbStylesheetDetailRepository(this));
|
|
68
90
|
_UmbInputTinyMceElement_umbStylesheetRuleManager.set(this, new UmbStylesheetRuleManager());
|
|
69
91
|
_UmbInputTinyMceElement_readonly.set(this, false);
|
|
@@ -93,8 +115,10 @@ let UmbInputTinyMceElement = class UmbInputTinyMceElement extends UUIFormControl
|
|
|
93
115
|
set readonly(value) {
|
|
94
116
|
__classPrivateFieldSet(this, _UmbInputTinyMceElement_readonly, value, "f");
|
|
95
117
|
const editor = this.getEditor();
|
|
96
|
-
|
|
97
|
-
editor
|
|
118
|
+
// editor.removed is true when TinyMCE has been destroyed; mode.set() throws on a destroyed editor
|
|
119
|
+
if (editor && !editor.removed) {
|
|
120
|
+
editor.mode.set(value ? 'readonly' : 'design');
|
|
121
|
+
}
|
|
98
122
|
}
|
|
99
123
|
getEditor() {
|
|
100
124
|
return __classPrivateFieldGet(this, _UmbInputTinyMceElement_editorRef, "f");
|
|
@@ -158,6 +182,7 @@ let UmbInputTinyMceElement = class UmbInputTinyMceElement extends UUIFormControl
|
|
|
158
182
|
};
|
|
159
183
|
_UmbInputTinyMceElement_plugins = new WeakMap();
|
|
160
184
|
_UmbInputTinyMceElement_editorRef = new WeakMap();
|
|
185
|
+
_UmbInputTinyMceElement_sanitizeTinyMce = new WeakMap();
|
|
161
186
|
_UmbInputTinyMceElement_stylesheetRepository = new WeakMap();
|
|
162
187
|
_UmbInputTinyMceElement_umbStylesheetRuleManager = new WeakMap();
|
|
163
188
|
_UmbInputTinyMceElement_readonly = new WeakMap();
|
|
@@ -218,6 +243,7 @@ _UmbInputTinyMceElement_setTinyConfig = async function _UmbInputTinyMceElement_s
|
|
|
218
243
|
let url = '';
|
|
219
244
|
let excludeList = [];
|
|
220
245
|
if (appSettingsConfig) {
|
|
246
|
+
__classPrivateFieldSet(this, _UmbInputTinyMceElement_sanitizeTinyMce, appSettingsConfig.config?.sanitizeTinyMce ?? true, "f");
|
|
221
247
|
// @ts-ignore
|
|
222
248
|
apiKey = appSettingsConfig.richTextEditor?.cloudApiKey || 'no-origin';
|
|
223
249
|
if (appSettingsConfig.config?.apikey) {
|
|
@@ -318,7 +344,7 @@ _UmbInputTinyMceElement_setTinyConfig = async function _UmbInputTinyMceElement_s
|
|
|
318
344
|
if (appSettingsConfig) {
|
|
319
345
|
if (appSettingsConfig.richTextEditor) {
|
|
320
346
|
const mergedPlugins = mergeArrays(appSettingsConfig.richTextEditor.plugins, config.plugins);
|
|
321
|
-
config = umbDeepMerge(appSettingsConfig.richTextEditor.customConfig, config);
|
|
347
|
+
config = umbDeepMerge(parseJsonStringValues(appSettingsConfig.richTextEditor.customConfig), config);
|
|
322
348
|
config.plugins = mergedPlugins;
|
|
323
349
|
if (appSettingsConfig.richTextEditor.validElements.length > 0) {
|
|
324
350
|
config.valid_elements = appSettingsConfig.richTextEditor.validElements;
|
|
@@ -388,6 +414,8 @@ _UmbInputTinyMceElement_editorSetup = async function _UmbInputTinyMceElement_edi
|
|
|
388
414
|
__classPrivateFieldGet(this, _UmbInputTinyMceElement_instances, "m", _UmbInputTinyMceElement_onChange).call(this, editor.getContent());
|
|
389
415
|
});
|
|
390
416
|
editor.on('SetContent', () => {
|
|
417
|
+
if (!__classPrivateFieldGet(this, _UmbInputTinyMceElement_sanitizeTinyMce, "f"))
|
|
418
|
+
return;
|
|
391
419
|
/**
|
|
392
420
|
* Prevent injecting arbitrary JavaScript execution in on-attributes.
|
|
393
421
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../src/localizations/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../src/localizations/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBASrF,yBAAyB;AAP9B,wBAO+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bs.d.ts","sourceRoot":"","sources":["../../src/localizations/bs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"bs.d.ts","sourceRoot":"","sources":["../../src/localizations/bs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBASrF,yBAAyB;AAP9B,wBAO+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cy.d.ts","sourceRoot":"","sources":["../../src/localizations/cy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"cy.d.ts","sourceRoot":"","sources":["../../src/localizations/cy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBASrF,yBAAyB;AAP9B,wBAO+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"da.d.ts","sourceRoot":"","sources":["../../src/localizations/da.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"da.d.ts","sourceRoot":"","sources":["../../src/localizations/da.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBAUrF,yBAAyB;AAR9B,wBAQ+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/localizations/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/localizations/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBAUrF,yBAAyB;AAR9B,wBAQ+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hr.d.ts","sourceRoot":"","sources":["../../src/localizations/hr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"hr.d.ts","sourceRoot":"","sources":["../../src/localizations/hr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBASrF,yBAAyB;AAP9B,wBAO+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"it.d.ts","sourceRoot":"","sources":["../../src/localizations/it.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"it.d.ts","sourceRoot":"","sources":["../../src/localizations/it.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBASrF,yBAAyB;AAP9B,wBAO+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifests.d.ts","sourceRoot":"","sources":["../../src/localizations/manifests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifests.d.ts","sourceRoot":"","sources":["../../src/localizations/manifests.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,oBAAoB,CAoFjD,CAAC"}
|
|
@@ -1,97 +1,97 @@
|
|
|
1
|
+
import arLocalization from './ar.js';
|
|
2
|
+
import bsLocalization from './bs.js';
|
|
3
|
+
import csLocalization from './cs.js';
|
|
4
|
+
import cyLocalization from './cy.js';
|
|
5
|
+
import daLocalization from './da.js';
|
|
6
|
+
import deLocalization from './de.js';
|
|
7
|
+
import enLocalization from './en.js';
|
|
8
|
+
import frLocalization from './fr.js';
|
|
9
|
+
import hrLocalization from './hr.js';
|
|
10
|
+
import itLocalization from './it.js';
|
|
11
|
+
import nlLocalization from './nl.js';
|
|
12
|
+
import trLocalization from './tr.js';
|
|
1
13
|
export const manifests = [
|
|
2
14
|
{
|
|
3
15
|
type: 'localization',
|
|
4
16
|
name: 'TinyMCE Umbraco English Localization',
|
|
5
17
|
alias: 'Umb.TinyMCE.Localization.English',
|
|
6
|
-
|
|
7
|
-
meta: { culture: 'en' },
|
|
18
|
+
meta: { culture: 'en', localizations: enLocalization },
|
|
8
19
|
},
|
|
9
20
|
{
|
|
10
21
|
type: 'localization',
|
|
11
22
|
name: 'TinyMCE Umbraco Arabic Localization',
|
|
12
23
|
alias: 'Umb.TinyMCE.Localization.Arabic',
|
|
13
24
|
weight: -100,
|
|
14
|
-
meta: { culture: 'ar' },
|
|
15
|
-
js: () => import('./ar.js'),
|
|
25
|
+
meta: { culture: 'ar', localizations: arLocalization },
|
|
16
26
|
},
|
|
17
27
|
{
|
|
18
28
|
type: 'localization',
|
|
19
29
|
name: 'TinyMCE Umbraco Bosnian Localization',
|
|
20
30
|
alias: 'Umb.TinyMCE.Localization.Bosnian',
|
|
21
31
|
weight: -100,
|
|
22
|
-
meta: { culture: 'bs' },
|
|
23
|
-
js: () => import('./bs.js'),
|
|
32
|
+
meta: { culture: 'bs', localizations: bsLocalization },
|
|
24
33
|
},
|
|
25
34
|
{
|
|
26
35
|
type: 'localization',
|
|
27
36
|
name: 'TinyMCE Umbraco Czech Localization',
|
|
28
37
|
alias: 'Umb.TinyMCE.Localization.Czech',
|
|
29
38
|
weight: -100,
|
|
30
|
-
meta: { culture: 'cs-cz' },
|
|
31
|
-
js: () => import('./cs.js'),
|
|
39
|
+
meta: { culture: 'cs-cz', localizations: csLocalization },
|
|
32
40
|
},
|
|
33
41
|
{
|
|
34
42
|
type: 'localization',
|
|
35
43
|
name: 'TinyMCE Umbraco Welsh Localization',
|
|
36
44
|
alias: 'Umb.TinyMCE.Localization.Cy-GB',
|
|
37
45
|
weight: -100,
|
|
38
|
-
meta: { culture: 'cy' },
|
|
39
|
-
js: () => import('./cy.js'),
|
|
46
|
+
meta: { culture: 'cy', localizations: cyLocalization },
|
|
40
47
|
},
|
|
41
48
|
{
|
|
42
49
|
type: 'localization',
|
|
43
50
|
name: 'TinyMCE Umbraco Danish Localization',
|
|
44
51
|
alias: 'Umb.TinyMCE.Localization.Da_DK',
|
|
45
52
|
weight: -100,
|
|
46
|
-
meta: { culture: 'da' },
|
|
47
|
-
js: () => import('./da.js'),
|
|
53
|
+
meta: { culture: 'da', localizations: daLocalization },
|
|
48
54
|
},
|
|
49
55
|
{
|
|
50
56
|
type: 'localization',
|
|
51
57
|
name: 'TinyMCE Umbraco German Localization',
|
|
52
58
|
alias: 'Umb.TinyMCE.Localization.German',
|
|
53
59
|
weight: -100,
|
|
54
|
-
meta: { culture: 'de' },
|
|
55
|
-
js: () => import('./de.js'),
|
|
60
|
+
meta: { culture: 'de', localizations: deLocalization },
|
|
56
61
|
},
|
|
57
62
|
{
|
|
58
63
|
type: 'localization',
|
|
59
64
|
name: 'TinyMCE Umbraco French Localization',
|
|
60
65
|
alias: 'Umb.TinyMCE.Localization.French',
|
|
61
66
|
weight: -100,
|
|
62
|
-
meta: { culture: 'fr' },
|
|
63
|
-
js: () => import('./fr.js'),
|
|
67
|
+
meta: { culture: 'fr', localizations: frLocalization },
|
|
64
68
|
},
|
|
65
69
|
{
|
|
66
70
|
type: 'localization',
|
|
67
71
|
name: 'TinyMCE Umbraco Croatian Localization',
|
|
68
72
|
alias: 'Umb.TinyMCE.Localization.Croatian',
|
|
69
73
|
weight: -100,
|
|
70
|
-
meta: { culture: 'hr' },
|
|
71
|
-
js: () => import('./hr.js'),
|
|
74
|
+
meta: { culture: 'hr', localizations: hrLocalization },
|
|
72
75
|
},
|
|
73
76
|
{
|
|
74
77
|
type: 'localization',
|
|
75
78
|
name: 'TinyMCE Umbraco Italian Localization',
|
|
76
79
|
alias: 'Umb.TinyMCE.Localization.Italian',
|
|
77
80
|
weight: -100,
|
|
78
|
-
meta: { culture: 'it' },
|
|
79
|
-
js: () => import('./it.js'),
|
|
81
|
+
meta: { culture: 'it', localizations: itLocalization },
|
|
80
82
|
},
|
|
81
83
|
{
|
|
82
84
|
type: 'localization',
|
|
83
85
|
name: 'TinyMCE Umbraco Dutch Localization',
|
|
84
86
|
alias: 'Umb.TinyMCE.Localization.Dutch',
|
|
85
87
|
weight: -100,
|
|
86
|
-
meta: { culture: 'nl' },
|
|
87
|
-
js: () => import('./nl.js'),
|
|
88
|
+
meta: { culture: 'nl', localizations: nlLocalization },
|
|
88
89
|
},
|
|
89
90
|
{
|
|
90
91
|
type: 'localization',
|
|
91
92
|
name: 'TinyMCE Umbraco Turkish Localization',
|
|
92
93
|
alias: 'Umb.TinyMCE.Localization.Turkish',
|
|
93
94
|
weight: -100,
|
|
94
|
-
meta: { culture: 'tr' },
|
|
95
|
-
js: () => import('./tr.js'),
|
|
95
|
+
meta: { culture: 'tr', localizations: trLocalization },
|
|
96
96
|
},
|
|
97
97
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nl.d.ts","sourceRoot":"","sources":["../../src/localizations/nl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"nl.d.ts","sourceRoot":"","sources":["../../src/localizations/nl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBASrF,yBAAyB;AAP9B,wBAO+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../src/localizations/tr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"tr.d.ts","sourceRoot":"","sources":["../../src/localizations/tr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;wBASrF,yBAAyB;AAP9B,wBAO+B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifests.d.ts","sourceRoot":"","sources":["../src/manifests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifests.d.ts","sourceRoot":"","sources":["../src/manifests.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,oBAAoB,CASjD,CAAC"}
|
package/dist-cms/manifests.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { manifests as clipboard } from './clipboard/manifests.js';
|
|
1
2
|
import { manifests as components } from './components/manifests.js';
|
|
2
3
|
import { manifests as entryPoints } from './entry-points/manifest.js';
|
|
3
4
|
import { manifests as icons } from './icons/manifests.js';
|
|
@@ -6,6 +7,7 @@ import { manifests as propertyEditors } from './property-editors/manifests.js';
|
|
|
6
7
|
import { manifests as plugins } from './plugins/manifests.js';
|
|
7
8
|
import { manifests as stylesheets } from './stylesheets/manifests.js';
|
|
8
9
|
export const manifests = [
|
|
10
|
+
...clipboard,
|
|
9
11
|
...components,
|
|
10
12
|
...entryPoints,
|
|
11
13
|
...icons,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiny-mce-block-picker.plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/tiny-mce-block-picker.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAKhF,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,oBAAoB;;
|
|
1
|
+
{"version":3,"file":"tiny-mce-block-picker.plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/tiny-mce-block-picker.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAIzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAKhF,MAAM,CAAC,OAAO,OAAO,8BAA+B,SAAQ,oBAAoB;;gBAOnE,IAAI,EAAE,sBAAsB;IAkDlC,UAAU;CAgFhB"}
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _UmbTinyMceMultiUrlPickerPlugin_instances, _UmbTinyMceMultiUrlPickerPlugin_localize, _UmbTinyMceMultiUrlPickerPlugin_editor, _UmbTinyMceMultiUrlPickerPlugin_blocks, _UmbTinyMceMultiUrlPickerPlugin_entriesContext, _UmbTinyMceMultiUrlPickerPlugin_createBlock, _UmbTinyMceMultiUrlPickerPlugin_updateBlocks;
|
|
12
|
+
var _UmbTinyMceMultiUrlPickerPlugin_instances, _UmbTinyMceMultiUrlPickerPlugin_localize, _UmbTinyMceMultiUrlPickerPlugin_editor, _UmbTinyMceMultiUrlPickerPlugin_blocks, _UmbTinyMceMultiUrlPickerPlugin_entriesContext, _UmbTinyMceMultiUrlPickerPlugin_managerContext, _UmbTinyMceMultiUrlPickerPlugin_createBlock, _UmbTinyMceMultiUrlPickerPlugin_processPendingDeletions, _UmbTinyMceMultiUrlPickerPlugin_updateBlocks;
|
|
13
13
|
import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';
|
|
14
14
|
import { UmbTinyMcePluginBase } from '@tiny-mce-umbraco/backoffice/core';
|
|
15
15
|
import { UMB_BLOCK_RTE_DATA_CONTENT_KEY } from '@umbraco-cms/backoffice/rte';
|
|
@@ -22,6 +22,7 @@ class UmbTinyMceMultiUrlPickerPlugin extends UmbTinyMcePluginBase {
|
|
|
22
22
|
_UmbTinyMceMultiUrlPickerPlugin_editor.set(this, void 0);
|
|
23
23
|
_UmbTinyMceMultiUrlPickerPlugin_blocks.set(this, void 0);
|
|
24
24
|
_UmbTinyMceMultiUrlPickerPlugin_entriesContext.set(this, void 0);
|
|
25
|
+
_UmbTinyMceMultiUrlPickerPlugin_managerContext.set(this, void 0);
|
|
25
26
|
__classPrivateFieldSet(this, _UmbTinyMceMultiUrlPickerPlugin_editor, args.editor, "f");
|
|
26
27
|
args.editor.ui.registry.addToggleButton('umbblockpicker', {
|
|
27
28
|
icon: 'visualblocks',
|
|
@@ -33,12 +34,16 @@ class UmbTinyMceMultiUrlPickerPlugin extends UmbTinyMcePluginBase {
|
|
|
33
34
|
},
|
|
34
35
|
});
|
|
35
36
|
this.consumeContext(UMB_BLOCK_RTE_MANAGER_CONTEXT, (context) => {
|
|
37
|
+
__classPrivateFieldSet(this, _UmbTinyMceMultiUrlPickerPlugin_managerContext, context, "f");
|
|
36
38
|
this.observe(context?.blockTypes, (blockTypes) => {
|
|
37
39
|
__classPrivateFieldSet(this, _UmbTinyMceMultiUrlPickerPlugin_blocks, blockTypes, "f");
|
|
38
40
|
}, 'blockType');
|
|
39
41
|
this.observe(context?.contents, (contents) => {
|
|
40
42
|
__classPrivateFieldGet(this, _UmbTinyMceMultiUrlPickerPlugin_instances, "m", _UmbTinyMceMultiUrlPickerPlugin_updateBlocks).call(this, contents, context?.getLayouts());
|
|
41
43
|
}, 'contents');
|
|
44
|
+
this.observe(context?.pendingDeletions, (pendingDeletions) => {
|
|
45
|
+
__classPrivateFieldGet(this, _UmbTinyMceMultiUrlPickerPlugin_instances, "m", _UmbTinyMceMultiUrlPickerPlugin_processPendingDeletions).call(this, pendingDeletions);
|
|
46
|
+
}, 'pendingDeletions');
|
|
42
47
|
});
|
|
43
48
|
this.consumeContext(UMB_BLOCK_RTE_ENTRIES_CONTEXT, (context) => {
|
|
44
49
|
__classPrivateFieldSet(this, _UmbTinyMceMultiUrlPickerPlugin_entriesContext, context, "f");
|
|
@@ -58,7 +63,7 @@ class UmbTinyMceMultiUrlPickerPlugin extends UmbTinyMcePluginBase {
|
|
|
58
63
|
__classPrivateFieldGet(this, _UmbTinyMceMultiUrlPickerPlugin_instances, "m", _UmbTinyMceMultiUrlPickerPlugin_createBlock).call(this);
|
|
59
64
|
}
|
|
60
65
|
}
|
|
61
|
-
_UmbTinyMceMultiUrlPickerPlugin_localize = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_editor = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_blocks = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_entriesContext = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_instances = new WeakSet(), _UmbTinyMceMultiUrlPickerPlugin_createBlock = function _UmbTinyMceMultiUrlPickerPlugin_createBlock() {
|
|
66
|
+
_UmbTinyMceMultiUrlPickerPlugin_localize = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_editor = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_blocks = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_entriesContext = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_managerContext = new WeakMap(), _UmbTinyMceMultiUrlPickerPlugin_instances = new WeakSet(), _UmbTinyMceMultiUrlPickerPlugin_createBlock = function _UmbTinyMceMultiUrlPickerPlugin_createBlock() {
|
|
62
67
|
if (!__classPrivateFieldGet(this, _UmbTinyMceMultiUrlPickerPlugin_entriesContext, "f")) {
|
|
63
68
|
console.error('[Block Picker] No entries context available.');
|
|
64
69
|
return;
|
|
@@ -74,6 +79,19 @@ _UmbTinyMceMultiUrlPickerPlugin_localize = new WeakMap(), _UmbTinyMceMultiUrlPic
|
|
|
74
79
|
if (createPath) {
|
|
75
80
|
window.history.pushState({}, '', createPath);
|
|
76
81
|
}
|
|
82
|
+
}, _UmbTinyMceMultiUrlPickerPlugin_processPendingDeletions = function _UmbTinyMceMultiUrlPickerPlugin_processPendingDeletions(pendingDeletions) {
|
|
83
|
+
if (!pendingDeletions?.length)
|
|
84
|
+
return;
|
|
85
|
+
const editor = __classPrivateFieldGet(this, _UmbTinyMceMultiUrlPickerPlugin_editor, "f");
|
|
86
|
+
if (!editor?.dom)
|
|
87
|
+
return;
|
|
88
|
+
pendingDeletions.forEach((contentKey) => {
|
|
89
|
+
const blockEls = editor.dom.select(`umb-rte-block[${UMB_BLOCK_RTE_DATA_CONTENT_KEY}="${contentKey}"], umb-rte-block-inline[${UMB_BLOCK_RTE_DATA_CONTENT_KEY}="${contentKey}"]`);
|
|
90
|
+
blockEls.forEach((el) => el.remove());
|
|
91
|
+
__classPrivateFieldGet(this, _UmbTinyMceMultiUrlPickerPlugin_managerContext, "f")?.clearPendingDeletion(contentKey);
|
|
92
|
+
});
|
|
93
|
+
editor.setDirty(true);
|
|
94
|
+
editor.dispatch('Change');
|
|
77
95
|
}, _UmbTinyMceMultiUrlPickerPlugin_updateBlocks = function _UmbTinyMceMultiUrlPickerPlugin_updateBlocks(blocks, layouts) {
|
|
78
96
|
const editor = __classPrivateFieldGet(this, _UmbTinyMceMultiUrlPickerPlugin_editor, "f");
|
|
79
97
|
if (!editor?.dom)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiny-mce-embeddedmedia.plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/tiny-mce-embeddedmedia.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAMhF,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,oBAAoB;;gBAClE,IAAI,EAAE,sBAAsB;
|
|
1
|
+
{"version":3,"file":"tiny-mce-embeddedmedia.plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/tiny-mce-embeddedmedia.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAMhF,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,oBAAoB;;gBAClE,IAAI,EAAE,sBAAsB;CAiFxC"}
|
|
@@ -31,6 +31,7 @@ _UmbTinyMceEmbeddedMediaPlugin_instances = new WeakSet(), _UmbTinyMceEmbeddedMed
|
|
|
31
31
|
let modify = {
|
|
32
32
|
width: 360,
|
|
33
33
|
height: 240,
|
|
34
|
+
constrain: true
|
|
34
35
|
};
|
|
35
36
|
if (selectedElm.nodeName.toUpperCase() === 'DIV' && selectedElm.classList.contains('umb-embed-holder')) {
|
|
36
37
|
// See if we can go and get the attributes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiny-mce-mediapicker.plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/tiny-mce-mediapicker.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AA0BhF,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,oBAAoB;;
|
|
1
|
+
{"version":3,"file":"tiny-mce-mediapicker.plugin.d.ts","sourceRoot":"","sources":["../../src/plugins/tiny-mce-mediapicker.plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AA0BhF,MAAM,CAAC,OAAO,OAAO,2BAA4B,SAAQ,oBAAoB;;gBAQhE,IAAI,EAAE,sBAAsB;CAsOxC"}
|
|
@@ -9,10 +9,10 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _UmbTinyMceMediaPickerPlugin_instances, _UmbTinyMceMediaPickerPlugin_modalManager, _UmbTinyMceMediaPickerPlugin_temporaryFileRepository, _UmbTinyMceMediaPickerPlugin_onAction, _UmbTinyMceMediaPickerPlugin_showMediaPicker, _UmbTinyMceMediaPickerPlugin_showMediaCaptionAltText, _UmbTinyMceMediaPickerPlugin_insertInEditor, _UmbTinyMceMediaPickerPlugin_uploadImageHandler;
|
|
12
|
+
var _UmbTinyMceMediaPickerPlugin_instances, _UmbTinyMceMediaPickerPlugin_modalManager, _UmbTinyMceMediaPickerPlugin_temporaryFileRepository, _UmbTinyMceMediaPickerPlugin_allowedMediaTypeIds_get, _UmbTinyMceMediaPickerPlugin_onAction, _UmbTinyMceMediaPickerPlugin_showMediaPicker, _UmbTinyMceMediaPickerPlugin_showMediaCaptionAltText, _UmbTinyMceMediaPickerPlugin_insertInEditor, _UmbTinyMceMediaPickerPlugin_uploadImageHandler;
|
|
13
13
|
import { sizeImageInEditor, uploadBlobImages } from '@tiny-mce-umbraco/backoffice/core';
|
|
14
14
|
import { UmbTinyMcePluginBase } from '@tiny-mce-umbraco/backoffice/core';
|
|
15
|
-
import { getGuidFromUdi } from '@umbraco-cms/backoffice/utils';
|
|
15
|
+
import { getGuidFromUdi, splitStringToArray } from '@umbraco-cms/backoffice/utils';
|
|
16
16
|
import { UmbId } from '@umbraco-cms/backoffice/id';
|
|
17
17
|
import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';
|
|
18
18
|
import { UmbTemporaryFileRepository } from '@umbraco-cms/backoffice/temporary-file';
|
|
@@ -86,7 +86,9 @@ class UmbTinyMceMediaPickerPlugin extends UmbTinyMcePluginBase {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
_UmbTinyMceMediaPickerPlugin_modalManager = new WeakMap(), _UmbTinyMceMediaPickerPlugin_temporaryFileRepository = new WeakMap(), _UmbTinyMceMediaPickerPlugin_uploadImageHandler = new WeakMap(), _UmbTinyMceMediaPickerPlugin_instances = new WeakSet(),
|
|
89
|
+
_UmbTinyMceMediaPickerPlugin_modalManager = new WeakMap(), _UmbTinyMceMediaPickerPlugin_temporaryFileRepository = new WeakMap(), _UmbTinyMceMediaPickerPlugin_uploadImageHandler = new WeakMap(), _UmbTinyMceMediaPickerPlugin_instances = new WeakSet(), _UmbTinyMceMediaPickerPlugin_allowedMediaTypeIds_get = function _UmbTinyMceMediaPickerPlugin_allowedMediaTypeIds_get() {
|
|
90
|
+
return splitStringToArray(this.configuration?.getValueByAlias('allowedMediaTypes'));
|
|
91
|
+
}, _UmbTinyMceMediaPickerPlugin_onAction =
|
|
90
92
|
/*
|
|
91
93
|
async #observeCurrentUser() {
|
|
92
94
|
if (!this.#currentUserContext) return;
|
|
@@ -132,10 +134,12 @@ async function _UmbTinyMceMediaPickerPlugin_onAction() {
|
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
*/
|
|
137
|
+
const allowedIds = __classPrivateFieldGet(this, _UmbTinyMceMediaPickerPlugin_instances, "a", _UmbTinyMceMediaPickerPlugin_allowedMediaTypeIds_get);
|
|
135
138
|
const modalHandler = __classPrivateFieldGet(this, _UmbTinyMceMediaPickerPlugin_modalManager, "f")?.open(this, UMB_MEDIA_PICKER_MODAL, {
|
|
136
139
|
data: {
|
|
137
140
|
multiple: false,
|
|
138
141
|
//startNodeIsVirtual,
|
|
142
|
+
pickableFilter: allowedIds.length ? (item) => allowedIds.includes(item.mediaType.unique) : undefined,
|
|
139
143
|
},
|
|
140
144
|
value: {
|
|
141
145
|
selection: currentTarget.udi ? [getGuidFromUdi(currentTarget.udi)] : [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifests.d.ts","sourceRoot":"","sources":["../../../src/property-editors/tiny-mce/manifests.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"manifests.d.ts","sourceRoot":"","sources":["../../../src/property-editors/tiny-mce/manifests.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,oBAAoB,CA0JjD,CAAC"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { UMB_BLOCK_RTE_PROPERTY_EDITOR_UI_ALIAS } from '@tiny-mce-umbraco/backoffice/core';
|
|
2
2
|
import { UMB_BLOCK_RTE_PROPERTY_EDITOR_SCHEMA_ALIAS } from '@umbraco-cms/backoffice/rte';
|
|
3
3
|
export const manifests = [
|
|
4
|
+
{
|
|
5
|
+
type: 'propertyContext',
|
|
6
|
+
kind: 'clipboard',
|
|
7
|
+
alias: 'TinyMCE.PropertyContext.Clipboard',
|
|
8
|
+
name: 'TinyMCE Clipboard Property Context',
|
|
9
|
+
forPropertyEditorUis: [UMB_BLOCK_RTE_PROPERTY_EDITOR_UI_ALIAS],
|
|
10
|
+
},
|
|
4
11
|
{
|
|
5
12
|
type: 'propertyEditorUi',
|
|
6
13
|
alias: UMB_BLOCK_RTE_PROPERTY_EDITOR_UI_ALIAS,
|
|
@@ -12,6 +19,7 @@ export const manifests = [
|
|
|
12
19
|
icon: 'icon-tinymce',
|
|
13
20
|
group: 'richContent',
|
|
14
21
|
supportsReadOnly: true,
|
|
22
|
+
keywords: ['content', 'article', 'body', 'html', 'wysiwyg', 'richtext', 'rte', 'tinymce', 'editor', 'formatted', 'paragraph'],
|
|
15
23
|
settings: {
|
|
16
24
|
properties: [
|
|
17
25
|
{
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tiny-mce-umbraco/backoffice",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.5.0",
|
|
4
4
|
"description": "This Umbraco CMS package enables access to the TinyMCE-based Rich Text Editor (RTE) in version 16 and above. It also supports the use of TinyMCE Premium plugins with a valid subscription. Additional features include streamlined configuration for RTE Data Types in Umbraco and enhanced settings that support direct JSON-based configuration via .NET (appsettings.config).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Umbraco",
|
|
7
7
|
"TinyMCE",
|
|
8
|
-
"RTE",
|
|
8
|
+
"RTE",
|
|
9
9
|
"Rich Text Editor"
|
|
10
10
|
],
|
|
11
11
|
"author": "ProWorks Corporation",
|
|
@@ -40,22 +40,22 @@
|
|
|
40
40
|
"@rollup/plugin-json": "^6.1.0",
|
|
41
41
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
42
42
|
"@rollup/plugin-replace": "^6.0.2",
|
|
43
|
-
"@umbraco-cms/backoffice": "^17.
|
|
43
|
+
"@umbraco-cms/backoffice": "^17.5.0",
|
|
44
44
|
"chalk": "^5.3.0",
|
|
45
45
|
"cross-env": "^10.1.0",
|
|
46
|
-
"eslint": "^
|
|
46
|
+
"eslint": "^10.2.0",
|
|
47
47
|
"node-fetch": "^3.3.2",
|
|
48
48
|
"rollup": "^4.40.0",
|
|
49
49
|
"rollup-plugin-esbuild": "^6.2.1",
|
|
50
50
|
"rollup-plugin-import-css": "^3.5.8",
|
|
51
51
|
"tiny-glob": "^0.2.9",
|
|
52
52
|
"typescript": "^5.9.3",
|
|
53
|
-
"vite": "^7.
|
|
53
|
+
"vite": "^7.3.2",
|
|
54
54
|
"vite-plugin-static-copy": "^3.1.3",
|
|
55
55
|
"vite-tsconfig-paths": "^5.1.4"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"@umbraco-cms/backoffice": "^17.
|
|
58
|
+
"@umbraco-cms/backoffice": "^17.5.0",
|
|
59
59
|
"tinymce": "^6.8.5",
|
|
60
60
|
"tinymce-i18n": "^24.12.30"
|
|
61
61
|
}
|
package/dist-cms/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
This is an Umbraco CMS package that enables access to the paid features in the TinyMCE-based Rich Text Editor (RTE) in version 12+ with a license. It also adds a new TinyMCE Premium property editor with additional settings, providing a more targeted configuration setup for RTE Data Types in Umbraco. Finally, it allows for additional settings that support JSON directly in the configuration for .NET (appsettings.config).
|