@ui5/webcomponents-base 1.20.0-rc.2 → 1.20.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/CHANGELOG.md +28 -0
- package/dist/AssetRegistry.d.ts +2 -2
- package/dist/AssetRegistry.js +2 -2
- package/dist/AssetRegistry.js.map +1 -1
- package/dist/ManagedStyles.d.ts +2 -1
- package/dist/ManagedStyles.js +18 -1
- package/dist/ManagedStyles.js.map +1 -1
- package/dist/UI5Element.js +5 -3
- package/dist/UI5Element.js.map +1 -1
- package/dist/UI5ElementMetadata.d.ts +1 -0
- package/dist/UI5ElementMetadata.js +1 -2
- package/dist/UI5ElementMetadata.js.map +1 -1
- package/dist/asset-registries/Themes.d.ts +4 -3
- package/dist/asset-registries/Themes.js +26 -10
- package/dist/asset-registries/Themes.js.map +1 -1
- package/dist/assets/Boot-45945c31.js +9 -0
- package/dist/assets/bundle.esm-56f2cc97.js +50 -0
- package/dist/assets/test/pages/{Boot.html-7bc3d21a.js → Boot.html-b412e561.js} +1 -1
- package/dist/assets/test/pages/{i18n.html-dfb6b3d5.js → i18n.html-6d41a141.js} +1 -1
- package/dist/assets/test/pages/{i18n_texts.html-a4abee47.js → i18n_texts.html-3fee32b8.js} +1 -1
- package/dist/css/FontFace.css +13 -1
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/generated/VersionInfo.js +3 -3
- package/dist/generated/css/FontFace.css.js +1 -1
- package/dist/generated/css/FontFace.css.js.map +1 -1
- package/dist/test/pages/AllTestElements.html +2 -2
- package/dist/test/pages/Boot.html +2 -2
- package/dist/test/pages/Configuration.html +2 -2
- package/dist/test/pages/ConfigurationScript.html +2 -2
- package/dist/test/pages/WithComplexTemplate.html +2 -2
- package/dist/test/pages/i18n.html +3 -3
- package/dist/test/pages/i18n_texts.html +3 -3
- package/dist/theming/applyTheme.js +3 -3
- package/dist/theming/applyTheme.js.map +1 -1
- package/dist/util/getParentElement.d.ts +2 -0
- package/dist/util/getParentElement.js +5 -0
- package/dist/util/getParentElement.js.map +1 -0
- package/dist/util/isElementContainingBlock.d.ts +2 -0
- package/dist/util/isElementContainingBlock.js +11 -0
- package/dist/util/isElementContainingBlock.js.map +1 -0
- package/package.json +3 -3
- package/src/css/FontFace.css +13 -1
- package/dist/assets/Boot-b8816fd3.js +0 -9
- package/dist/assets/bundle.esm-c76a117d.js +0 -50
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UI5ElementMetadata.js","sourceRoot":"","sources":["../src/UI5ElementMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import DataType from \"./types/DataType.js\";\nimport { camelToKebabCase } from \"./util/StringHelper.js\";\nimport { getSlottedNodes } from \"./util/SlotsHelper.js\";\nimport { getEffectiveScopingSuffixForTag } from \"./CustomElementsScopeUtils.js\";\n\ntype SlotInvalidation = {\n\tproperties: boolean | Array<string>,\n\tslots: boolean | Array<string>,\n}\n\ntype Slot = {\n\ttype: typeof Node | typeof HTMLElement,\n\tdefault?: boolean,\n\tpropertyName?: string,\n\tindividualSlots?: boolean,\n\tinvalidateOnChildChange?: boolean | SlotInvalidation,\n};\n\ntype SlotValue = Node;\n\ntype Property = {\n\ttype?: BooleanConstructor | StringConstructor | ObjectConstructor | DataType\n\tvalidator?: DataType,\n\tdefaultValue?: PropertyValue,\n\tnoAttribute?: boolean,\n\tmultiple?: boolean,\n\tcompareValues?: boolean,\n}\n\ntype PropertyValue = boolean | number | string | object | undefined | null | DataType;\n\ntype EventData = Record<string, object>;\n\ntype Metadata = {\n\ttag?: string,\n\tmanagedSlots?: boolean,\n\tproperties?: Record<string, Property>,\n\tslots?: Record<string, Slot>,\n\tevents?: EventData,\n\tfastNavigation?: boolean,\n\tthemeAware?: boolean,\n\tlanguageAware?: boolean,\n};\n\ntype State = Record<string, PropertyValue | Array<SlotValue>>;\n\n/**\n *\n * @class\n * @public\n */\nclass UI5ElementMetadata {\n\tmetadata: Metadata;\n\t_initialState: State | undefined;\n\n\tconstructor(metadata: Metadata) {\n\t\tthis.metadata = metadata;\n\t}\n\n\tgetInitialState() {\n\t\tif (Object.prototype.hasOwnProperty.call(this, \"_initialState\")) {\n\t\t\treturn this._initialState!;\n\t\t}\n\t\tconst initialState: State = {};\n\t\tconst slotsAreManaged = this.slotsAreManaged();\n\n\t\t// Initialize properties\n\t\tconst props = this.getProperties();\n\t\tfor (const propName in props) { // eslint-disable-line\n\t\t\tconst propType = props[propName].type;\n\t\t\tconst propDefaultValue = props[propName].defaultValue;\n\n\t\t\tif (propType === Boolean) {\n\t\t\t\tinitialState[propName] = false;\n\n\t\t\t\tif (propDefaultValue !== undefined) {\n\t\t\t\t\tconsole.warn(\"The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default\"); // eslint-disable-line\n\t\t\t\t}\n\t\t\t} else if (props[propName].multiple) {\n\t\t\t\tinitialState[propName] = [];\n\t\t\t} else if (propType === Object) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : {};\n\t\t\t} else if (propType === String) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : \"\";\n\t\t\t} else {\n\t\t\t\tinitialState[propName] = propDefaultValue;\n\t\t\t}\n\t\t}\n\n\t\t// Initialize slots\n\t\tif (slotsAreManaged) {\n\t\t\tconst slots = this.getSlots();\n\t\t\tfor (const [slotName, slotData] of Object.entries<Slot>(slots)) { // eslint-disable-line\n\t\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\t\tinitialState[propertyName] = [];\n\t\t\t}\n\t\t}\n\n\t\tthis._initialState = initialState;\n\t\treturn initialState;\n\t}\n\n\t/**\n\t * Validates the property's value and returns it if correct\n\t * or returns the default value if not.\n\t * <b>Note:</b> Only intended for use by UI5Element.js\n\t * @public\n\t */\n\tstatic validatePropertyValue(value: PropertyValue, propData: Property) {\n\t\tconst isMultiple = propData.multiple;\n\t\tif (isMultiple && value) {\n\t\t\treturn (value as Array<PropertyValue>).map((propValue: PropertyValue) => validateSingleProperty(propValue, propData));\n\t\t}\n\t\treturn validateSingleProperty(value, propData);\n\t}\n\n\t/**\n\t * Validates the slot's value and returns it if correct\n\t * or throws an exception if not.\n\t * <b>Note:</b> Only intended for use by UI5Element.js\n\t * @pubic\n\t */\n\tstatic validateSlotValue(value: Node, slotData: Slot) {\n\t\treturn validateSingleSlot(value, slotData);\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element without the scope\n\t * @public\n\t */\n\tgetPureTag() {\n\t\treturn this.metadata.tag || \"\";\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element\n\t * @public\n\t */\n\tgetTag() {\n\t\tconst pureTag = this.metadata.tag;\n\n\t\tif (!pureTag) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureTag);\n\t\tif (!suffix) {\n\t\t\treturn pureTag;\n\t\t}\n\n\t\treturn `${pureTag}-${suffix}`;\n\t}\n\n\t/**\n\t * Determines whether a property should have an attribute counterpart\n\t * @public\n\t * @param propName\n\t * @returns {boolean}\n\t */\n\thasAttribute(propName: string) {\n\t\tconst propData = this.getProperties()[propName];\n\t\treturn propData.type !== Object && !propData.noAttribute && !propData.multiple;\n\t}\n\n\t/**\n\t * Returns an array with the properties of the UI5 Element (in camelCase)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetPropertiesList() {\n\t\treturn Object.keys(this.getProperties());\n\t}\n\n\t/**\n\t * Returns an array with the attributes of the UI5 Element (in kebab-case)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetAttributesList() {\n\t\treturn this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(camelToKebabCase);\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has a default slot of type Node, therefore can slot text\n\t * @returns {boolean}\n\t */\n\tcanSlotText() {\n\t\tconst defaultSlot = this.getSlots().default;\n\t\treturn defaultSlot && defaultSlot.type === Node;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots\n\t * @public\n\t */\n\thasSlots() {\n\t\treturn !!Object.entries(this.getSlots()).length;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots with \"individualSlots: true\"\n\t * @public\n\t */\n\thasIndividualSlots() {\n\t\treturn this.slotsAreManaged() && Object.values(this.getSlots()).some(slotData => slotData.individualSlots);\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element needs to invalidate if children are added/removed/changed\n\t * @public\n\t */\n\tslotsAreManaged() {\n\t\treturn !!this.metadata.managedSlots;\n\t}\n\n\t/**\n\t * Determines whether this control supports F6 fast navigation\n\t * @public\n\t */\n\tsupportsF6FastNavigation() {\n\t\treturn !!this.metadata.fastNavigation;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of properties and their metadata definitions\n\t * @public\n\t */\n\tgetProperties() {\n\t\tif (!this.metadata.properties) {\n\t\t\tthis.metadata.properties = {};\n\t\t}\n\t\treturn this.metadata.properties;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of events and their metadata definitions\n\t * @public\n\t */\n\tgetEvents() {\n\t\tif (!this.metadata.events) {\n\t\t\tthis.metadata.events = {};\n\t\t}\n\t\treturn this.metadata.events;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of slots and their metadata definitions\n\t * @public\n\t */\n\t getSlots() {\n\t\tif (!this.metadata.slots) {\n\t\t\tthis.metadata.slots = {};\n\t\t}\n\t\treturn this.metadata.slots;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any translatable texts (needs to be invalidated upon language change)\n\t * @returns {boolean}\n\t */\n\tisLanguageAware() {\n\t\treturn !!this.metadata.languageAware;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any theme dependant carachteristics.\n\t * @returns {boolean}\n\t */\n\t isThemeAware() {\n\t\treturn !!this.metadata.themeAware;\n\t}\n\n\t/**\n\t * Matches a changed entity (property/slot) with the given name against the \"invalidateOnChildChange\" configuration\n\t * and determines whether this should cause and invalidation\n\t *\n\t * @param slotName the name of the slot in which a child was changed\n\t * @param type the type of change in the child: \"property\" or \"slot\"\n\t * @param name the name of the property/slot that changed\n\t * @returns {boolean}\n\t */\n\tshouldInvalidateOnChildChange(slotName: string, type: \"property\" | \"slot\", name: string) {\n\t\tconst config = this.getSlots()[slotName].invalidateOnChildChange;\n\n\t\t// invalidateOnChildChange was not set in the slot metadata - by default child changes do not affect the component\n\t\tif (config === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// The simple format was used: invalidateOnChildChange: true/false;\n\t\tif (typeof config === \"boolean\") {\n\t\t\treturn config;\n\t\t}\n\n\t\t// The complex format was used: invalidateOnChildChange: { properties, slots }\n\t\tif (typeof config === \"object\") {\n\t\t\t// A property was changed\n\t\t\tif (type === \"property\") {\n\t\t\t\t// The config object does not have a properties field\n\t\t\t\tif (config.properties === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: properties: true/false\n\t\t\t\tif (typeof config.properties === \"boolean\") {\n\t\t\t\t\treturn config.properties;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: properties: [...]\n\t\t\t\tif (Array.isArray(config.properties)) {\n\t\t\t\t\treturn config.properties.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.properties: boolean or array is expected\");\n\t\t\t}\n\n\t\t\t// A slot was changed\n\t\t\tif (type === \"slot\") {\n\t\t\t\t// The config object does not have a slots field\n\t\t\t\tif (config.slots === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: slots: true/false\n\t\t\t\tif (typeof config.slots === \"boolean\") {\n\t\t\t\t\treturn config.slots;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: slots: [...]\n\t\t\t\tif (Array.isArray(config.slots)) {\n\t\t\t\t\treturn config.slots.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.slots: boolean or array is expected\");\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Wrong format for invalidateOnChildChange: boolean or object is expected\");\n\t}\n}\n\nconst validateSingleProperty = (value: PropertyValue, propData: Property) => {\n\tconst propertyType = propData.type;\n\tlet propertyValidator = propData.validator;\n\n\tif (propertyType && (propertyType as typeof DataType).isDataTypeClass) {\n\t\tpropertyValidator = propertyType as typeof DataType;\n\t}\n\n\tif (propertyValidator) {\n\t\treturn (propertyValidator as typeof DataType).isValid(value) ? value : propData.defaultValue;\n\t}\n\n\tif (!propertyType || propertyType === String) {\n\t\treturn (typeof value === \"string\" || typeof value === \"undefined\" || value === null) ? value : value.toString();\n\t}\n\n\tif (propertyType === Boolean) {\n\t\treturn typeof value === \"boolean\" ? value : false;\n\t}\n\n\tif (propertyType === Object) {\n\t\treturn typeof value === \"object\" ? value : propData.defaultValue;\n\t}\n\n\t// Check if \"value\" is part of the enum (propertyType) values and return the defaultValue if not found.\n\treturn value as string in propertyType ? value : propData.defaultValue;\n};\n\nconst validateSingleSlot = (value: Node, slotData: Slot) => {\n\tvalue && getSlottedNodes(value).forEach(el => {\n\t\tif (!(el instanceof slotData.type)) {\n\t\t\tthrow new Error(`The element is not of type ${slotData.type.toString()}`);\n\t\t}\n\t});\n\n\treturn value;\n};\n\nexport default UI5ElementMetadata;\nexport type {\n\tProperty,\n\tPropertyValue,\n\tSlot,\n\tSlotValue,\n\tEventData,\n\tState,\n\tMetadata,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"UI5ElementMetadata.js","sourceRoot":"","sources":["../src/UI5ElementMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import DataType from \"./types/DataType.js\";\nimport { camelToKebabCase } from \"./util/StringHelper.js\";\nimport { getSlottedNodes } from \"./util/SlotsHelper.js\";\nimport { getEffectiveScopingSuffixForTag } from \"./CustomElementsScopeUtils.js\";\n\ntype SlotInvalidation = {\n\tproperties: boolean | Array<string>,\n\tslots: boolean | Array<string>,\n}\n\ntype Slot = {\n\ttype: typeof Node | typeof HTMLElement,\n\tdefault?: boolean,\n\tpropertyName?: string,\n\tindividualSlots?: boolean,\n\tinvalidateOnChildChange?: boolean | SlotInvalidation,\n\tcloned?: boolean,\n};\n\ntype SlotValue = Node;\n\ntype Property = {\n\ttype?: BooleanConstructor | StringConstructor | ObjectConstructor | DataType\n\tvalidator?: DataType,\n\tdefaultValue?: PropertyValue,\n\tnoAttribute?: boolean,\n\tmultiple?: boolean,\n\tcompareValues?: boolean,\n}\n\ntype PropertyValue = boolean | number | string | object | undefined | null | DataType;\n\ntype EventData = Record<string, object>;\n\ntype Metadata = {\n\ttag?: string,\n\tmanagedSlots?: boolean,\n\tproperties?: Record<string, Property>,\n\tslots?: Record<string, Slot>,\n\tevents?: EventData,\n\tfastNavigation?: boolean,\n\tthemeAware?: boolean,\n\tlanguageAware?: boolean,\n};\n\ntype State = Record<string, PropertyValue | Array<SlotValue>>;\n\n/**\n *\n * @class\n * @public\n */\nclass UI5ElementMetadata {\n\tmetadata: Metadata;\n\t_initialState: State | undefined;\n\n\tconstructor(metadata: Metadata) {\n\t\tthis.metadata = metadata;\n\t}\n\n\tgetInitialState() {\n\t\tif (Object.prototype.hasOwnProperty.call(this, \"_initialState\")) {\n\t\t\treturn this._initialState!;\n\t\t}\n\t\tconst initialState: State = {};\n\t\tconst slotsAreManaged = this.slotsAreManaged();\n\n\t\t// Initialize properties\n\t\tconst props = this.getProperties();\n\t\tfor (const propName in props) { // eslint-disable-line\n\t\t\tconst propType = props[propName].type;\n\t\t\tconst propDefaultValue = props[propName].defaultValue;\n\n\t\t\tif (propType === Boolean) {\n\t\t\t\tinitialState[propName] = false;\n\n\t\t\t\tif (propDefaultValue !== undefined) {\n\t\t\t\t\tconsole.warn(\"The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default\"); // eslint-disable-line\n\t\t\t\t}\n\t\t\t} else if (props[propName].multiple) {\n\t\t\t\tinitialState[propName] = [];\n\t\t\t} else if (propType === Object) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : {};\n\t\t\t} else if (propType === String) {\n\t\t\t\tinitialState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : \"\";\n\t\t\t} else {\n\t\t\t\tinitialState[propName] = propDefaultValue;\n\t\t\t}\n\t\t}\n\n\t\t// Initialize slots\n\t\tif (slotsAreManaged) {\n\t\t\tconst slots = this.getSlots();\n\t\t\tfor (const [slotName, slotData] of Object.entries<Slot>(slots)) { // eslint-disable-line\n\t\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\t\tinitialState[propertyName] = [];\n\t\t\t}\n\t\t}\n\n\t\tthis._initialState = initialState;\n\t\treturn initialState;\n\t}\n\n\t/**\n\t * Validates the property's value and returns it if correct\n\t * or returns the default value if not.\n\t * <b>Note:</b> Only intended for use by UI5Element.js\n\t * @public\n\t */\n\tstatic validatePropertyValue(value: PropertyValue, propData: Property) {\n\t\tconst isMultiple = propData.multiple;\n\t\tif (isMultiple && value) {\n\t\t\treturn (value as Array<PropertyValue>).map((propValue: PropertyValue) => validateSingleProperty(propValue, propData));\n\t\t}\n\t\treturn validateSingleProperty(value, propData);\n\t}\n\n\t/**\n\t * Validates the slot's value and returns it if correct\n\t * or throws an exception if not.\n\t * <b>Note:</b> Only intended for use by UI5Element.js\n\t * @pubic\n\t */\n\tstatic validateSlotValue(value: Node, slotData: Slot) {\n\t\treturn validateSingleSlot(value, slotData);\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element without the scope\n\t * @public\n\t */\n\tgetPureTag() {\n\t\treturn this.metadata.tag || \"\";\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element\n\t * @public\n\t */\n\tgetTag() {\n\t\tconst pureTag = this.metadata.tag;\n\n\t\tif (!pureTag) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst suffix = getEffectiveScopingSuffixForTag(pureTag);\n\t\tif (!suffix) {\n\t\t\treturn pureTag;\n\t\t}\n\n\t\treturn `${pureTag}-${suffix}`;\n\t}\n\n\t/**\n\t * Determines whether a property should have an attribute counterpart\n\t * @public\n\t * @param propName\n\t * @returns {boolean}\n\t */\n\thasAttribute(propName: string) {\n\t\tconst propData = this.getProperties()[propName];\n\t\treturn propData.type !== Object && !propData.noAttribute && !propData.multiple;\n\t}\n\n\t/**\n\t * Returns an array with the properties of the UI5 Element (in camelCase)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetPropertiesList() {\n\t\treturn Object.keys(this.getProperties());\n\t}\n\n\t/**\n\t * Returns an array with the attributes of the UI5 Element (in kebab-case)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetAttributesList() {\n\t\treturn this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(camelToKebabCase);\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has a default slot of type Node, therefore can slot text\n\t * @returns {boolean}\n\t */\n\tcanSlotText() {\n\t\treturn (this.getSlots().default)?.type === Node;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots\n\t * @public\n\t */\n\thasSlots() {\n\t\treturn !!Object.entries(this.getSlots()).length;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots with \"individualSlots: true\"\n\t * @public\n\t */\n\thasIndividualSlots() {\n\t\treturn this.slotsAreManaged() && Object.values(this.getSlots()).some(slotData => slotData.individualSlots);\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element needs to invalidate if children are added/removed/changed\n\t * @public\n\t */\n\tslotsAreManaged() {\n\t\treturn !!this.metadata.managedSlots;\n\t}\n\n\t/**\n\t * Determines whether this control supports F6 fast navigation\n\t * @public\n\t */\n\tsupportsF6FastNavigation() {\n\t\treturn !!this.metadata.fastNavigation;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of properties and their metadata definitions\n\t * @public\n\t */\n\tgetProperties() {\n\t\tif (!this.metadata.properties) {\n\t\t\tthis.metadata.properties = {};\n\t\t}\n\t\treturn this.metadata.properties;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of events and their metadata definitions\n\t * @public\n\t */\n\tgetEvents() {\n\t\tif (!this.metadata.events) {\n\t\t\tthis.metadata.events = {};\n\t\t}\n\t\treturn this.metadata.events;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of slots and their metadata definitions\n\t * @public\n\t */\n\t getSlots() {\n\t\tif (!this.metadata.slots) {\n\t\t\tthis.metadata.slots = {};\n\t\t}\n\t\treturn this.metadata.slots;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any translatable texts (needs to be invalidated upon language change)\n\t * @returns {boolean}\n\t */\n\tisLanguageAware() {\n\t\treturn !!this.metadata.languageAware;\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element has any theme dependant carachteristics.\n\t * @returns {boolean}\n\t */\n\t isThemeAware() {\n\t\treturn !!this.metadata.themeAware;\n\t}\n\n\t/**\n\t * Matches a changed entity (property/slot) with the given name against the \"invalidateOnChildChange\" configuration\n\t * and determines whether this should cause and invalidation\n\t *\n\t * @param slotName the name of the slot in which a child was changed\n\t * @param type the type of change in the child: \"property\" or \"slot\"\n\t * @param name the name of the property/slot that changed\n\t * @returns {boolean}\n\t */\n\tshouldInvalidateOnChildChange(slotName: string, type: \"property\" | \"slot\", name: string) {\n\t\tconst config = this.getSlots()[slotName].invalidateOnChildChange;\n\n\t\t// invalidateOnChildChange was not set in the slot metadata - by default child changes do not affect the component\n\t\tif (config === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// The simple format was used: invalidateOnChildChange: true/false;\n\t\tif (typeof config === \"boolean\") {\n\t\t\treturn config;\n\t\t}\n\n\t\t// The complex format was used: invalidateOnChildChange: { properties, slots }\n\t\tif (typeof config === \"object\") {\n\t\t\t// A property was changed\n\t\t\tif (type === \"property\") {\n\t\t\t\t// The config object does not have a properties field\n\t\t\t\tif (config.properties === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: properties: true/false\n\t\t\t\tif (typeof config.properties === \"boolean\") {\n\t\t\t\t\treturn config.properties;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: properties: [...]\n\t\t\t\tif (Array.isArray(config.properties)) {\n\t\t\t\t\treturn config.properties.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.properties: boolean or array is expected\");\n\t\t\t}\n\n\t\t\t// A slot was changed\n\t\t\tif (type === \"slot\") {\n\t\t\t\t// The config object does not have a slots field\n\t\t\t\tif (config.slots === undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the short format: slots: true/false\n\t\t\t\tif (typeof config.slots === \"boolean\") {\n\t\t\t\t\treturn config.slots;\n\t\t\t\t}\n\n\t\t\t\t// The config object has the complex format: slots: [...]\n\t\t\t\tif (Array.isArray(config.slots)) {\n\t\t\t\t\treturn config.slots.includes(name);\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\"Wrong format for invalidateOnChildChange.slots: boolean or array is expected\");\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error(\"Wrong format for invalidateOnChildChange: boolean or object is expected\");\n\t}\n}\n\nconst validateSingleProperty = (value: PropertyValue, propData: Property) => {\n\tconst propertyType = propData.type;\n\tlet propertyValidator = propData.validator;\n\n\tif (propertyType && (propertyType as typeof DataType).isDataTypeClass) {\n\t\tpropertyValidator = propertyType as typeof DataType;\n\t}\n\n\tif (propertyValidator) {\n\t\treturn (propertyValidator as typeof DataType).isValid(value) ? value : propData.defaultValue;\n\t}\n\n\tif (!propertyType || propertyType === String) {\n\t\treturn (typeof value === \"string\" || typeof value === \"undefined\" || value === null) ? value : value.toString();\n\t}\n\n\tif (propertyType === Boolean) {\n\t\treturn typeof value === \"boolean\" ? value : false;\n\t}\n\n\tif (propertyType === Object) {\n\t\treturn typeof value === \"object\" ? value : propData.defaultValue;\n\t}\n\n\t// Check if \"value\" is part of the enum (propertyType) values and return the defaultValue if not found.\n\treturn value as string in propertyType ? value : propData.defaultValue;\n};\n\nconst validateSingleSlot = (value: Node, slotData: Slot) => {\n\tvalue && getSlottedNodes(value).forEach(el => {\n\t\tif (!(el instanceof slotData.type)) {\n\t\t\tthrow new Error(`The element is not of type ${slotData.type.toString()}`);\n\t\t}\n\t});\n\n\treturn value;\n};\n\nexport default UI5ElementMetadata;\nexport type {\n\tProperty,\n\tPropertyValue,\n\tSlot,\n\tSlotValue,\n\tEventData,\n\tState,\n\tMetadata,\n};\n"]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { StyleData, StyleDataCSP } from "../
|
|
1
|
+
import type { StyleData, StyleDataCSP } from "../ManagedStyles.js";
|
|
2
2
|
type ThemeData = {
|
|
3
3
|
_: StyleDataCSP;
|
|
4
4
|
} | StyleDataCSP | string;
|
|
5
5
|
type ThemeLoader = (themeName: string) => Promise<ThemeData>;
|
|
6
6
|
declare const registerThemePropertiesLoader: (packageName: string, themeName: string, loader: ThemeLoader) => void;
|
|
7
|
-
declare const
|
|
7
|
+
declare const registerCustomThemePropertiesLoader: (packageName: string, themeName: string, loader: ThemeLoader) => void;
|
|
8
|
+
declare const getThemeProperties: (packageName: string, themeName: string, externalThemeName?: string) => Promise<StyleData | undefined>;
|
|
8
9
|
declare const getRegisteredPackages: () => Set<string>;
|
|
9
10
|
declare const isThemeRegistered: (theme: string) => boolean;
|
|
10
|
-
export { registerThemePropertiesLoader, getThemeProperties, getRegisteredPackages, isThemeRegistered, };
|
|
11
|
+
export { registerThemePropertiesLoader, registerCustomThemePropertiesLoader, getThemeProperties, getRegisteredPackages, isThemeRegistered, };
|
|
11
12
|
export type { ThemeData, ThemeLoader, };
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { DEFAULT_THEME } from "../generated/AssetParameters.js";
|
|
2
|
+
import { mergeStyles } from "../ManagedStyles.js";
|
|
2
3
|
import { fireThemeRegistered } from "../theming/ThemeRegistered.js";
|
|
3
4
|
const themeStyles = new Map();
|
|
4
5
|
const loaders = new Map();
|
|
6
|
+
const customLoaders = new Map();
|
|
5
7
|
const registeredPackages = new Set();
|
|
6
8
|
const registeredThemes = new Set();
|
|
7
9
|
const registerThemePropertiesLoader = (packageName, themeName, loader) => {
|
|
@@ -10,23 +12,38 @@ const registerThemePropertiesLoader = (packageName, themeName, loader) => {
|
|
|
10
12
|
registeredThemes.add(themeName);
|
|
11
13
|
fireThemeRegistered(themeName);
|
|
12
14
|
};
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
const registerCustomThemePropertiesLoader = (packageName, themeName, loader) => {
|
|
16
|
+
customLoaders.set(`${packageName}/${themeName}`, loader);
|
|
17
|
+
};
|
|
18
|
+
const getThemeProperties = async (packageName, themeName, externalThemeName) => {
|
|
19
|
+
const cacheKey = `${packageName}_${themeName}_${externalThemeName || ""}`;
|
|
20
|
+
const cachedStyleData = themeStyles.get(cacheKey);
|
|
21
|
+
if (cachedStyleData !== undefined) { // it's valid for style to be an empty string
|
|
22
|
+
return cachedStyleData;
|
|
17
23
|
}
|
|
18
24
|
if (!registeredThemes.has(themeName)) {
|
|
19
25
|
const regThemesStr = [...registeredThemes.values()].join(", ");
|
|
20
26
|
console.warn(`You have requested a non-registered theme ${themeName} - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
|
|
21
27
|
return _getThemeProperties(packageName, DEFAULT_THEME);
|
|
22
28
|
}
|
|
23
|
-
|
|
29
|
+
const [style, customStyle] = await Promise.all([
|
|
30
|
+
_getThemeProperties(packageName, themeName),
|
|
31
|
+
externalThemeName ? _getThemeProperties(packageName, externalThemeName, true) : undefined,
|
|
32
|
+
]);
|
|
33
|
+
const styleData = mergeStyles(style, customStyle);
|
|
34
|
+
if (styleData) {
|
|
35
|
+
themeStyles.set(cacheKey, styleData);
|
|
36
|
+
}
|
|
37
|
+
return styleData;
|
|
24
38
|
};
|
|
25
|
-
const _getThemeProperties = async (packageName, themeName) => {
|
|
26
|
-
const
|
|
39
|
+
const _getThemeProperties = async (packageName, themeName, forCustomTheme = false) => {
|
|
40
|
+
const loadersMap = forCustomTheme ? customLoaders : loaders;
|
|
41
|
+
const loader = loadersMap.get(`${packageName}/${themeName}`);
|
|
27
42
|
if (!loader) {
|
|
28
43
|
// no themes for package
|
|
29
|
-
|
|
44
|
+
if (!forCustomTheme) {
|
|
45
|
+
console.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */
|
|
46
|
+
}
|
|
30
47
|
return;
|
|
31
48
|
}
|
|
32
49
|
let data;
|
|
@@ -39,7 +56,6 @@ const _getThemeProperties = async (packageName, themeName) => {
|
|
|
39
56
|
return;
|
|
40
57
|
}
|
|
41
58
|
const themeProps = data._ || data; // Refactor: remove _ everywhere
|
|
42
|
-
themeStyles.set(`${packageName}_${themeName}`, themeProps);
|
|
43
59
|
return themeProps;
|
|
44
60
|
};
|
|
45
61
|
const getRegisteredPackages = () => {
|
|
@@ -48,5 +64,5 @@ const getRegisteredPackages = () => {
|
|
|
48
64
|
const isThemeRegistered = (theme) => {
|
|
49
65
|
return registeredThemes.has(theme);
|
|
50
66
|
};
|
|
51
|
-
export { registerThemePropertiesLoader, getThemeProperties, getRegisteredPackages, isThemeRegistered, };
|
|
67
|
+
export { registerThemePropertiesLoader, registerCustomThemePropertiesLoader, getThemeProperties, getRegisteredPackages, isThemeRegistered, };
|
|
52
68
|
//# sourceMappingURL=Themes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../src/asset-registries/Themes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAKpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;AACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;AAC/C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAC7C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE3C,MAAM,6BAA6B,GAAG,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAmB,EAAE,EAAE;IACrG,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;IACnD,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,WAAmB,EAAE,SAAiB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"Themes.js","sourceRoot":"","sources":["../../src/asset-registries/Themes.ts"],"names":[],"mappings":"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","sourcesContent":["import { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport type { StyleData, StyleDataCSP } from \"../ManagedStyles.js\";\nimport { mergeStyles } from \"../ManagedStyles.js\";\nimport { fireThemeRegistered } from \"../theming/ThemeRegistered.js\";\n\ntype ThemeData = {_: StyleDataCSP } | StyleDataCSP | string;\ntype ThemeLoader = (themeName: string) => Promise<ThemeData>;\n\nconst themeStyles = new Map<string, StyleData>();\nconst loaders = new Map<string, ThemeLoader>();\nconst customLoaders = new Map<string, ThemeLoader>();\nconst registeredPackages = new Set<string>();\nconst registeredThemes = new Set<string>();\n\nconst registerThemePropertiesLoader = (packageName: string, themeName: string, loader: ThemeLoader) => {\n\tloaders.set(`${packageName}/${themeName}`, loader);\n\tregisteredPackages.add(packageName);\n\tregisteredThemes.add(themeName);\n\tfireThemeRegistered(themeName);\n};\n\nconst registerCustomThemePropertiesLoader = (packageName: string, themeName: string, loader: ThemeLoader) => {\n\tcustomLoaders.set(`${packageName}/${themeName}`, loader);\n};\n\nconst getThemeProperties = async (packageName: string, themeName: string, externalThemeName?: string) => {\n\tconst cacheKey = `${packageName}_${themeName}_${externalThemeName || \"\"}`;\n\tconst cachedStyleData = themeStyles.get(cacheKey);\n\tif (cachedStyleData !== undefined) { // it's valid for style to be an empty string\n\t\treturn cachedStyleData;\n\t}\n\n\tif (!registeredThemes.has(themeName)) {\n\t\tconst regThemesStr = [...registeredThemes.values()].join(\", \");\n\t\tconsole.warn(`You have requested a non-registered theme ${themeName} - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */\n\t\treturn _getThemeProperties(packageName, DEFAULT_THEME);\n\t}\n\n\tconst [style, customStyle] = await Promise.all([\n\t\t_getThemeProperties(packageName, themeName),\n\t\texternalThemeName ? _getThemeProperties(packageName, externalThemeName, true) : undefined,\n\t]);\n\n\tconst styleData = mergeStyles(style, customStyle);\n\tif (styleData) {\n\t\tthemeStyles.set(cacheKey, styleData);\n\t}\n\n\treturn styleData;\n};\n\nconst _getThemeProperties = async (packageName: string, themeName: string, forCustomTheme = false) => {\n\tconst loadersMap = forCustomTheme ? customLoaders : loaders;\n\tconst loader = loadersMap.get(`${packageName}/${themeName}`);\n\tif (!loader) {\n\t\t// no themes for package\n\t\tif (!forCustomTheme) {\n\t\t\tconsole.error(`Theme [${themeName}] not registered for package [${packageName}]`); /* eslint-disable-line */\n\t\t}\n\t\treturn;\n\t}\n\tlet data;\n\ttry {\n\t\tdata = await loader(themeName);\n\t} catch (error: unknown) {\n\t\tconst e = error as Error;\n\t\tconsole.error(packageName, e.message); /* eslint-disable-line */\n\t\treturn;\n\t}\n\n\tconst themeProps = (data as {_: StyleDataCSP})._ || data; // Refactor: remove _ everywhere\n\treturn themeProps;\n};\n\nconst getRegisteredPackages = () => {\n\treturn registeredPackages;\n};\n\nconst isThemeRegistered = (theme: string) => {\n\treturn registeredThemes.has(theme);\n};\n\nexport {\n\tregisterThemePropertiesLoader,\n\tregisterCustomThemePropertiesLoader,\n\tgetThemeProperties,\n\tgetRegisteredPackages,\n\tisThemeRegistered,\n};\n\nexport type {\n\tThemeData,\n\tThemeLoader,\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&s(a)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();const P={themes:{default:"sap_horizon",all:["sap_fiori_3","sap_fiori_3_dark","sap_belize","sap_belize_hcb","sap_belize_hcw","sap_fiori_3_hcb","sap_fiori_3_hcw","sap_horizon","sap_horizon_dark","sap_horizon_hcb","sap_horizon_hcw","sap_horizon_exp","sap_horizon_dark_exp","sap_horizon_hcb_exp","sap_horizon_hcw_exp"]},languages:{default:"en",all:["ar","bg","ca","cnr","cs","cy","da","de","el","en","en_GB","en_US_sappsd","en_US_saprigi","en_US_saptrc","es","es_MX","et","fi","fr","fr_CA","hi","hr","hu","in","it","iw","ja","kk","ko","lt","lv","mk","ms","nl","no","pl","pt_PT","pt","ro","ru","sh","sk","sl","sr","sv","th","tr","uk","vi","zh_CN","zh_TW"]},locales:{default:"en",all:["ar","ar_EG","ar_SA","bg","ca","cs","da","de","de_AT","de_CH","el","el_CY","en","en_AU","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PG","en_SG","en_ZA","es","es_AR","es_BO","es_CL","es_CO","es_MX","es_PE","es_UY","es_VE","et","fa","fi","fr","fr_BE","fr_CA","fr_CH","fr_LU","he","hi","hr","hu","id","it","it_CH","ja","kk","ko","lt","lv","ms","nb","nl","nl_BE","pl","pt","pt_PT","ro","ru","ru_UA","sk","sl","sr","sr_Latn","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"]}},k=P.themes.default,gt=P.themes.all,j=P.languages.default,h=P.locales.default,ge=P.locales.all,mt=()=>{const e=navigator.languages,t=()=>navigator.language;return e&&e[0]||t()||j};var xe={},Fe=xe.hasOwnProperty,Ut=xe.toString,Be=Fe.toString,yt=Be.call(Object),me=function(e){var t,n;return!e||Ut.call(e)!=="[object Object]"?!1:(t=Object.getPrototypeOf(e),t?(n=Fe.call(t,"constructor")&&t.constructor,typeof n=="function"&&Be.call(n)===yt):!0)},wt=Object.create(null),ze=function(e,t,n,s){var r,o,a,i,f,y,g=arguments[2]||{},q=3,ht=arguments.length,pe=arguments[0]||!1,pt=arguments[1]?void 0:wt;for(typeof g!="object"&&typeof g!="function"&&(g={});q<ht;q++)if((f=arguments[q])!=null)for(i in f)r=g[i],a=f[i],!(i==="__proto__"||g===a)&&(pe&&a&&(me(a)||(o=Array.isArray(a)))?(o?(o=!1,y=r&&Array.isArray(r)?r:[]):y=r&&me(r)?r:{},g[i]=ze(pe,arguments[1],y,a)):a!==pt&&(g[i]=a));return g};const je=function(e,t){return ze(!0,!1,...arguments)},Ve=new Map,ns=(e,t)=>{Ve.set(e,t)},A=e=>Ve.get(e),St=e=>{const t=document.querySelector(`META[name="${e}"]`);return t&&t.getAttribute("content")},_t=e=>{const t=St("sap-allowedThemeOrigins");return t&&t.split(",").some(n=>n==="*"||e===n.trim())},At=(e,t)=>{const n=new URL(e).pathname;return new URL(n,t).toString()},Ne=e=>{let t;try{if(e.startsWith(".")||e.startsWith("/"))t=new URL(e,window.location.href).toString();else{const n=new URL(e),s=n.origin;s&&_t(s)?t=n.toString():t=At(n.toString(),window.location.href)}return t.endsWith("/")||(t=`${t}/`),`${t}UI5/`}catch{}};var se;(function(e){e.Full="full",e.Basic="basic",e.Minimal="minimal",e.None="none"})(se||(se={}));const Et=se;let Ue=!1,u={animationMode:Et.Full,theme:k,themeRoot:void 0,rtl:void 0,language:void 0,timezone:void 0,calendarType:void 0,secondaryCalendarType:void 0,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const ss=()=>(p(),u.animationMode),bt=()=>(p(),u.theme),Tt=()=>(p(),u.themeRoot),rs=()=>(p(),u.rtl),Ct=()=>(p(),u.language),vt=()=>(p(),u.fetchDefaultLanguage),os=()=>(p(),u.noConflict),as=()=>(p(),u.calendarType),is=()=>(p(),u.formatSettings),x=new Map;x.set("true",!0);x.set("false",!1);const Lt=()=>{const e=document.querySelector("[data-ui5-config]")||document.querySelector("[data-id='sap-ui-config']");let t;if(e){try{t=JSON.parse(e.innerHTML)}catch{console.warn("Incorrect data-sap-ui-config format. Please use JSON")}t&&(u=je(u,t))}},Pt=()=>{const e=new URLSearchParams(window.location.search);e.forEach((t,n)=>{const s=n.split("sap-").length;s===0||s===n.split("sap-ui-").length||ye(n,t,"sap")}),e.forEach((t,n)=>{n.startsWith("sap-ui")&&ye(n,t,"sap-ui")})},Rt=e=>{const t=e.split("@")[1];return Ne(t)},$t=(e,t)=>e==="theme"&&t.includes("@")?t.split("@")[0]:t,ye=(e,t,n)=>{const s=t.toLowerCase(),r=e.split(`${n}-`)[1];x.has(t)&&(t=x.get(s)),r==="theme"?(u.theme=$t(r,t),t&&t.includes("@")&&(u.themeRoot=Rt(t))):u[r]=t},It=()=>{const e=A("OpenUI5Support");if(!e||!e.isOpenUI5Detected())return;const t=e.getConfigurationSettingsObject();u=je(u,t)},p=()=>{typeof document>"u"||Ue||(Lt(),Pt(),It(),Ue=!0)};class R{constructor(){this._eventRegistry=new Map}attachEvent(t,n){const s=this._eventRegistry,r=s.get(t);if(!Array.isArray(r)){s.set(t,[n]);return}r.includes(n)||r.push(n)}detachEvent(t,n){const s=this._eventRegistry,r=s.get(t);if(!r)return;const o=r.indexOf(n);o!==-1&&r.splice(o,1),r.length===0&&s.delete(t)}fireEvent(t,n){const r=this._eventRegistry.get(t);return r?r.map(o=>o.call(this,n)):[]}fireEventAsync(t,n){return Promise.all(this.fireEvent(t,n))}isHandlerAttached(t,n){const r=this._eventRegistry.get(t);return r?r.includes(n):!1}hasListeners(t){return!!this._eventRegistry.get(t)}}const We=new R,Ze="languageChange",He=e=>{We.attachEvent(Ze,e)},Ot=e=>We.fireEventAsync(Ze,e),we=10;class Dt{constructor(){this.list=[],this.lookup=new Set}add(t){this.lookup.has(t)||(this.list.push(t),this.lookup.add(t))}remove(t){this.lookup.has(t)&&(this.list=this.list.filter(n=>n!==t),this.lookup.delete(t))}shift(){const t=this.list.shift();if(t)return this.lookup.delete(t),t}isEmpty(){return this.list.length===0}isAdded(t){return this.lookup.has(t)}process(t){let n;const s=new Map;for(n=this.shift();n;){const r=s.get(n)||0;if(r>we)throw new Error(`Web component processed too many times this task, max allowed is: ${we}`);t(n),s.set(n,r+1),n=this.shift()}}}const Mt=(e,t=document.body,n)=>{let s=document.querySelector(e);return s||(s=n?n():document.createElement(e),t.insertBefore(s,t.firstChild))},kt=()=>{const e=document.createElement("meta");return e.setAttribute("name","ui5-shared-resources"),e.setAttribute("content",""),e},xt=()=>typeof document>"u"?null:Mt('meta[name="ui5-shared-resources"]',document.head,kt),V=(e,t)=>{const n=e.split(".");let s=xt();if(!s)return t;for(let r=0;r<n.length;r++){const o=n[r],a=r===n.length-1;Object.prototype.hasOwnProperty.call(s,o)||(s[o]=a?t:{}),s=s[o]}return s},Ft={version:"1.20.0",major:1,minor:20,patch:0,suffix:"",isNext:!1,buildTime:1701685261};let D,Bt="";const G=new Map,v=V("Runtimes",[]),zt=()=>{if(D===void 0){D=v.length;const e=Ft;v.push({...e,alias:Bt,description:`Runtime ${D} - ver ${e.version}`})}},b=()=>D,qe=(e,t)=>{const n=`${e},${t}`;if(G.has(n))return G.get(n);const s=v[e],r=v[t];if(!s||!r)throw new Error("Invalid runtime index supplied");if(s.isNext||r.isNext)return s.buildTime-r.buildTime;const o=s.major-r.major;if(o)return o;const a=s.minor-r.minor;if(a)return a;const i=s.patch-r.patch;if(i)return i;const y=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(s.suffix,r.suffix);return G.set(n,y),y},jt=()=>v,Ge=V("Tags",new Map),ie=new Set;let U=new Map,K;const Ke=-1,cs=e=>{ie.add(e),Ge.set(e,b())},us=e=>ie.has(e),Vt=()=>[...ie.values()],ls=e=>{let t=Ge.get(e);t===void 0&&(t=Ke),U.has(t)||U.set(t,new Set),U.get(t).add(e),K||(K=setTimeout(()=>{Nt(),U=new Map,K=void 0},1e3))},Nt=()=>{const e=jt(),t=b(),n=e[t];let s="Multiple UI5 Web Components instances detected.";e.length>1&&(s=`${s}
|
|
2
|
+
Loading order (versions before 1.1.0 not listed): ${e.map(r=>`
|
|
3
|
+
${r.description}`).join("")}`),[...U.keys()].forEach(r=>{let o,a;r===Ke?(o=1,a={description:"Older unknown runtime"}):(o=qe(t,r),a=e[r]);let i;o>0?i="an older":o<0?i="a newer":i="the same",s=`${s}
|
|
4
|
+
|
|
5
|
+
"${n.description}" failed to define ${U.get(r).size} tag(s) as they were defined by a runtime of ${i} version "${a.description}": ${[...U.get(r)].sort().join(", ")}.`,o>0?s=`${s}
|
|
6
|
+
WARNING! If your code uses features of the above web components, unavailable in ${a.description}, it might not work as expected!`:s=`${s}
|
|
7
|
+
Since the above web components were defined by the same or newer version runtime, they should be compatible with your code.`}),s=`${s}
|
|
8
|
+
|
|
9
|
+
To prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/main/docs/2-advanced/03-scoping.md.`,console.warn(s)},Je=new Set,fs=e=>{Je.add(e)},Wt=e=>Je.has(e),ce=new Set,Zt=new R,E=new Dt;let w,M,J,I;const Ht=async e=>{E.add(e),await Gt()},qt=e=>{Zt.fireEvent("beforeComponentRender",e),ce.add(e),e._render()},ds=e=>{E.remove(e),ce.delete(e)},Gt=async()=>{I||(I=new Promise(e=>{window.requestAnimationFrame(()=>{E.process(qt),I=null,e(),J||(J=setTimeout(()=>{J=void 0,E.isEmpty()&&Yt()},200))})})),await I},Kt=()=>w||(w=new Promise(e=>{M=e,window.requestAnimationFrame(()=>{E.isEmpty()&&(w=void 0,e())})}),w),Jt=()=>{const e=Vt().map(t=>customElements.whenDefined(t));return Promise.all(e)},Xt=async()=>{await Jt(),await Kt()},Yt=()=>{E.isEmpty()&&M&&(M(),M=void 0,w=void 0)},Xe=async e=>{ce.forEach(t=>{const n=t.constructor,s=n.getMetadata().getTag(),r=Wt(n),o=n.getMetadata().isLanguageAware(),a=n.getMetadata().isThemeAware();(!e||e.tag===s||e.rtlAware&&r||e.languageAware&&o||e.themeAware&&a)&&Ht(t)}),await Xt()};let T,re;const Qt=()=>(T===void 0&&(T=Ct()),T),hs=async e=>{T!==e&&(T=e,await Ot(e),await Xe({languageAware:!0}))},en=e=>{re=e},tn=()=>(re===void 0&&en(vt()),re),nn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;class Ye{constructor(t){const n=nn.exec(t.replace(/_/g,"-"));if(n===null)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=n[1]||j,this.sScript=n[2]||"",this.sRegion=n[3]||"",this.sVariant=n[4]&&n[4].slice(1)||null,this.sExtension=n[5]&&n[5].slice(1)||null,this.sPrivateUse=n[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,s=>s.toUpperCase())),this.sRegion&&(this.sRegion=this.sRegion.toUpperCase())}getLanguage(){return this.sLanguage}getScript(){return this.sScript}getRegion(){return this.sRegion}getVariant(){return this.sVariant}getVariantSubtags(){return this.sVariant?this.sVariant.split("-"):[]}getExtension(){return this.sExtension}getExtensionSubtags(){return this.sExtension?this.sExtension.slice(2).split("-"):[]}getPrivateUse(){return this.sPrivateUse}getPrivateUseSubtags(){return this.sPrivateUse?this.sPrivateUse.slice(2).split("-"):[]}hasPrivateUseSubtag(t){return this.getPrivateUseSubtags().indexOf(t)>=0}toString(){const t=[this.sLanguage];return this.sScript&&t.push(this.sScript),this.sRegion&&t.push(this.sRegion),this.sVariant&&t.push(this.sVariant),this.sExtension&&t.push(this.sExtension),this.sPrivateUse&&t.push(this.sPrivateUse),t.join("-")}}const X=new Map,Qe=e=>(X.has(e)||X.set(e,new Ye(e)),X.get(e)),Se=e=>{try{if(e&&typeof e=="string")return Qe(e)}catch{}return new Ye(h)},oe=e=>{if(e)return Se(e);const t=Qt();return t?Qe(t):Se(mt())},sn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i,_e=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,rn={he:"iw",yi:"ji",nb:"no",sr:"sh"},on=e=>{let t;if(!e)return h;if(typeof e=="string"&&(t=sn.exec(e.replace(/_/g,"-")))){let n=t[1].toLowerCase(),s=t[3]?t[3].toUpperCase():void 0;const r=t[2]?t[2].toLowerCase():void 0,o=t[4]?t[4].slice(1):void 0,a=t[6];return n=rn[n]||n,a&&(t=_e.exec(a))||o&&(t=_e.exec(o))?`en_US_${t[1].toLowerCase()}`:(n==="zh"&&!s&&(r==="hans"?s="CN":r==="hant"&&(s="TW")),n+(s?"_"+s+(o?"_"+o.replace("-","_"):""):""))}return h},an=e=>{if(!e)return h;if(e==="zh_HK")return"zh_TW";const t=e.lastIndexOf("_");return t>=0?e.slice(0,t):e!==h?h:""},Ae=new Set,Ee=new Set,ue=new Map,Y=new Map,le=new Map,ps=(e,t,n)=>{const s=`${e}/${t}`;le.set(s,n)},be=(e,t)=>{ue.set(e,t)},gs=e=>ue.get(e),et=(e,t)=>{const n=`${e}/${t}`;return le.has(n)},cn=(e,t)=>{const n=`${e}/${t}`,s=le.get(n);return s&&!Y.get(n)&&Y.set(n,s(t)),Y.get(n)},un=e=>{Ae.has(e)||(console.warn(`[${e}]: Message bundle assets are not configured. Falling back to English texts.`,` Add \`import "${e}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`),Ae.add(e))},Te=(e,t)=>t!==j&&!et(e,t),ln=async e=>{const t=oe().getLanguage(),n=oe().getRegion();let s=t+(n?`-${n}`:"");if(Te(e,s))for(s=on(s);Te(e,s);)s=an(s);const r=tn();if(s===j&&!r){be(e,null);return}if(!et(e,s)){un(e);return}try{const o=await cn(e,s);be(e,o)}catch(o){const a=o;Ee.has(a.message)||(Ee.add(a.message),console.error(a.message))}};He(e=>{const t=[...ue.keys()];return Promise.all(t.map(ln))});const fn=new Map,F=new Map,Q=new Map,Ce=new Set;let ve=!1;const dn={iw:"he",ji:"yi",in:"id"},Le=e=>{ve||(console.warn(`[LocaleData] Supported locale "${e}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),ve=!0)},hn=(e,t,n)=>{e=e&&dn[e]||e,e==="no"&&(e="nb"),e==="zh"&&!t&&(n==="Hans"?t="CN":n==="Hant"&&(t="TW")),(e==="sh"||e==="sr"&&n==="Latn")&&(e="sr",t="Latn");let s=`${e}_${t}`;return ge.includes(s)||(s=e,ge.includes(s))?F.has(s)?s:(Le(s),h):h},Pe=(e,t)=>{fn.set(e,t)},pn=e=>{if(!Q.get(e)){const t=F.get(e);if(!t)throw new Error(`CLDR data for locale ${e} is not loaded!`);Q.set(e,t(e))}return Q.get(e)},gn=async(e,t,n)=>{const s=hn(e,t,n),r=A("OpenUI5Support");if(r){const o=r.getLocaleDataObject();if(o){Pe(s,o);return}}try{const o=await pn(s);Pe(s,o)}catch(o){const a=o;Ce.has(a.message)||(Ce.add(a.message),console.error(a.message))}},mn=(e,t)=>{F.set(e,t)};mn("en",async()=>(await fetch("https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json")).json());He(()=>{const e=oe();return gn(e.getLanguage(),e.getRegion(),e.getScript())});const Un=(e,t)=>{const n=document.createElement("style");return n.type="text/css",t&&Object.entries(t).forEach(s=>n.setAttribute(...s)),n.textContent=e,document.head.appendChild(n),n},yn=(e,t)=>{const n=document.createElement("link");return n.type="text/css",n.rel="stylesheet",t&&Object.entries(t).forEach(s=>n.setAttribute(...s)),n.href=e,document.head.appendChild(n),new Promise(s=>{n.addEventListener("load",s),n.addEventListener("error",s)})},l=typeof document>"u",c={get userAgent(){return l?"":navigator.userAgent},get touch(){return l?!1:"ontouchstart"in window||navigator.maxTouchPoints>0},get ie(){return l?!1:/(msie|trident)/i.test(c.userAgent)},get chrome(){return l?!1:!c.ie&&/(Chrome|CriOS)/.test(c.userAgent)},get firefox(){return l?!1:/Firefox/.test(c.userAgent)},get safari(){return l?!1:!c.ie&&!c.chrome&&/(Version|PhantomJS)\/(\d+\.\d+).*Safari/.test(c.userAgent)},get webkit(){return l?!1:!c.ie&&/webkit/.test(c.userAgent)},get windows(){return l?!1:navigator.platform.indexOf("Win")!==-1},get macOS(){return l?!1:!!navigator.userAgent.match(/Macintosh|Mac OS X/i)},get iOS(){return l?!1:!!navigator.platform.match(/iPhone|iPad|iPod/)||!!(c.userAgent.match(/Mac/)&&"ontouchend"in document)},get android(){return l?!1:!c.windows&&/Android/.test(c.userAgent)},get androidPhone(){return l?!1:c.android&&/(?=android)(?=.*mobile)/i.test(c.userAgent)},get ipad(){return l?!1:/ipad/i.test(c.userAgent)||/Macintosh/i.test(c.userAgent)&&"ontouchend"in document}},N=()=>c.safari,W=(e,t)=>t?`${e}|${t}`:e,Re=e=>e===void 0?!0:qe(b(),parseInt(e))===1,Z=(e,t,n="",s)=>{const r=typeof e=="string"?e:e.content,o=b();if(document.adoptedStyleSheets&&!N()){const a=new CSSStyleSheet;a.replaceSync(r),a._ui5StyleId=W(t,n),s&&(a._ui5RuntimeIndex=o,a._ui5Theme=s),document.adoptedStyleSheets=[...document.adoptedStyleSheets,a]}else{const a={};a[t]=n,s&&(a["data-ui5-runtime-index"]=o,a["data-ui5-theme"]=s),Un(r,a)}},wn=(e,t,n="",s)=>{const r=typeof e=="string"?e:e.content,o=b();if(document.adoptedStyleSheets&&!N()){const a=document.adoptedStyleSheets.find(i=>i._ui5StyleId===W(t,n));if(!a)return;if(!s)a.replaceSync(r||"");else{const i=a._ui5RuntimeIndex;(a._ui5Theme!==s||Re(i))&&(a.replaceSync(r||""),a._ui5RuntimeIndex=String(o),a._ui5Theme=s)}}else{const a=document.querySelector(`head>style[${t}="${n}"]`);if(!a)return;if(!s)a.textContent=r||"";else{const i=a.getAttribute("data-ui5-runtime-index")||void 0;(a.getAttribute("data-ui5-theme")!==s||Re(i))&&(a.textContent=r||"",a.setAttribute("data-ui5-runtime-index",String(o)),a.setAttribute("data-ui5-theme",s))}}},H=(e,t="")=>{const n=document.querySelector(`head>style[${e}="${t}"]`);return document.adoptedStyleSheets&&!N()?!!n||!!document.adoptedStyleSheets.find(s=>s._ui5StyleId===W(e,t)):!!n},Sn=(e,t="")=>{var n;if(document.adoptedStyleSheets&&!N())document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s._ui5StyleId!==W(e,t));else{const s=document.querySelector(`head > style[${e}="${t}"]`);(n=s==null?void 0:s.parentElement)==null||n.removeChild(s)}},tt=(e,t,n="",s)=>{H(t,n)?wn(e,t,n,s):Z(e,t,n,s)},_n=(e,t)=>{if(e===void 0)return t;if(t===void 0)return e;const n=typeof t=="string"?t:t.content;return typeof e=="string"?`${e} ${n}`:{content:`${e.content} ${n}`,packageName:e.packageName,fileName:e.fileName}},nt=new R,st="themeRegistered",An=e=>{nt.attachEvent(st,e)},En=e=>nt.fireEvent(st,e),$e=new Map,rt=new Map,bn=new Map,ot=new Set,B=new Set,ms=(e,t,n)=>{rt.set(`${e}/${t}`,n),ot.add(e),B.add(t),En(t)},at=async(e,t,n)=>{const s=`${e}_${t}_${n||""}`,r=$e.get(s);if(r!==void 0)return r;if(!B.has(t)){const f=[...B.values()].join(", ");return console.warn(`You have requested a non-registered theme ${t} - falling back to ${k}. Registered themes are: ${f}`),ee(e,k)}const[o,a]=await Promise.all([ee(e,t),n?ee(e,n,!0):void 0]),i=_n(o,a);return i&&$e.set(s,i),i},ee=async(e,t,n=!1)=>{const r=(n?bn:rt).get(`${e}/${t}`);if(!r){n||console.error(`Theme [${t}] not registered for package [${e}]`);return}let o;try{o=await r(t)}catch(i){console.error(e,i.message);return}return o._||o},it=()=>ot,Tn=e=>B.has(e);var z;(function(e){e["SAP-icons"]="SAP-icons-v4",e.horizon="SAP-icons-v5",e["SAP-icons-TNT"]="tnt",e.BusinessSuiteInAppSymbols="business-suite"})(z||(z={}));const ct=e=>z[e]?z[e]:e,S=new Set,Cn=()=>{let e=document.querySelector(".sapThemeMetaData-Base-baseLib")||document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");if(e)return getComputedStyle(e).backgroundImage;e=document.createElement("span"),e.style.display="none",e.classList.add("sapThemeMetaData-Base-baseLib"),document.body.appendChild(e);let t=getComputedStyle(e).backgroundImage;return t==="none"&&(e.classList.add("sapThemeMetaData-UI5-sap-ui-core"),t=getComputedStyle(e).backgroundImage),document.body.removeChild(e),t},vn=e=>{const t=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(e);if(t&&t.length>=2){let n=t[1];if(n=n.replace(/\\"/g,'"'),n.charAt(0)!=="{"&&n.charAt(n.length-1)!=="}")try{n=decodeURIComponent(n)}catch{S.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),S.add("decode"));return}try{return JSON.parse(n)}catch{S.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),S.add("parse"))}}},Ln=e=>{let t,n;try{t=e.Path.match(/\.([^.]+)\.css_variables$/)[1],n=e.Extends[0]}catch{S.has("object")||(console.warn("Malformed theme metadata Object",e),S.add("object"));return}return{themeName:t,baseThemeName:n}},ae=()=>{const e=Cn();if(!e||e==="none")return;const t=vn(e);if(t)return Ln(t)},Pn=new R,Rn="themeLoaded",$n=e=>Pn.fireEvent(Rn,e);let C;const ut=()=>(C===void 0&&(C=Tt()),C),Us=e=>{if(C!==e){if(C=e,!Ne(e)){console.warn(`The ${e} is not valid. Check the allowed origins as suggested in the "setThemeRoot" description.`);return}return lt($())}},In=e=>`${ut()}Base/baseLib/${e}/css_variables.css`,lt=async e=>{const t=document.querySelector(`[sap-ui-webcomponents-theme="${e}"]`);t&&document.head.removeChild(t),await yn(In(e),{"sap-ui-webcomponents-theme":e})},L="@ui5/webcomponents-theming",On=()=>it().has(L),Dn=async e=>{if(!On())return;const t=await at(L,e);t&&tt(t,"data-ui5-theme-properties",L,e)},Mn=()=>{Sn("data-ui5-theme-properties",L)},kn=async(e,t)=>{const s=[...it()].map(async r=>{if(r===L)return;const o=await at(r,e,t);o&&tt(o,`data-ui5-component-properties-${b()}`,r)});return Promise.all(s)},xn=async e=>{var s;const t=ae();if(t)return t;const n=A("OpenUI5Support");if(n&&n.isOpenUI5Detected()){if(n.cssVariablesLoaded())return{themeName:(s=n.getConfigurationSettingsObject())==null?void 0:s.theme,baseThemeName:""}}else if(ut())return await lt(e),ae()},fe=async e=>{const t=await xn(e);!t||e!==t.themeName?await Dn(e):Mn();const n=Tn(e)?e:t&&t.baseThemeName;await kn(n||k,t&&t.themeName===e?e:void 0),$n(e)};let _;const $=()=>(_===void 0&&(_=bt()),_),ys=async e=>{_!==e&&(_=e,await fe(_),await Xe({themeAware:!0}))},Fn=()=>{var t,n;const e=$();return Bn(e)?!e.startsWith("sap_horizon"):!((n=(t=ae())==null?void 0:t.baseThemeName)!=null&&n.startsWith("sap_horizon"))},Bn=e=>gt.includes(e);var m;(function(e){e.SAPIconsV4="SAP-icons-v4",e.SAPIconsV5="SAP-icons-v5",e.SAPIconsTNTV2="tnt-v2",e.SAPIconsTNTV3="tnt-v3",e.SAPBSIconsV1="business-suite-v1",e.SAPBSIconsV2="business-suite-v2"})(m||(m={}));const d=new Map;d.set("SAP-icons",{legacy:m.SAPIconsV4,sap_horizon:m.SAPIconsV5});d.set("tnt",{legacy:m.SAPIconsTNTV2,sap_horizon:m.SAPIconsTNTV3});d.set("business-suite",{legacy:m.SAPBSIconsV1,sap_horizon:m.SAPBSIconsV2});const zn=(e,t)=>{if(d.has(e)){d.set(e,{...t,...d.get(e)});return}d.set(e,t)},Ie=e=>{const t=Fn()?"legacy":"sap_horizon";return d.has(e)?d.get(e)[t]:e},jn=new Map,Vn=e=>jn.get(e),ft=e=>{const t=Vn($());return!e&&t?ct(t):Ie(e||"SAP-icons")},Nn="legacy",Oe=new Map,de=V("SVGIcons.registry",new Map),te=V("SVGIcons.promises",new Map),De="ICON_NOT_FOUND",Wn=async e=>{if(!te.has(e)){if(!Oe.has(e))throw new Error(`No loader registered for the ${e} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);const t=Oe.get(e);te.set(e,t(e))}return te.get(e)},Me=e=>{Object.keys(e.data).forEach(t=>{const n=e.data[t];Zn(t,{pathData:n.path||n.paths,ltr:n.ltr,accData:n.acc,collection:e.collection,packageName:e.packageName})})},Zn=(e,t)=>{const n=`${t.collection}/${e}`;de.set(n,{pathData:t.pathData,ltr:t.ltr,accData:t.accData,packageName:t.packageName,customTemplate:t.customTemplate,viewBox:t.viewBox,collection:t.collection})},Hn=e=>{e.startsWith("sap-icon://")&&(e=e.replace("sap-icon://",""));let t;return[e,t]=e.split("/").reverse(),e=e.replace("icon-",""),t&&(t=ct(t)),{name:e,collection:t}},ne=async e=>{const{name:t,collection:n}=Hn(e);let s=De;try{s=await Wn(ft(n))}catch(o){console.error(o.message)}if(s===De)return s;const r=ke(n,t);return r||(Array.isArray(s)?s.forEach(o=>{Me(o),zn(n,{[o.themeFamily||Nn]:o.collection})}):Me(s),ke(n,t))},ke=(e,t)=>{const n=`${ft(e)}/${t}`;return de.get(n)},ws=async()=>(await ne("edit"),await ne("tnt/arrow"),await ne("business-suite/3d"),Array.from(de.keys())),qn=()=>new Promise(e=>{document.body?e():document.addEventListener("DOMContentLoaded",()=>{e()})}),Gn={packageName:"@ui5/webcomponents-base",fileName:"FontFace.css",content:`@font-face{font-family:"72";font-style:normal;font-weight:400;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"),local("72");unicode-range:U+00,U+0D,U+20-7E,U+A0-FF,U+131,U+152-153,U+161,U+178,U+17D-17E,U+192,U+237,U+2C6,U+2DC,U+3BC,U+1E9E,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"),local('72-full')}@font-face{font-family:"72";font-style:normal;font-weight:700;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),local('72-Bold');unicode-range:U+00,U+0D,U+20-7E,U+A0-FF,U+131,U+152-153,U+161,U+178,U+17D-17E,U+192,U+237,U+2C6,U+2DC,U+3BC,U+1E9E,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),local('72-Bold');unicode-range:U+00,U+0D,U+20-7E,U+A0-FF,U+131,U+152-153,U+161,U+178,U+17D-17E,U+192,U+237,U+2C6,U+2DC,U+3BC,U+1E9E,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Light.woff2?ui5-webcomponents) format("woff2"),local('72-Light');unicode-range:U+00,U+0D,U+20-7E,U+A0-FF,U+131,U+152-153,U+161,U+178,U+17D-17E,U+192,U+237,U+2C6,U+2DC,U+3BC,U+1E9E,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72Mono';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Regular.woff2?ui5-webcomponents) format('woff2'),local('72Mono');unicode-range:U+00,U+0D,U+20-7E,U+A0-FF,U+131,U+152-153,U+161,U+178,U+17D-17E,U+192,U+237,U+2C6,U+2DC,U+3BC,U+1E9E,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122}@font-face{font-family:'72Monofull';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Regular-full.woff2?ui5-webcomponents) format('woff2')}@font-face{font-family:'72Mono-Bold';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Bold.woff2?ui5-webcomponents) format('woff2'),local('72Mono-Bold');unicode-range:U+00,U+0D,U+20-7E,U+A0-FF,U+131,U+152-153,U+161,U+178,U+17D-17E,U+192,U+237,U+2C6,U+2DC,U+3BC,U+1E9E,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122}@font-face{font-family:'72Mono-Boldfull';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Bold-full.woff2?ui5-webcomponents) format('woff2')}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2"),local('72Black');unicode-range:U+00,U+0D,U+20-7E,U+A0-FF,U+131,U+152-153,U+161,U+178,U+17D-17E,U+192,U+237,U+2C6,U+2DC,U+3BC,U+1E9E,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122}@font-face{font-family:'72Blackfull';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black-full.woff2?ui5-webcomponents) format('woff2')}@font-face{font-family:"72-SemiboldDuplex";src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-SemiboldDuplex.woff2?ui5-webcomponents) format("woff2"),local('72-SemiboldDuplex');unicode-range:U+00,U+0D,U+20-7E,U+A0-FF,U+131,U+152-153,U+161,U+178,U+17D-17E,U+192,U+237,U+2C6,U+2DC,U+3BC,U+1E9E,U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,U+20AC,U+2122}`},Kn={packageName:"@ui5/webcomponents-base",fileName:"OverrideFontFace.css",content:"@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}"},Jn=()=>{const e=A("OpenUI5Support");(!e||!e.isOpenUI5Detected())&&Xn(),Yn()},Xn=()=>{H("data-ui5-font-face")||Z(Gn,"data-ui5-font-face")},Yn=()=>{H("data-ui5-font-face-override")||Z(Kn,"data-ui5-font-face-override")},Qn={packageName:"@ui5/webcomponents-base",fileName:"SystemCSSVars.css",content:":root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}"},es=()=>{H("data-ui5-system-css-vars")||Z(Qn,"data-ui5-system-css-vars")};let he=!1,O;const dt=new R,Ss=e=>{if(!he){dt.attachEvent("boot",e);return}e()},_s=async()=>{if(O!==void 0)return O;const e=async t=>{if(typeof document>"u"){t();return}An(ts),zt();const n=A("OpenUI5Support"),s=n?n.isOpenUI5Detected():!1,r=A("F6Navigation");n&&await n.init(),r&&!s&&r.init(),await qn(),await fe($()),n&&n.attachListeners(),Jn(),es(),t(),he=!0,await dt.fireEventAsync("boot")};return O=new Promise(e),O},ts=e=>{const t=$();he&&e===t&&fe(t)};export{as as A,is as B,hs as C,$ as D,R as E,ut as F,Us as G,b as H,ps as I,ws as _,Ss as a,_s as b,V as c,ns as d,Xe as e,ln as f,gs as g,A as h,N as i,rs as j,Qt as k,mt as l,Xt as m,os as n,qt as o,ds as p,fs as q,ms as r,ys as s,Mt as t,us as u,ls as v,cs as w,je as x,Ht as y,ss as z};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import{f as ge,g as me,c as mt,d as Bt,s as ut,e as Ft,E as k,h as X,i as ye,j as ve,k as zt,l as _e,m as Ut,n as Ae,o as we,p as $e,q as Ce,t as be,b as Se,u as Ee,v as Te,w as Me,x as xe,y as De,r as $,z as Le,A as Ie,B as jt,C as Pe,D as Ne,F as Re,G as Oe,H as ke,_ as He,I as Ve}from"./Boot-45945c31.js";const Be=/('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g,Fe=(s,t)=>(t=t||[],s.replace(Be,(e,i,n,r,o)=>{if(i)return"'";if(n)return n.replace(/''/g,"'");if(r){const c=typeof r=="string"?parseInt(r):r;return String(t[c])}throw new Error(`[i18n]: pattern syntax error at pos ${o}`)})),Q=new Map;class ze{constructor(t){this.packageName=t}getText(t,...e){if(typeof t=="string"&&(t={key:t,defaultText:t}),!t||!t.key)return"";const i=me(this.packageName);i&&!i[t.key]&&console.warn(`Key ${t.key} not found in the i18n bundle, the default text will be used`);const n=i&&i[t.key]?i[t.key]:t.defaultText||t.key;return Fe(n,e)}}const Ue=s=>{if(Q.has(s))return Q.get(s);const t=new ze(s);return Q.set(s,t),t},je=async s=>(await ge(s),Ue(s)),We=mt("PopupUtilsData",{currentZIndex:100}),At=()=>We.currentZIndex;class v{static isAtLeastVersion116(){const e=window.sap.ui.version.split(".");return!e||e.length<2?!1:parseInt(e[0])>1||parseInt(e[1])>=116}static isOpenUI5Detected(){var t,e;return typeof((e=(t=window.sap)==null?void 0:t.ui)==null?void 0:e.require)=="function"}static init(){return v.isOpenUI5Detected()?new Promise(t=>{window.sap.ui.require(["sap/ui/core/Core"],async e=>{const i=()=>{let n=["sap/ui/core/Popup","sap/ui/core/LocaleData"];v.isAtLeastVersion116()&&(n=[...n,"sap/base/i18n/Formatting","sap/base/i18n/Localization","sap/ui/core/ControlBehavior","sap/ui/core/Theming","sap/ui/core/date/CalendarUtils"]),window.sap.ui.require(n,r=>{r.setInitialZIndex(At()),t()})};v.isAtLeastVersion116()?(await e.ready(),i()):e.attachInit(i)})}):Promise.resolve()}static getConfigurationSettingsObject(){var n,r;if(!v.isOpenUI5Detected())return{};if(v.isAtLeastVersion116()){const o=window.sap.ui.require("sap/ui/core/ControlBehavior"),c=window.sap.ui.require("sap/base/i18n/Localization"),a=window.sap.ui.require("sap/ui/core/Theming"),l=window.sap.ui.require("sap/base/i18n/Formatting"),h=window.sap.ui.require("sap/ui/core/date/CalendarUtils");return{animationMode:o.getAnimationMode(),language:c.getLanguage(),theme:a.getTheme(),themeRoot:a.getThemeRoot(),rtl:c.getRTL(),timezone:c.getTimezone(),calendarType:l.getCalendarType(),formatSettings:{firstDayOfWeek:h.getWeekConfigurationValues().firstDayOfWeek,legacyDateCalendarCustomizing:((n=l.getCustomIslamicCalendarData)==null?void 0:n.call(l))??((r=l.getLegacyDateCalendarCustomizing)==null?void 0:r.call(l))}}}const e=window.sap.ui.require("sap/ui/core/Core").getConfiguration(),i=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:e.getAnimationMode(),language:e.getLanguage(),theme:e.getTheme(),themeRoot:e.getThemeRoot(),rtl:e.getRTL(),timezone:e.getTimezone(),calendarType:e.getCalendarType(),formatSettings:{firstDayOfWeek:i?i.getInstance(e.getLocale()).getFirstDayOfWeek():void 0,legacyDateCalendarCustomizing:e.getFormatSettings().getLegacyDateCalendarCustomizing()}}}static getLocaleDataObject(){if(!v.isOpenUI5Detected())return;const t=window.sap.ui.require("sap/ui/core/LocaleData");if(v.isAtLeastVersion116()){const n=window.sap.ui.require("sap/base/i18n/Localization");return t.getInstance(n.getLanguageTag())._get()}const i=window.sap.ui.require("sap/ui/core/Core").getConfiguration();return t.getInstance(i.getLocale())._get()}static _listenForThemeChange(){if(v.isAtLeastVersion116()){const t=window.sap.ui.require("sap/ui/core/Theming");t.attachApplied(()=>{ut(t.getTheme())})}else{const t=window.sap.ui.require("sap/ui/core/Core"),e=t.getConfiguration();t.attachThemeChanged(()=>{ut(e.getTheme())})}}static attachListeners(){v.isOpenUI5Detected()&&v._listenForThemeChange()}static cssVariablesLoaded(){if(!v.isOpenUI5Detected())return;const t=[...document.head.children].find(e=>e.id==="sap-ui-theme-sap.ui.core");return t?!!t.href.match(/\/css(-|_)variables\.css/):!1}static getNextZIndex(){if(!v.isOpenUI5Detected())return;const t=window.sap.ui.require("sap/ui/core/Popup");return t||console.warn(`The OpenUI5Support feature hasn't been initialized properly. Make sure you import the "@ui5/webcomponents-base/dist/features/OpenUI5Support.js" module before all components' modules.`),t.getNextZIndex()}static setInitialZIndex(){if(!v.isOpenUI5Detected())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex(At())}}Bt("OpenUI5Support",v);const tt=new Map,et=new Map,wt=s=>{if(!tt.has(s)){const t=qe(s.split("-"));tt.set(s,t)}return tt.get(s)},Wt=s=>{if(!et.has(s)){const t=s.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();et.set(s,t)}return et.get(s)},qe=s=>s.map((t,e)=>e===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(""),Ze=s=>{if(!(s instanceof HTMLElement))return"default";const t=s.getAttribute("slot");if(t){const e=t.match(/^(.+?)-\d+$/);return e?e[1]:t}return"default"},qt=s=>s instanceof HTMLSlotElement?s.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[s],Ge=s=>s.reduce((t,e)=>t.concat(qt(e)),[]);let Ke,$t={include:[/^ui5-/],exclude:[]};const st=new Map,Zt=()=>Ke,ht=s=>{if(!st.has(s)){const t=$t.include.some(e=>s.match(e))&&!$t.exclude.some(e=>s.match(e));st.set(s,t)}return st.get(s)},Gt=s=>{if(ht(s))return Zt()};class Je{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},e=this.slotsAreManaged(),i=this.getProperties();for(const n in i){const r=i[n].type,o=i[n].defaultValue;r===Boolean?(t[n]=!1,o!==void 0&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):i[n].multiple?t[n]=[]:r===Object?t[n]="defaultValue"in i[n]?i[n].defaultValue:{}:r===String?t[n]="defaultValue"in i[n]?i[n].defaultValue:"":t[n]=o}if(e){const n=this.getSlots();for(const[r,o]of Object.entries(n)){const c=o.propertyName||r;t[c]=[]}}return this._initialState=t,t}static validatePropertyValue(t,e){return e.multiple&&t?t.map(n=>Ct(n,e)):Ct(t,e)}static validateSlotValue(t,e){return Xe(t,e)}getPureTag(){return this.metadata.tag||""}getTag(){const t=this.metadata.tag;if(!t)return"";const e=Gt(t);return e?`${t}-${e}`:t}hasAttribute(t){const e=this.getProperties()[t];return e.type!==Object&&!e.noAttribute&&!e.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(Wt)}canSlotText(){var t;return((t=this.getSlots().default)==null?void 0:t.type)===Node}hasSlots(){return!!Object.entries(this.getSlots()).length}hasIndividualSlots(){return this.slotsAreManaged()&&Object.values(this.getSlots()).some(t=>t.individualSlots)}slotsAreManaged(){return!!this.metadata.managedSlots}supportsF6FastNavigation(){return!!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||(this.metadata.properties={}),this.metadata.properties}getEvents(){return this.metadata.events||(this.metadata.events={}),this.metadata.events}getSlots(){return this.metadata.slots||(this.metadata.slots={}),this.metadata.slots}isLanguageAware(){return!!this.metadata.languageAware}isThemeAware(){return!!this.metadata.themeAware}shouldInvalidateOnChildChange(t,e,i){const n=this.getSlots()[t].invalidateOnChildChange;if(n===void 0)return!1;if(typeof n=="boolean")return n;if(typeof n=="object"){if(e==="property"){if(n.properties===void 0)return!1;if(typeof n.properties=="boolean")return n.properties;if(Array.isArray(n.properties))return n.properties.includes(i);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(e==="slot"){if(n.slots===void 0)return!1;if(typeof n.slots=="boolean")return n.slots;if(Array.isArray(n.slots))return n.slots.includes(i);throw new Error("Wrong format for invalidateOnChildChange.slots: boolean or array is expected")}}throw new Error("Wrong format for invalidateOnChildChange: boolean or object is expected")}}const Ct=(s,t)=>{const e=t.type;let i=t.validator;return e&&e.isDataTypeClass&&(i=e),i?i.isValid(s)?s:t.defaultValue:!e||e===String?typeof s=="string"||typeof s>"u"||s===null?s:s.toString():e===Boolean?typeof s=="boolean"?s:!1:e===Object?typeof s=="object"?s:t.defaultValue:s in e?s:t.defaultValue},Xe=(s,t)=>(s&&qt(s).forEach(e=>{if(!(e instanceof t.type))throw new Error(`The element is not of type ${t.type.toString()}`)}),s);class Ye extends HTMLElement{}customElements.get("ui5-static-area")||customElements.define("ui5-static-area",Ye);const Qe=()=>mt("CustomStyle.eventProvider",new k),ts="CustomCSSChange",yt=s=>{Qe().attachEvent(ts,s)},es=()=>mt("CustomStyle.customCSSFor",{});yt(s=>{Ft({tag:s})});const ss=s=>{const t=es();return t[s]?t[s].join(""):""},ns=10,nt=s=>Array.isArray(s)?s.filter(t=>!!t).flat(ns).map(t=>typeof t=="string"?t:t.content).join(" "):typeof s=="string"?s:s.content,q=new Map;yt(s=>{q.delete(`${s}_normal`)});const Kt=(s,t=!1)=>{const e=s.getMetadata().getTag(),i=`${e}_${t?"static":"normal"}`,n=X("OpenUI5Enablement");if(!q.has(i)){let r,o="";if(n&&(o=nt(n.getBusyIndicatorStyles())),t)r=nt(s.staticAreaStyles);else{const c=ss(e)||"";r=`${nt(s.styles)} ${c}`}r=`${r} ${o}`,q.set(i,r)}return q.get(i)},Z=new Map;yt(s=>{Z.delete(`${s}_normal`)});const is=(s,t=!1)=>{const i=`${s.getMetadata().getTag()}_${t?"static":"normal"}`;if(!Z.has(i)){const n=Kt(s,t),r=new CSSStyleSheet;r.replaceSync(n),Z.set(i,[r])}return Z.get(i)},pt=(s,t=!1)=>{let e;const i=s.constructor,n=t?s.staticAreaItem.shadowRoot:s.shadowRoot;let r;if(t?r=s.renderStatic():r=s.render(),!n){console.warn("There is no shadow root to update");return}if(document.adoptedStyleSheets&&!ye()?n.adoptedStyleSheets=is(i,t):e=Kt(i,t),i.renderer){i.renderer(r,n,e,t,{host:s});return}i.render(r,n,e,t,{host:s})},rs="--_ui5_content_density",os=s=>getComputedStyle(s).getPropertyValue(rs),as=s=>{const t=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(s);return t&&t[2]?t[2].split(/,/):null},ls={iw:"he",ji:"yi",in:"id",sh:"sr"},cs=as("$cldr-rtl-locales:ar,fa,he$")||[],ds=s=>(s=s&&ls[s]||s,cs.indexOf(s)>=0),Jt=()=>{if(typeof document>"u")return!1;const s=ve();return s!==void 0?!!s:ds(zt()||_e())},us="--_ui5_dir",Xt=s=>{const t=window.document,e=["ltr","rtl"],i=getComputedStyle(s).getPropertyValue(us);return e.includes(i)?i:e.includes(s.dir)?s.dir:e.includes(t.documentElement.dir)?t.documentElement.dir:e.includes(t.body.dir)?t.body.dir:Jt()?"rtl":void 0},W="ui5-static-area-item",hs="data-sap-ui-integration-popup-content";class O extends HTMLElement{constructor(){super(),this._rendered=!1,this.attachShadow({mode:"open"})}setOwnerElement(t){this.ownerElement=t,this.classList.add(this.ownerElement._id),this.ownerElement.hasAttribute("data-ui5-static-stable")&&this.setAttribute("data-ui5-stable",this.ownerElement.getAttribute("data-ui5-static-stable"))}update(){this._rendered&&(this.updateAdditionalProperties(),pt(this.ownerElement,!0))}updateAdditionalProperties(){this._updateAdditionalAttrs(),this._updateContentDensity(),this._updateDirection()}_updateContentDensity(){os(this.ownerElement)==="compact"?(this.classList.add("sapUiSizeCompact"),this.classList.add("ui5-content-density-compact")):(this.classList.remove("sapUiSizeCompact"),this.classList.remove("ui5-content-density-compact"))}_updateDirection(){if(this.ownerElement){const t=Xt(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}}_updateAdditionalAttrs(){this.setAttribute(W,""),this.setAttribute(hs,"")}async getDomRef(){return this.updateAdditionalProperties(),this._rendered||(this._rendered=!0,pt(this.ownerElement,!0)),await Ut(),this.shadowRoot}static getTag(){const t=Gt(W);return t?`${W}-${t}`:W}static createInstance(){return customElements.get(O.getTag())||customElements.define(O.getTag(),O),document.createElement(this.getTag())}}const ps=[],fs=s=>ps.some(t=>s.startsWith(t)),ft=new WeakMap,gs=(s,t,e)=>{const i=new MutationObserver(t);ft.set(s,i),i.observe(s,e)},ms=s=>{const t=ft.get(s);t&&(t.disconnect(),ft.delete(s))},ys=["value-changed","click"];let G;const vs=s=>ys.includes(s),_s=s=>{const t=vt();return!(typeof t!="boolean"&&t.events&&t.events.includes&&t.events.includes(s))},vt=()=>(G===void 0&&(G=Ae()),G),As=s=>{G=s},ws=s=>{const t=vt();return vs(s)?!1:t===!0?!0:!_s(s)},$s=["disabled","title","hidden","role","draggable"],bt=s=>$s.includes(s)||s.startsWith("aria")?!0:![HTMLElement,Element,Node].some(e=>e.prototype.hasOwnProperty(s)),St=(s,t)=>{if(s.length!==t.length)return!1;for(let e=0;e<s.length;e++)if(s[e]!==t[e])return!1;return!0},Et=(s,t)=>{const e=Cs(t),i=Zt();return s.call(t,t,e,i)},Cs=s=>{const t=s.constructor,e=t.getMetadata().getPureTag(),i=t.getUniqueDependencies().map(n=>n.getMetadata().getPureTag()).filter(ht);return ht(e)&&i.push(e),i};let bs=0;const Tt=new Map,it=new Map;function I(s){this._suppressInvalidation||(this.onInvalidation(s),this._changedState.push(s),De(this),this._invalidationEventProvider.fireEvent("invalidate",{...s,target:this}))}class C extends HTMLElement{constructor(){super();const t=this.constructor;this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._invalidationEventProvider=new k,this._componentStateFinalizedEventProvider=new k;let e;this._domRefReadyPromise=new Promise(i=>{e=i}),this._domRefReadyPromise._deferredResolve=e,this._doNotSyncAttributes=new Set,this._state={...t.getMetadata().getInitialState()},this._upgradeAllProperties(),t._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id=`ui5wc_${++bs}`),this.__id}render(){const t=this.constructor.template;return Et(t,this)}renderStatic(){const t=this.constructor.staticAreaTemplate;return Et(t,this)}async connectedCallback(){const t=this.constructor;this.setAttribute(t.getMetadata().getPureTag(),""),t.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const e=t.getMetadata().slotsAreManaged();this._inDOM=!0,e&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(we(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,this.onEnterDOM())}disconnectedCallback(){const e=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,e&&this._stopObservingDOMChildren(),this._fullyConnected&&(this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),$e(this)}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}_startObservingDOMChildren(){const e=this.constructor.getMetadata();if(!e.hasSlots())return;const n=e.canSlotText(),r=Object.keys(e.getSlots()).some(c=>e.getSlots()[c].cloned),o={childList:!0,subtree:n||r,characterData:n};gs(this,this._processChildren.bind(this),o)}_stopObservingDOMChildren(){ms(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor,e=t.getMetadata().getSlots(),i=t.getMetadata().canSlotText(),n=Array.from(i?this.childNodes:this.children),r=new Map,o=new Map;for(const[d,u]of Object.entries(e)){const p=u.propertyName||d;o.set(p,d),r.set(p,[...this._state[p]]),this._clearSlot(d,u)}const c=new Map,a=new Map,l=n.map(async(d,u)=>{const p=Ze(d),f=e[p];if(f===void 0){if(p!=="default"){const g=Object.keys(e).join(", ");console.warn(`Unknown slotName: ${p}, ignoring`,d,`Valid values are: ${g}`)}return}if(f.individualSlots){const g=(c.get(p)||0)+1;c.set(p,g),d._individualSlot=`${p}-${g}`}if(d instanceof HTMLElement){const g=d.localName;if(g.includes("-")&&!fs(g)){if(!window.customElements.get(g)){const pe=window.customElements.whenDefined(g);let j=Tt.get(g);j||(j=new Promise(fe=>setTimeout(fe,1e3)),Tt.set(g,j)),await Promise.race([pe,j])}window.customElements.upgrade(d)}}if(d=t.getMetadata().constructor.validateSlotValue(d,f),Mt(d)&&f.invalidateOnChildChange){const g=this._getChildChangeListener(p);g&&d.attachInvalidate.call(d,g)}d instanceof HTMLSlotElement&&this._attachSlotChange(d,p);const m=f.propertyName||p;a.has(m)?a.get(m).push({child:d,idx:u}):a.set(m,[{child:d,idx:u}])});await Promise.all(l),a.forEach((d,u)=>{this._state[u]=d.sort((p,f)=>p.idx-f.idx).map(p=>p.child)});let h=!1;for(const[d,u]of Object.entries(e)){const p=u.propertyName||d;St(r.get(p),this._state[p])||(I.call(this,{type:"slot",name:o.get(p),reason:"children"}),h=!0)}h||I.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,e){const i=e.propertyName||t;this._state[i].forEach(r=>{if(Mt(r)){const o=this._getChildChangeListener(t);o&&r.detachInvalidate.call(r,o)}r instanceof HTMLSlotElement&&this._detachSlotChange(r,t)}),this._state[i]=[]}attachInvalidate(t){this._invalidationEventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._invalidationEventProvider.detachEvent("invalidate",t)}_onChildChange(t,e){this.constructor.getMetadata().shouldInvalidateOnChildChange(t,e.type,e.name)&&I.call(this,{type:"slot",name:t,reason:"childchange",child:e.target})}attributeChangedCallback(t,e,i){let n;if(this._doNotSyncAttributes.has(t))return;const r=this.constructor.getMetadata().getProperties(),o=t.replace(/^ui5-/,""),c=wt(o);if(r.hasOwnProperty(c)){const a=r[c],l=a.type;let h=a.validator;l&&l.isDataTypeClass&&(h=l),h?n=h.attributeToProperty(i):l===Boolean?n=i!==null:n=i,this[c]=n}}_updateAttribute(t,e){const i=this.constructor;if(!i.getMetadata().hasAttribute(t))return;const r=i.getMetadata().getProperties()[t],o=r.type;let c=r.validator;const a=Wt(t),l=this.getAttribute(a);if(o&&o.isDataTypeClass&&(c=o),c){const h=c.propertyToAttribute(e);h===null?(this._doNotSyncAttributes.add(a),this.removeAttribute(a),this._doNotSyncAttributes.delete(a)):this.setAttribute(a,h)}else o===Boolean?e===!0&&l===null?this.setAttribute(a,""):e===!1&&l!==null&&this.removeAttribute(a):typeof e!="object"&&l!==e&&this.setAttribute(a,e)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const e=this[t];delete this[t],this[t]=e}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty.bind(this))}_getChildChangeListener(t){return this._childChangeListeners.has(t)||this._childChangeListeners.set(t,this._onChildChange.bind(this,t)),this._childChangeListeners.get(t)}_getSlotChangeListener(t){return this._slotChangeListeners.has(t)||this._slotChangeListeners.set(t,this._onSlotChange.bind(this,t)),this._slotChangeListeners.get(t)}_attachSlotChange(t,e){const i=this._getSlotChangeListener(e);i&&t.addEventListener("slotchange",i)}_detachSlotChange(t,e){t.removeEventListener("slotchange",this._getSlotChangeListener(e))}_onSlotChange(t){I.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor,e=t.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,this.onBeforeRendering(),this._componentStateFinalizedEventProvider.fireEvent("componentStateFinalized"),this._suppressInvalidation=!1,this._changedState=[],t._needsShadowDOM()&&pt(this),this.staticAreaItem&&this.staticAreaItem.update(),e&&this._assignIndividualSlotsToChildren(),this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(e=>{e._individualSlot&&e.setAttribute("slot",e._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(typeof this._getRealDomRef=="function")return this._getRealDomRef();if(!this.shadowRoot||this.shadowRoot.children.length===0)return;const t=[...this.shadowRoot.children].filter(e=>!["link","style"].includes(e.localName));return t.length!==1&&console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`),t[0]}getFocusDomRef(){const t=this.getDomRef();if(t)return t.querySelector("[data-sap-focus-ref]")||t}async getFocusDomRefAsync(){return await this._waitForDomRef(),this.getFocusDomRef()}async focus(t){await this._waitForDomRef();const e=this.getFocusDomRef();e&&typeof e.focus=="function"&&e.focus(t)}fireEvent(t,e,i=!1,n=!0){const r=this._fireEvent(t,e,i,n),o=wt(t);return o!==t?r&&this._fireEvent(o,e,i,n):r}_fireEvent(t,e,i=!1,n=!0){const r=new CustomEvent(`ui5-${t}`,{detail:e,composed:!1,bubbles:n,cancelable:i}),o=this.dispatchEvent(r);if(ws(t))return o;const c=new CustomEvent(t,{detail:e,composed:!1,bubbles:n,cancelable:i});return this.dispatchEvent(c)&&o}getSlottedNodes(t){return Ge(this[t])}attachComponentStateFinalized(t){this._componentStateFinalizedEventProvider.attachEvent("componentStateFinalized",t)}detachComponentStateFinalized(t){this._componentStateFinalizedEventProvider.detachEvent("componentStateFinalized",t)}get effectiveDir(){return Ce(this.constructor),Xt(this)}get isUI5Element(){return!0}get classes(){return{}}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template||Object.prototype.hasOwnProperty.call(this.prototype,"render")}static _needsStaticArea(){return!!this.staticAreaTemplate||Object.prototype.hasOwnProperty.call(this.prototype,"renderStatic")}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=O.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||be("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,e=this.getMetadata().slotsAreManaged(),i=this.getMetadata().getProperties();for(const[n,r]of Object.entries(i)){if(bt(n)||console.warn(`"${n}" is not a valid property name. Use a name that does not collide with DOM APIs`),r.type===Boolean&&r.defaultValue)throw new Error(`Cannot set a default value for property "${n}". All booleans are false by default.`);if(r.type===Array)throw new Error(`Wrong type for property "${n}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(r.type===Object&&r.defaultValue)throw new Error(`Cannot set a default value for property "${n}". All properties of type "Object" are empty objects by default.`);if(r.multiple&&r.defaultValue)throw new Error(`Cannot set a default value for property "${n}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,n,{get(){if(this._state[n]!==void 0)return this._state[n];const o=r.defaultValue;return r.type===Boolean?!1:r.type===String?o:r.multiple?[]:o},set(o){let c;o=this.constructor.getMetadata().constructor.validatePropertyValue(o,r);const h=r.type;let d=r.validator;const u=this._state[n];h&&h.isDataTypeClass&&(d=h),d?c=!d.valuesAreEqual(u,o):Array.isArray(u)&&Array.isArray(o)&&r.multiple&&r.compareValues?c=!St(u,o):c=u!==o,c&&(this._state[n]=o,I.call(this,{type:"property",name:n,newValue:o,oldValue:u}),this._updateAttribute(n,o))}})}if(e){const n=this.getMetadata().getSlots();for(const[r,o]of Object.entries(n)){bt(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`);const c=o.propertyName||r;Object.defineProperty(t,c,{get(){return this._state[c]!==void 0?this._state[c]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!it.has(this)){const t=this.dependencies.filter((e,i,n)=>n.indexOf(e)===i);it.set(this,t)}return it.get(this)||[]}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(t=>t.define()))}static async onDefine(){return Promise.resolve()}static async define(){await Se(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),e=Ee(t),i=window.customElements.get(t);return i&&!e?Te(t):i||(this._generateAccessors(),Me(t),window.customElements.define(t,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let e=this;for(;e!==C;)e=Object.getPrototypeOf(e),t.unshift(e.metadata);const i=xe({},...t);return this._metadata=new Je(i),this._metadata}}C.metadata={};const Mt=s=>"isUI5Element"in s;/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2017 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
+
*/var rt;const K=window,D=K.trustedTypes,xt=D?D.createPolicy("lit-html",{createHTML:s=>s}):void 0,J="$lit$",w=`lit$${(Math.random()+"").slice(9)}$`,_t="?"+w,Ss=`<${_t}>`,T=document,H=()=>T.createComment(""),V=s=>s===null||typeof s!="object"&&typeof s!="function",Yt=Array.isArray,Qt=s=>Yt(s)||typeof(s==null?void 0:s[Symbol.iterator])=="function",ot=`[
|
|
6
|
+
\f\r]`,P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Dt=/-->/g,Lt=/>/g,b=RegExp(`>|${ot}(?:([^\\s"'>=/]+)(${ot}*=${ot}*(?:[^
|
|
7
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),It=/'/g,Pt=/"/g,te=/^(?:script|style|textarea|title)$/i,Es=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),Ts=Es(1),M=Symbol.for("lit-noChange"),y=Symbol.for("lit-nothing"),Nt=new WeakMap,E=T.createTreeWalker(T,129,null,!1);function ee(s,t){if(!Array.isArray(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return xt!==void 0?xt.createHTML(t):t}const se=(s,t)=>{const e=s.length-1,i=[];let n,r=t===2?"<svg>":"",o=P;for(let c=0;c<e;c++){const a=s[c];let l,h,d=-1,u=0;for(;u<a.length&&(o.lastIndex=u,h=o.exec(a),h!==null);)u=o.lastIndex,o===P?h[1]==="!--"?o=Dt:h[1]!==void 0?o=Lt:h[2]!==void 0?(te.test(h[2])&&(n=RegExp("</"+h[2],"g")),o=b):h[3]!==void 0&&(o=b):o===b?h[0]===">"?(o=n??P,d=-1):h[1]===void 0?d=-2:(d=o.lastIndex-h[2].length,l=h[1],o=h[3]===void 0?b:h[3]==='"'?Pt:It):o===Pt||o===It?o=b:o===Dt||o===Lt?o=P:(o=b,n=void 0);const p=o===b&&s[c+1].startsWith("/>")?" ":"";r+=o===P?a+Ss:d>=0?(i.push(l),a.slice(0,d)+J+a.slice(d)+w+p):a+w+(d===-2?(i.push(void 0),c):p)}return[ee(s,r+(s[e]||"<?>")+(t===2?"</svg>":"")),i]};class B{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,o=0;const c=t.length-1,a=this.parts,[l,h]=se(t,e);if(this.el=B.createElement(l,i),E.currentNode=this.el.content,e===2){const d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(n=E.nextNode())!==null&&a.length<c;){if(n.nodeType===1){if(n.hasAttributes()){const d=[];for(const u of n.getAttributeNames())if(u.endsWith(J)||u.startsWith(w)){const p=h[o++];if(d.push(u),p!==void 0){const f=n.getAttribute(p.toLowerCase()+J).split(w),m=/([.?@])?(.*)/.exec(p);a.push({type:1,index:r,name:m[2],strings:f,ctor:m[1]==="."?ie:m[1]==="?"?re:m[1]==="@"?oe:F})}else a.push({type:6,index:r})}for(const u of d)n.removeAttribute(u)}if(te.test(n.tagName)){const d=n.textContent.split(w),u=d.length-1;if(u>0){n.textContent=D?D.emptyScript:"";for(let p=0;p<u;p++)n.append(d[p],H()),E.nextNode(),a.push({type:2,index:++r});n.append(d[u],H())}}}else if(n.nodeType===8)if(n.data===_t)a.push({type:2,index:r});else{let d=-1;for(;(d=n.data.indexOf(w,d+1))!==-1;)a.push({type:7,index:r}),d+=w.length-1}r++}}static createElement(t,e){const i=T.createElement("template");return i.innerHTML=t,i}}function x(s,t,e=s,i){var n,r,o,c;if(t===M)return t;let a=i!==void 0?(n=e._$Co)===null||n===void 0?void 0:n[i]:e._$Cl;const l=V(t)?void 0:t._$litDirective$;return(a==null?void 0:a.constructor)!==l&&((r=a==null?void 0:a._$AO)===null||r===void 0||r.call(a,!1),l===void 0?a=void 0:(a=new l(s),a._$AT(s,e,i)),i!==void 0?((o=(c=e)._$Co)!==null&&o!==void 0?o:c._$Co=[])[i]=a:e._$Cl=a),a!==void 0&&(t=x(s,a._$AS(s,t.values),a,i)),t}class ne{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var e;const{el:{content:i},parts:n}=this._$AD,r=((e=t==null?void 0:t.creationScope)!==null&&e!==void 0?e:T).importNode(i,!0);E.currentNode=r;let o=E.nextNode(),c=0,a=0,l=n[0];for(;l!==void 0;){if(c===l.index){let h;l.type===2?h=new L(o,o.nextSibling,this,t):l.type===1?h=new l.ctor(o,l.name,l.strings,this,t):l.type===6&&(h=new ae(o,this,t)),this._$AV.push(h),l=n[++a]}c!==(l==null?void 0:l.index)&&(o=E.nextNode(),c++)}return E.currentNode=T,r}v(t){let e=0;for(const i of this._$AV)i!==void 0&&(i.strings!==void 0?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class L{constructor(t,e,i,n){var r;this.type=2,this._$AH=y,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=n,this._$Cp=(r=n==null?void 0:n.isConnected)===null||r===void 0||r}get _$AU(){var t,e;return(e=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&e!==void 0?e:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return e!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=x(this,t,e),V(t)?t===y||t==null||t===""?(this._$AH!==y&&this._$AR(),this._$AH=y):t!==this._$AH&&t!==M&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):Qt(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==y&&V(this._$AH)?this._$AA.nextSibling.data=t:this.$(T.createTextNode(t)),this._$AH=t}g(t){var e;const{values:i,_$litType$:n}=t,r=typeof n=="number"?this._$AC(t):(n.el===void 0&&(n.el=B.createElement(ee(n.h,n.h[0]),this.options)),n);if(((e=this._$AH)===null||e===void 0?void 0:e._$AD)===r)this._$AH.v(i);else{const o=new ne(r,this),c=o.u(this.options);o.v(i),this.$(c),this._$AH=o}}_$AC(t){let e=Nt.get(t.strings);return e===void 0&&Nt.set(t.strings,e=new B(t)),e}T(t){Yt(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,n=0;for(const r of t)n===e.length?e.push(i=new L(this.k(H()),this.k(H()),this,this.options)):i=e[n],i._$AI(r),n++;n<e.length&&(this._$AR(i&&i._$AB.nextSibling,n),e.length=n)}_$AR(t=this._$AA.nextSibling,e){var i;for((i=this._$AP)===null||i===void 0||i.call(this,!1,!0,e);t&&t!==this._$AB;){const n=t.nextSibling;t.remove(),t=n}}setConnected(t){var e;this._$AM===void 0&&(this._$Cp=t,(e=this._$AP)===null||e===void 0||e.call(this,t))}}class F{constructor(t,e,i,n,r){this.type=1,this._$AH=y,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=r,i.length>2||i[0]!==""||i[1]!==""?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=y}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let o=!1;if(r===void 0)t=x(this,t,e,0),o=!V(t)||t!==this._$AH&&t!==M,o&&(this._$AH=t);else{const c=t;let a,l;for(t=r[0],a=0;a<r.length-1;a++)l=x(this,c[i+a],e,a),l===M&&(l=this._$AH[a]),o||(o=!V(l)||l!==this._$AH[a]),l===y?t=y:t!==y&&(t+=(l??"")+r[a+1]),this._$AH[a]=l}o&&!n&&this.j(t)}j(t){t===y?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class ie extends F{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===y?void 0:t}}const Ms=D?D.emptyScript:"";class re extends F{constructor(){super(...arguments),this.type=4}j(t){t&&t!==y?this.element.setAttribute(this.name,Ms):this.element.removeAttribute(this.name)}}class oe extends F{constructor(t,e,i,n,r){super(t,e,i,n,r),this.type=5}_$AI(t,e=this){var i;if((t=(i=x(this,t,e,0))!==null&&i!==void 0?i:y)===M)return;const n=this._$AH,r=t===y&&n!==y||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive,o=t!==y&&(n===y||r);r&&this.element.removeEventListener(this.name,this,n),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;typeof this._$AH=="function"?this._$AH.call((i=(e=this.options)===null||e===void 0?void 0:e.host)!==null&&i!==void 0?i:this.element,t):this._$AH.handleEvent(t)}}class ae{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){x(this,t)}}const xs={O:J,P:w,A:_t,C:1,M:se,L:ne,D:Qt,R:x,I:L,V:F,H:re,N:oe,U:ie,F:ae},Rt=K.litHtmlPolyfillSupport;Rt==null||Rt(B,L),((rt=K.litHtmlVersions)!==null&&rt!==void 0?rt:K.litHtmlVersions=[]).push("2.7.5");const Ds=(s,t,e)=>{var i,n;const r=(i=e==null?void 0:e.renderBefore)!==null&&i!==void 0?i:t;let o=r._$litPart$;if(o===void 0){const c=(n=e==null?void 0:e.renderBefore)!==null&&n!==void 0?n:null;r._$litPart$=o=new L(t.insertBefore(H(),c),c,void 0,e??{})}return o._$AI(s),o};/**
|
|
8
|
+
* @license
|
|
9
|
+
* Copyright 2017 Google LLC
|
|
10
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
+
*/const le={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ls=s=>(...t)=>({_$litDirective$:s,values:t});class ce{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}/**
|
|
12
|
+
* @license
|
|
13
|
+
* Copyright 2020 Google LLC
|
|
14
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
15
|
+
*/const{I:Is}=xs,Ot=()=>document.createComment(""),N=(s,t,e)=>{var i;const n=s._$AA.parentNode,r=t===void 0?s._$AB:t._$AA;if(e===void 0){const o=n.insertBefore(Ot(),r),c=n.insertBefore(Ot(),r);e=new Is(o,c,s,s.options)}else{const o=e._$AB.nextSibling,c=e._$AM,a=c!==s;if(a){let l;(i=e._$AQ)===null||i===void 0||i.call(e,s),e._$AM=s,e._$AP!==void 0&&(l=s._$AU)!==c._$AU&&e._$AP(l)}if(o!==r||a){let l=e._$AA;for(;l!==o;){const h=l.nextSibling;n.insertBefore(l,r),l=h}}}return e},S=(s,t,e=s)=>(s._$AI(t,e),s),Ps={},Ns=(s,t=Ps)=>s._$AH=t,Rs=s=>s._$AH,at=s=>{var t;(t=s._$AP)===null||t===void 0||t.call(s,!1,!0);let e=s._$AA;const i=s._$AB.nextSibling;for(;e!==i;){const n=e.nextSibling;e.remove(),e=n}};/**
|
|
16
|
+
* @license
|
|
17
|
+
* Copyright 2017 Google LLC
|
|
18
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
19
|
+
*/const kt=(s,t,e)=>{const i=new Map;for(let n=t;n<=e;n++)i.set(s[n],n);return i},de=Ls(class extends ce{constructor(s){if(super(s),s.type!==le.CHILD)throw Error("repeat() can only be used in text expressions")}dt(s,t,e){let i;e===void 0?e=t:t!==void 0&&(i=t);const n=[],r=[];let o=0;for(const c of s)n[o]=i?i(c,o):o,r[o]=e(c,o),o++;return{values:r,keys:n}}render(s,t,e){return this.dt(s,t,e).values}update(s,[t,e,i]){var n;const r=Rs(s),{values:o,keys:c}=this.dt(t,e,i);if(!Array.isArray(r))return this.ht=c,o;const a=(n=this.ht)!==null&&n!==void 0?n:this.ht=[],l=[];let h,d,u=0,p=r.length-1,f=0,m=o.length-1;for(;u<=p&&f<=m;)if(r[u]===null)u++;else if(r[p]===null)p--;else if(a[u]===c[f])l[f]=S(r[u],o[f]),u++,f++;else if(a[p]===c[m])l[m]=S(r[p],o[m]),p--,m--;else if(a[u]===c[m])l[m]=S(r[u],o[m]),N(s,l[m+1],r[u]),u++,m--;else if(a[p]===c[f])l[f]=S(r[p],o[f]),N(s,r[u],r[p]),p--,f++;else if(h===void 0&&(h=kt(c,f,m),d=kt(a,u,p)),h.has(a[u]))if(h.has(a[p])){const g=d.get(c[f]),U=g!==void 0?r[g]:null;if(U===null){const Y=N(s,r[u]);S(Y,o[f]),l[f]=Y}else l[f]=S(U,o[f]),N(s,r[u],U),r[g]=null;f++}else at(r[p]),p--;else at(r[u]),u++;for(;f<=m;){const g=N(s,l[m+1]);S(g,o[f]),l[f++]=g}for(;u<=p;){const g=r[u++];g!==null&&at(g)}return this.ht=c,Ns(s,l),M}});/**
|
|
20
|
+
* @license
|
|
21
|
+
* Copyright 2018 Google LLC
|
|
22
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
23
|
+
*/const A=s=>s??y;/**
|
|
24
|
+
* @license
|
|
25
|
+
* Copyright 2017 Google LLC
|
|
26
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
27
|
+
*/class Ht extends ce{constructor(t){if(super(t),this.et=y,t.type!==le.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===y||t==null)return this.ft=void 0,this.et=t;if(t===M)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.ft;this.et=t;const e=[t];return e.raw=e,this.ft={_$litType$:this.constructor.resultType,strings:e,values:[]}}}Ht.directiveName="unsafeHTML",Ht.resultType=1;const _=(s,...t)=>{const e=X("LitStatic");return(e?e.html:Ts)(s,...t)},z=(s,t,e,i,n)=>{const r=X("OpenUI5Enablement");r&&!i&&(s=r.wrapTemplateResultInBusyMarkup(_,n.host,s)),typeof e=="string"?s=_`<style>${e}</style>${s}`:Array.isArray(e)&&e.length&&(s=_`${e.map(o=>_`<link type="text/css" rel="stylesheet" href="${o}">`)}${s}`),Ds(s,t,n)},Os={tag:"ui5-test-generic",properties:{strProp:{type:String},boolProp:{type:Boolean},objectProp:{type:Object},noAttributeProp:{type:String,noAttribute:!0},multiProp:{type:String,multiple:!0},defaultValueProp:{type:String,defaultValue:"Hello"}},managedSlots:!0,slots:{default:{type:Node},other:{type:HTMLElement},individual:{type:HTMLElement,individualSlots:!0},named:{type:HTMLElement,propertyName:"items"}}};class ue extends C{static get metadata(){return Os}static get render(){return z}static get template(){return t=>_`<div><p>
|
|
28
|
+
<slot></slot>
|
|
29
|
+
<slot name="other"></slot>
|
|
30
|
+
<slot name="individual-1"></slot>
|
|
31
|
+
<slot name="individual-2"></slot>
|
|
32
|
+
</p></div>`}static get styles(){return`:host {
|
|
33
|
+
display: inline-block;
|
|
34
|
+
border: 1px solid black;
|
|
35
|
+
color: var(--var1);
|
|
36
|
+
}`}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}ue.define();const ks={tag:"ui5-test-no-shadow"};class Hs extends C{static get metadata(){return ks}}Hs.define();const Vs={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,invalidateOnChildChange:{properties:["prop1"]}},items:{type:HTMLElement,invalidateOnChildChange:{properties:!0}}}};class Bs extends C{static get metadata(){return Vs}static get render(){return z}static get template(){return t=>_`<div>
|
|
37
|
+
<slot></slot>
|
|
38
|
+
</div>`}}Bs.define();const Fs={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};class zs extends C{static get metadata(){return Fs}static get render(){return z}static get template(){return t=>_`<div></div>`}}zs.define();const Us={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};class js extends C{static get metadata(){return Us}static get render(){return z}static get template(){return t=>_`
|
|
39
|
+
<div dir=${t.effectiveDir}>
|
|
40
|
+
WithStaticArea works!
|
|
41
|
+
</div>`}static get staticAreaTemplate(){return t=>_`
|
|
42
|
+
<div class="ui5-with-static-area-content">
|
|
43
|
+
Static area content.
|
|
44
|
+
</div>`}static get styles(){return`
|
|
45
|
+
:host {
|
|
46
|
+
display: inline-block;
|
|
47
|
+
border: 1px solid black;
|
|
48
|
+
color: red;
|
|
49
|
+
}`}async addStaticArea(){if(!this.staticContent)return;const t=await this.getStaticAreaItemDomRef();return this.responsivePopover=t.querySelector(".ui5-with-static-area-content"),this.responsivePopover}onBeforeRendering(){this.addStaticArea()}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}js.define();function Ws(s,t,e){return _`<div>Root text: ${A(this.text)}${de(this.items,(i,n)=>i._id||n,(i,n)=>qs.call(this,s,t,e,i,n))} Root text: ${A(this.text)}</div>`}function qs(s,t,e,i,n){return _`<h3>Item-${n}</h3>${i.text?Zs.call(this,s,t,e,i,n):void 0}<ul>${de(i.words,(r,o)=>r._id||o,(r,o)=>Gs.call(this,s,t,e,r,o))}</ul>${i.text?Ks.call(this,s,t,e,i,n):void 0}`}function Zs(s,t,e,i,n){return _`<div class="before-each-content--start--${n}">Root text: ${A(this.text)}, Item text: ${A(i.text)}</div>`}function Gs(s,t,e,i,n){return _`<li><h3>Word-${n}</h3><div class="nested-each-content--${n}--0">Root Text: ${A(this.text)}, Word text: ${A(i.text)}</div><div class="nested-each-content--${n}--1">Root Text: ${A(this.text)}, Word text: ${A(i.text)}</div></li>`}function Ks(s,t,e,i,n){return _`<div class="after-each-content--end--${n}">Root text: ${A(this.text)}, Item text: ${A(i.text)}</div>`}class Js extends C{static get metadata(){return{tag:"ui5-test-complex-template"}}static get render(){return z}static get template(){return Ws}get text(){return"root"}get items(){return[{text:"positives",words:[{text:"word1_good"},{text:"word2_nice"},{text:"word3_kind"}]},{text:"negatives",words:[{text:"word4_bad"},{text:"word5_rude"},{text:"word6_unpolite"}]}]}}Js.define();const Xs={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};class Ys extends ue{static get metadata(){return Xs}}Ys.define();const Qs={content:":root{ --var1: grey; }",packageName:"",fileName:""},tn={content:":root{ --var1: red; }",packageName:"",fileName:""},en={content:":root{ --var1: green; }",packageName:"",fileName:""},sn={content:":root{ --var1: blue; }",packageName:"",fileName:""},nn={content:":root{ --var1: orange; }",packageName:"",fileName:""},rn={content:":root{ --var1: orange; }",packageName:"",fileName:""},on={content:":root{ --var1: yellow; }",packageName:"",fileName:""},an={content:":root{ --var1: yellow; }",packageName:"",fileName:""};$("@ui5/webcomponents-base-test","sap_horizon",()=>Qs);$("@ui5/webcomponents-base-test","sap_fiori_3",()=>tn);$("@ui5/webcomponents-base-test","sap_fiori_3_dark",()=>en);$("@ui5/webcomponents-base-test","sap_belize",()=>sn);$("@ui5/webcomponents-base-test","sap_belize_hcb",()=>nn);$("@ui5/webcomponents-base-test","sap_belize_hcw",()=>rn);$("@ui5/webcomponents-base-test","sap_fiori_3_hcb",()=>on);$("@ui5/webcomponents-base-test","sap_fiori_3_hcw",()=>an);const ln=typeof window.chrome=="object"||typeof window.v8=="object"?(s,t)=>(t>2&&40*t>s.length,s):s=>s,cn=/(?:\r\n|\r|\n|^)[ \t\f]*/,dn=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)|([ \t\f]*[ \t\f:=][ \t\f]*)/g,un=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)/g,hn={"\\f":"\f","\\n":`
|
|
50
|
+
`,"\\r":"\r","\\t":" "},pn=s=>{const t={},e=s.split(cn);let i,n,r,o,c,a,l,h;const d=u=>{o?(o=`${o}${u}`,h++):(o=u,h=0)};for(c=0;c<e.length;c++)if(i=e[c],!(i===""||i.charAt(0)==="#"||i.charAt(0)==="!")){for(n=dn,l=0,n.lastIndex=l,r=null,o="",a=n.exec(i);a!==null;){if(l<a.index&&d(i.slice(l,a.index)),l=n.lastIndex,a[1]){if(a[1].length!==6)throw new Error(`Incomplete Unicode Escape '${a[1]}'`);d(String.fromCharCode(parseInt(a[1].slice(2),16)))}else a[2]?d(hn[a[2]]||a[2].slice(1)):a[3]?(i=e[++c],l=0,n.lastIndex=l):a[4]&&(r=o,o="",n=un,n.lastIndex=l);a=n.exec(i)}l<i.length&&d(i.slice(l)),r==null&&(r=o,o=""),t[r]=ln(o,o?h:0)}return t};let lt;const fn=()=>(lt===void 0&&(lt=Le()),lt);var gt;(function(s){s.Gregorian="Gregorian",s.Islamic="Islamic",s.Japanese="Japanese",s.Buddhist="Buddhist",s.Persian="Persian"})(gt||(gt={}));const Vt=gt;let R;const gn=()=>(R===void 0&&(R=Ie()),R&&R in Vt?R:Vt.Gregorian);let ct;class he{static getLegacyDateCalendarCustomizing(){return ct===void 0&&(ct=jt()),ct.legacyDateCalendarCustomizing||[]}}Bt("LegacyDateFormats",he);let dt;const mn=()=>(dt===void 0&&(dt=jt()),dt.firstDayOfWeek),yn=X("LegacyDateFormats"),vn=yn?he.getLegacyDateCalendarCustomizing:()=>[],_n=new k,An="directionChange",wn=()=>_n.fireEvent(An,void 0),$n=async()=>{const s=wn();await Promise.all(s),await Ft({rtlAware:!0})};window.registerThemePropertiesLoader=$;window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:fn,getLanguage:zt,setLanguage:Pe,getTheme:Ne,getThemeRoot:Re,setThemeRoot:Oe,setTheme:ut,getNoConflict:vt,setNoConflict:As,getCalendarType:gn,getRTL:Jt,getFirstDayOfWeek:mn,getLegacyDateCalendarCustomizing:vn},getCurrentRuntimeIndex:ke,getIconNames:He,parseProperties:pn,registerI18nLoader:Ve,getI18nBundle:je,renderFinished:Ut,applyDirection:$n,EventProvider:k};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as o,b as e,r as t}from"../../Boot-
|
|
1
|
+
import{a as o,b as e,r as t}from"../../Boot-45945c31.js";o(()=>{console.log("Listener1: after framework booted!")});e();const s={registerThemeProps:async()=>{t("@ui5/webcomponents-theming","sap_horizon",()=>({content:":root{ --customCol: #fff; --customBg: #000; }",packageName:"",fileName:""}))}};window["sap-ui-webcomponents-bundle"]=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../../Boot-
|
|
1
|
+
import"../../Boot-45945c31.js";import"../../bundle.esm-56f2cc97.js";const s=async()=>{["de","es","fr","en"].forEach(e=>window["sap-ui-webcomponents-bundle"].registerI18nLoader("myApp",e,()=>`./assets/messagebundle_${e}.properties`));const n=(await window["sap-ui-webcomponents-bundle"].getI18nBundle("myApp")).getText("PLEASE_WAIT");console.log("Please wait in the current language is: ",n)};s();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../../Boot-
|
|
1
|
+
import"../../Boot-45945c31.js";import"../../bundle.esm-56f2cc97.js";const a=async()=>{window["sap-ui-webcomponents-bundle"].configuration.setLanguage("fr");const s=["test_1","test_2","test_3","test_4","test_5","test_6","test_7","test_8","test_9"];window["sap-ui-webcomponents-bundle"].registerI18nLoader("myApp","fr",async e=>{const t=await(await fetch(`./assets/messagebundle_${e}.properties`)).text();return window["sap-ui-webcomponents-bundle"].parseProperties(t)});const r=await window["sap-ui-webcomponents-bundle"].getI18nBundle("myApp");s.forEach(e=>{const t=r.getText(e.toUpperCase(),"test"),n=document.getElementById(`${e}_text`);n.innerText=t}),s.forEach(e=>{const t=document.getElementById(`${e}_text`),n=document.getElementById(`${e}_result`);if(t.innerText!==n.innerText){const o=n.parentElement;o.style.textDecoration="underline",o.style.color="red"}})};a();
|
package/dist/css/FontFace.css
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
font-style: normal;
|
|
4
4
|
font-weight: 400;
|
|
5
5
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"), local("72");
|
|
6
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
@font-face {
|
|
@@ -10,7 +11,6 @@
|
|
|
10
11
|
font-style: normal;
|
|
11
12
|
font-weight: 400;
|
|
12
13
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"), local('72-full');
|
|
13
|
-
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
@font-face {
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
font-style: normal;
|
|
19
19
|
font-weight: 700;
|
|
20
20
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"), local('72-Bold');
|
|
21
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
@font-face {
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
font-family: '72-Bold';
|
|
32
33
|
font-style: normal;
|
|
33
34
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"), local('72-Bold');
|
|
35
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
@font-face {
|
|
@@ -43,6 +45,7 @@
|
|
|
43
45
|
font-family: '72-Light';
|
|
44
46
|
font-style: normal;
|
|
45
47
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Light.woff2?ui5-webcomponents) format("woff2"), local('72-Light');
|
|
48
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
@font-face {
|
|
@@ -54,6 +57,7 @@
|
|
|
54
57
|
@font-face {
|
|
55
58
|
font-family: '72Mono';
|
|
56
59
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Regular.woff2?ui5-webcomponents) format('woff2'), local('72Mono');
|
|
60
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
@font-face {
|
|
@@ -64,6 +68,7 @@
|
|
|
64
68
|
@font-face {
|
|
65
69
|
font-family: '72Mono-Bold';
|
|
66
70
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Bold.woff2?ui5-webcomponents) format('woff2'), local('72Mono-Bold');
|
|
71
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
@font-face {
|
|
@@ -76,9 +81,16 @@
|
|
|
76
81
|
font-style: bold;
|
|
77
82
|
font-weight: 900;
|
|
78
83
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2"), local('72Black');
|
|
84
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@font-face {
|
|
88
|
+
font-family: '72Blackfull';
|
|
89
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black-full.woff2?ui5-webcomponents) format('woff2');
|
|
79
90
|
}
|
|
80
91
|
|
|
81
92
|
@font-face {
|
|
82
93
|
font-family: "72-SemiboldDuplex";
|
|
83
94
|
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-SemiboldDuplex.woff2?ui5-webcomponents) format("woff2"), local('72-SemiboldDuplex');
|
|
95
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
84
96
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const assetParameters = {"themes":{"default":"sap_horizon","all":["sap_fiori_3","sap_fiori_3_dark","sap_belize","sap_belize_hcb","sap_belize_hcw","sap_fiori_3_hcb","sap_fiori_3_hcw","sap_horizon","sap_horizon_dark","sap_horizon_hcb","sap_horizon_hcw","sap_horizon_exp","sap_horizon_dark_exp","sap_horizon_hcb_exp","sap_horizon_hcw_exp"]},"languages":{"default":"en","all":["ar","bg","ca","cs","cy","da","de","el","en","en_GB","en_US_sappsd","en_US_saprigi","en_US_saptrc","es","es_MX","et","fi","fr","fr_CA","hi","hr","hu","in","it","iw","ja","kk","ko","lt","lv","ms","nl","no","pl","pt_PT","pt","ro","ru","sh","sk","sl","sv","th","tr","uk","vi","zh_CN","zh_TW"]},"locales":{"default":"en","all":["ar","ar_EG","ar_SA","bg","ca","cs","da","de","de_AT","de_CH","el","el_CY","en","en_AU","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PG","en_SG","en_ZA","es","es_AR","es_BO","es_CL","es_CO","es_MX","es_PE","es_UY","es_VE","et","fa","fi","fr","fr_BE","fr_CA","fr_CH","fr_LU","he","hi","hr","hu","id","it","it_CH","ja","kk","ko","lt","lv","ms","nb","nl","nl_BE","pl","pt","pt_PT","ro","ru","ru_UA","sk","sl","sr","sr_Latn","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"]}};
|
|
1
|
+
const assetParameters = {"themes":{"default":"sap_horizon","all":["sap_fiori_3","sap_fiori_3_dark","sap_belize","sap_belize_hcb","sap_belize_hcw","sap_fiori_3_hcb","sap_fiori_3_hcw","sap_horizon","sap_horizon_dark","sap_horizon_hcb","sap_horizon_hcw","sap_horizon_exp","sap_horizon_dark_exp","sap_horizon_hcb_exp","sap_horizon_hcw_exp"]},"languages":{"default":"en","all":["ar","bg","ca","cnr","cs","cy","da","de","el","en","en_GB","en_US_sappsd","en_US_saprigi","en_US_saptrc","es","es_MX","et","fi","fr","fr_CA","hi","hr","hu","in","it","iw","ja","kk","ko","lt","lv","mk","ms","nl","no","pl","pt_PT","pt","ro","ru","sh","sk","sl","sr","sv","th","tr","uk","vi","zh_CN","zh_TW"]},"locales":{"default":"en","all":["ar","ar_EG","ar_SA","bg","ca","cs","da","de","de_AT","de_CH","el","el_CY","en","en_AU","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PG","en_SG","en_ZA","es","es_AR","es_BO","es_CL","es_CO","es_MX","es_PE","es_UY","es_VE","et","fa","fi","fr","fr_BE","fr_CA","fr_CH","fr_LU","he","hi","hr","hu","id","it","it_CH","ja","kk","ko","lt","lv","ms","nb","nl","nl_BE","pl","pt","pt_PT","ro","ru","ru_UA","sk","sl","sr","sr_Latn","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"]}};
|
|
2
2
|
|
|
3
3
|
const DEFAULT_THEME = assetParameters.themes.default;
|
|
4
4
|
const SUPPORTED_THEMES = assetParameters.themes.all;
|