Layout

LayoutItem

Properties allowChildOverride and isParentOverride in LayoutItem are removed from Omnia 7.0. No alternative properties will be provided.

interface LayoutItem {
    allowChildOverride?: boolean; // Removed from 7.0
    isParentOverride?: boolean; // Removed from 7.0
}

Block settings reader

BlockSettingsReaderOptions will no longer have editElement property to identify block setting web components. Instead of relying on element selector, the model will now require editElementManifestId which is block setting manifest id.

interface BlockSettingsReaderOptions<T> {
    editElement?: string; // Removed from 7.0
    editElementManifestId?: GuidValue; // Use this instead
}

For example

import { BlockSettingsReader } from "@omnia/fx/ux";

// this is the old way to identify block setting web component
@BlockSettingsReader<AccordionBlockSettings>({
    defaultValue: AccordionConfigurationFactory.defaultSettings(),
    editElement: "wcm-accordion-settings" // deprecated property
})

// the new way requires manifest id of the web component
@BlockSettingsReader<AccordionBlockSettings>({
    defaultValue: AccordionConfigurationFactory.defaultSettings(),
    editElementManifestId: new Guid("224BC52E-F18F-4CC5-B201-35857D4D8745")
})

The manifest that contains block setting web component does not change anything but you can see the reference. Before you need to provide elementName to BlockSettingsReader but now is manifest id.

import { Composer } from "@omnia/tooling/composers";

Composer
    .registerManifest(
        // same value for editElementManifestId in BlockSettingReader
        new Guid("224BC52E-F18F-4CC5-B201-35857D4D8745"),
        "wcm.accordion.settings")
    .registerWebComponent({
        // same value for editElement property in BlockSettingsReader
        elementName: "wcm-accordion-settings",
        entryPoint: "./AccordionSettingsComponent.tsx",
        typings: ["./IAccordionSettingsComponent.ts"]
    });