@lwc/shared
Advanced tools
+8
-3
@@ -747,3 +747,8 @@ /** | ||
| */ | ||
| const DISALLOWED_PROP_SET = /*@__PURE__@*/ new Set(['is', 'class', 'slot', 'style']); | ||
| const DISALLOWED_PROP_SET = /*@__PURE__@*/ new Set([ | ||
| 'is', | ||
| 'class', | ||
| 'slot', | ||
| 'style', | ||
| ]); | ||
@@ -780,3 +785,3 @@ /* | ||
| // Increment whenever the LWC template compiler changes | ||
| const LWC_VERSION = "8.28.2"; | ||
| const LWC_VERSION = "9.0.0"; | ||
| const LWC_VERSION_COMMENT = `LWC compiler v${LWC_VERSION}`; | ||
@@ -1002,3 +1007,3 @@ const LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/; | ||
| export { AMBIGUOUS_PROP_SET, AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap, ArrayConcat, ArrayCopyWithin, ArrayEvery, ArrayFill, ArrayFilter, ArrayFind, ArrayFindIndex, ArrayFrom, ArrayIncludes, ArrayIndexOf, ArrayJoin, ArrayMap, ArrayPop, ArrayPush, ArrayReduce, ArrayReverse, ArrayShift, ArraySlice, ArraySome, ArraySort, ArraySplice, ArrayUnshift, ContextEventName, DEFAULT_SSR_MODE, DISALLOWED_PROP_SET, HIGHEST_API_VERSION, HTML_NAMESPACE, ID_REFERENCING_ATTRIBUTES_SET, IMPORTANT_FLAG, KEY__LEGACY_SHADOW_TOKEN, KEY__LEGACY_SHADOW_TOKEN_PRIVATE, KEY__NATIVE_GET_ELEMENT_BY_ID, KEY__NATIVE_ONLY_CSS, KEY__NATIVE_QUERY_SELECTOR_ALL, KEY__SCOPED_CSS, KEY__SHADOW_RESOLVER, KEY__SHADOW_RESOLVER_PRIVATE, KEY__SHADOW_STATIC, KEY__SHADOW_STATIC_PRIVATE, KEY__SHADOW_TOKEN, KEY__SHADOW_TOKEN_PRIVATE, KEY__SYNTHETIC_MODE, LOWEST_API_VERSION, LWC_VERSION, LWC_VERSION_COMMENT, LWC_VERSION_COMMENT_REGEX, MATHML_NAMESPACE, REFLECTIVE_GLOBAL_PROPERTY_SET, SPECIAL_PROPERTY_ATTRIBUTE_MAPPING, SVG_NAMESPACE, StringCharAt, StringCharCodeAt, StringFromCharCode, StringReplace, StringSlice, StringSplit, StringToLowerCase, StringTrim, XLINK_NAMESPACE, XML_NAMESPACE, addTrustedContext, addTrustedSignal, arrayEvery, assert, assign, create, defineProperties, defineProperty, entries, flattenStylesheets, forEach, freeze, fromEntries, generateCustomElementTagName, getAPIVersionFromNumber, getContextKeys, getOwnPropertyDescriptor, getOwnPropertyDescriptors, getOwnPropertyNames, getOwnPropertySymbols, getPropertyDescriptor, getPrototypeOf, hasOwnProperty, htmlEscape, htmlPropertyToAttribute, isAPIFeatureEnabled, isAriaAttribute, isArray, isBoolean, isBooleanAttribute, isFalse, isFrozen, isFunction, isGlobalHtmlAttribute, isNull, isNumber, isObject, isString, isTrue, isTrustedContext, isTrustedSignal, isUndefined, isVoidElement, kebabCaseToCamelCase, keys, legacyIsTrustedSignal, minApiVersion, noop, normalizeClass, normalizeStyleAttributeValue, normalizeTabIndex, parseStyleText, sanitizeHtmlContent, seal, setContextKeys, setHooks, setPrototypeOf, setTrustedContextSet, setTrustedSignalSet, toString }; | ||
| /** version: 8.28.2 */ | ||
| /** version: 9.0.0 */ | ||
| //# sourceMappingURL=index.js.map |
+6
-2
@@ -7,3 +7,3 @@ { | ||
| "name": "@lwc/shared", | ||
| "version": "8.28.2", | ||
| "version": "9.0.0", | ||
| "description": "Utilities and methods that are shared across packages", | ||
@@ -23,9 +23,13 @@ "keywords": [ | ||
| "license": "MIT", | ||
| "type": "module", | ||
| "publishConfig": { | ||
| "access": "public" | ||
| }, | ||
| "engines": { | ||
| "node": ">=16.6.0" | ||
| }, | ||
| "volta": { | ||
| "extends": "../../../package.json" | ||
| }, | ||
| "main": "dist/index.cjs.js", | ||
| "main": "dist/index.js", | ||
| "module": "dist/index.js", | ||
@@ -32,0 +36,0 @@ "types": "dist/index.d.ts", |
-1127
| /** | ||
| * Copyright (c) 2026 Salesforce, Inc. | ||
| */ | ||
| 'use strict'; | ||
| Object.defineProperty(exports, '__esModule', { value: true }); | ||
| /* | ||
| * Copyright (c) 2018, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| /** | ||
| * | ||
| * @param value | ||
| * @param msg | ||
| */ | ||
| function invariant(value, msg) { | ||
| if (!value) { | ||
| throw new Error(`Invariant Violation: ${msg}`); | ||
| } | ||
| } | ||
| /** | ||
| * | ||
| * @param value | ||
| * @param msg | ||
| */ | ||
| function isTrue$1(value, msg) { | ||
| if (!value) { | ||
| throw new Error(`Assert Violation: ${msg}`); | ||
| } | ||
| } | ||
| /** | ||
| * | ||
| * @param value | ||
| * @param msg | ||
| */ | ||
| function isFalse$1(value, msg) { | ||
| if (value) { | ||
| throw new Error(`Assert Violation: ${msg}`); | ||
| } | ||
| } | ||
| /** | ||
| * | ||
| * @param msg | ||
| */ | ||
| function fail(msg) { | ||
| throw new Error(msg); | ||
| } | ||
| var assert = /*#__PURE__*/Object.freeze({ | ||
| __proto__: null, | ||
| fail: fail, | ||
| invariant: invariant, | ||
| isFalse: isFalse$1, | ||
| isTrue: isTrue$1 | ||
| }); | ||
| /* | ||
| * Copyright (c) 2024, Salesforce, Inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| const { | ||
| /** Detached {@linkcode Object.assign}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign MDN Reference}. */ | ||
| assign, | ||
| /** Detached {@linkcode Object.create}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create MDN Reference}. */ | ||
| create, | ||
| /** Detached {@linkcode Object.defineProperties}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties MDN Reference}. */ | ||
| defineProperties, | ||
| /** Detached {@linkcode Object.defineProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty MDN Reference}. */ | ||
| defineProperty, | ||
| /** Detached {@linkcode Object.entries}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries MDN Reference}. */ | ||
| entries, | ||
| /** Detached {@linkcode Object.freeze}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze MDN Reference}. */ | ||
| freeze, | ||
| /** Detached {@linkcode Object.fromEntries}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries MDN Reference}. */ | ||
| fromEntries, | ||
| /** Detached {@linkcode Object.getOwnPropertyDescriptor}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor MDN Reference}. */ | ||
| getOwnPropertyDescriptor, | ||
| /** Detached {@linkcode Object.getOwnPropertyDescriptors}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors MDN Reference}. */ | ||
| getOwnPropertyDescriptors, | ||
| /** Detached {@linkcode Object.getOwnPropertyNames}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames MDN Reference}. */ | ||
| getOwnPropertyNames, | ||
| /** Detached {@linkcode Object.getOwnPropertySymbols}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols MDN Reference}. */ | ||
| getOwnPropertySymbols, | ||
| /** Detached {@linkcode Object.getPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf MDN Reference}. */ | ||
| getPrototypeOf, | ||
| /** Detached {@linkcode Object.hasOwnProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty MDN Reference}. */ | ||
| hasOwnProperty, | ||
| /** Detached {@linkcode Object.isFrozen}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen MDN Reference}. */ | ||
| isFrozen, | ||
| /** Detached {@linkcode Object.keys}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys MDN Reference}. */ | ||
| keys, | ||
| /** Detached {@linkcode Object.seal}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal MDN Reference}. */ | ||
| seal, | ||
| /** Detached {@linkcode Object.setPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf MDN Reference}. */ | ||
| setPrototypeOf, } = Object; | ||
| const { | ||
| /** Detached {@linkcode Array.isArray}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray MDN Reference}. */ | ||
| isArray, | ||
| /** Detached {@linkcode Array.from}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from MDN Reference}. */ | ||
| from: ArrayFrom, } = Array; | ||
| // For some reason, JSDoc don't get picked up for multiple renamed destructured constants (even | ||
| // though it works fine for one, e.g. isArray), so comments for these are added to the export | ||
| // statement, rather than this declaration. | ||
| const { concat: ArrayConcat, copyWithin: ArrayCopyWithin, every: ArrayEvery, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, includes: ArrayIncludes, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, // Weird anomaly! | ||
| } = Array.prototype; | ||
| // The type of the return value of Array.prototype.every is `this is T[]`. However, once this | ||
| // Array method is pulled out of the prototype, the function is now referencing `this` where | ||
| // `this` is meaningless, resulting in a TypeScript compilation error. | ||
| // | ||
| // Exposing this helper function is the closest we can get to preserving the usage patterns | ||
| // of Array.prototype methods used elsewhere in the codebase. | ||
| /** | ||
| * Wrapper for {@linkcode Array.prototype.every} that correctly preserves the type predicate in the | ||
| * return value; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every MDN Reference}. | ||
| * @param arr Array to test. | ||
| * @param predicate A function to execute for each element of the array. | ||
| * @returns Whether all elements in the array pass the test provided by the predicate. | ||
| */ | ||
| function arrayEvery(arr, predicate) { | ||
| return ArrayEvery.call(arr, predicate); | ||
| } | ||
| /** Detached {@linkcode String.fromCharCode}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode MDN Reference}. */ | ||
| const { fromCharCode: StringFromCharCode } = String; | ||
| // No JSDocs here - see comment for Array.prototype | ||
| const { charAt: StringCharAt, charCodeAt: StringCharCodeAt, replace: StringReplace, split: StringSplit, slice: StringSlice, toLowerCase: StringToLowerCase, trim: StringTrim, } = String.prototype; | ||
| /** | ||
| * Determines whether the argument is `undefined`. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is `undefined`. | ||
| */ | ||
| function isUndefined(obj) { | ||
| return obj === undefined; | ||
| } | ||
| /** | ||
| * Determines whether the argument is `null`. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is `null`. | ||
| */ | ||
| function isNull(obj) { | ||
| return obj === null; | ||
| } | ||
| /** | ||
| * Determines whether the argument is `true`. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is `true`. | ||
| */ | ||
| function isTrue(obj) { | ||
| return obj === true; | ||
| } | ||
| /** | ||
| * Determines whether the argument is `false`. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is `false`. | ||
| */ | ||
| function isFalse(obj) { | ||
| return obj === false; | ||
| } | ||
| /** | ||
| * Determines whether the argument is a boolean. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is a boolean. | ||
| */ | ||
| function isBoolean(obj) { | ||
| return typeof obj === 'boolean'; | ||
| } | ||
| /** | ||
| * Determines whether the argument is a function. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is a function. | ||
| */ | ||
| // Replacing `Function` with a narrower type that works for all our use cases is tricky... | ||
| // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type | ||
| function isFunction(obj) { | ||
| return typeof obj === 'function'; | ||
| } | ||
| /** | ||
| * Determines whether the argument is an object or null. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is an object or null. | ||
| */ | ||
| function isObject(obj) { | ||
| return typeof obj === 'object'; | ||
| } | ||
| /** | ||
| * Determines whether the argument is a string. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is a string. | ||
| */ | ||
| function isString(obj) { | ||
| return typeof obj === 'string'; | ||
| } | ||
| /** | ||
| * Determines whether the argument is a number. | ||
| * @param obj Value to test | ||
| * @returns `true` if the value is a number. | ||
| */ | ||
| function isNumber(obj) { | ||
| return typeof obj === 'number'; | ||
| } | ||
| /** Does nothing! 🚀 */ | ||
| function noop() { | ||
| /* Do nothing */ | ||
| } | ||
| const OtS = {}.toString; | ||
| /** | ||
| * Converts the argument to a string, safely accounting for objects with "null" prototype. | ||
| * Note that `toString(null)` returns `"[object Null]"` rather than `"null"`. | ||
| * @param obj Value to convert to a string. | ||
| * @returns String representation of the value. | ||
| */ | ||
| function toString(obj) { | ||
| if (obj?.toString) { | ||
| // Arrays might hold objects with "null" prototype So using | ||
| // Array.prototype.toString directly will cause an error Iterate through | ||
| // all the items and handle individually. | ||
| if (isArray(obj)) { | ||
| // This behavior is slightly different from Array#toString: | ||
| // 1. Array#toString calls `this.join`, rather than Array#join | ||
| // Ex: arr = []; arr.join = () => 1; arr.toString() === 1; toString(arr) === '' | ||
| // 2. Array#toString delegates to Object#toString if `this.join` is not a function | ||
| // Ex: arr = []; arr.join = 'no'; arr.toString() === '[object Array]; toString(arr) = '' | ||
| // 3. Array#toString converts null/undefined to '' | ||
| // Ex: arr = [null, undefined]; arr.toString() === ','; toString(arr) === '[object Null],undefined' | ||
| // 4. Array#toString converts recursive references to arrays to '' | ||
| // Ex: arr = [1]; arr.push(arr, 2); arr.toString() === '1,,2'; toString(arr) throws | ||
| // Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString | ||
| return ArrayJoin.call(ArrayMap.call(obj, toString), ','); | ||
| } | ||
| return obj.toString(); | ||
| } | ||
| else if (typeof obj === 'object') { | ||
| // This catches null and returns "[object Null]". Weird, but kept for backwards compatibility. | ||
| return OtS.call(obj); | ||
| } | ||
| else { | ||
| return String(obj); | ||
| } | ||
| } | ||
| /** | ||
| * Gets the property descriptor for the given object and property key. Similar to | ||
| * {@linkcode Object.getOwnPropertyDescriptor}, but looks up the prototype chain. | ||
| * @param o Value to get the property descriptor for | ||
| * @param p Property key to get the descriptor for | ||
| * @returns The property descriptor for the given object and property key. | ||
| */ | ||
| function getPropertyDescriptor(o, p) { | ||
| do { | ||
| const d = getOwnPropertyDescriptor(o, p); | ||
| if (!isUndefined(d)) { | ||
| return d; | ||
| } | ||
| o = getPrototypeOf(o); | ||
| } while (o !== null); | ||
| } | ||
| /* | ||
| * Copyright (c) 2023, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| // These must be updated when the enum is updated. | ||
| // It's a bit annoying to do have to do this manually, but this makes the file tree-shakeable, | ||
| // passing the `verify-treeshakeable.js` test. | ||
| const allVersions = [ | ||
| 58 /* APIVersion.V58_244_SUMMER_23 */, | ||
| 59 /* APIVersion.V59_246_WINTER_24 */, | ||
| 60 /* APIVersion.V60_248_SPRING_24 */, | ||
| 61 /* APIVersion.V61_250_SUMMER_24 */, | ||
| 62 /* APIVersion.V62_252_WINTER_25 */, | ||
| 63 /* APIVersion.V63_254_SPRING_25 */, | ||
| 64 /* APIVersion.V64_256_SUMMER_25 */, | ||
| 65 /* APIVersion.V65_258_WINTER_26 */, | ||
| 66 /* APIVersion.V66_260_SPRING_26 */, | ||
| ]; | ||
| const allVersionsSet = /*@__PURE__@*/ new Set(allVersions); | ||
| const LOWEST_API_VERSION = allVersions[0]; | ||
| const HIGHEST_API_VERSION = allVersions[allVersions.length - 1]; | ||
| /** | ||
| * | ||
| * @param version | ||
| */ | ||
| function getAPIVersionFromNumber(version) { | ||
| if (!isNumber(version)) { | ||
| // if version is unspecified, default to latest | ||
| return HIGHEST_API_VERSION; | ||
| } | ||
| if (allVersionsSet.has(version)) { | ||
| return version; | ||
| } | ||
| if (version < LOWEST_API_VERSION) { | ||
| return LOWEST_API_VERSION; | ||
| } | ||
| // If it's a number, and it's within the bounds of our known versions, then we should find the | ||
| // highest version lower than the requested number. | ||
| // For instance, if we know about versions 1, 2, 5, and 6, and the user requests 3, then we should return 2. | ||
| for (let i = 1; i < allVersions.length; i++) { | ||
| if (allVersions[i] > version) { | ||
| return allVersions[i - 1]; | ||
| } | ||
| } | ||
| // version > HIGHEST_API_VERSION, so fall back to highest | ||
| return HIGHEST_API_VERSION; | ||
| } | ||
| /** | ||
| * @param apiVersionFeature | ||
| */ | ||
| function minApiVersion(apiVersionFeature) { | ||
| switch (apiVersionFeature) { | ||
| case 0 /* APIFeature.LOWERCASE_SCOPE_TOKENS */: | ||
| case 1 /* APIFeature.TREAT_ALL_PARSE5_ERRORS_AS_ERRORS */: | ||
| return 59 /* APIVersion.V59_246_WINTER_24 */; | ||
| case 3 /* APIFeature.DISABLE_OBJECT_REST_SPREAD_TRANSFORMATION */: | ||
| case 4 /* APIFeature.SKIP_UNNECESSARY_REGISTER_DECORATORS */: | ||
| case 5 /* APIFeature.USE_COMMENTS_FOR_FRAGMENT_BOOKENDS */: | ||
| case 2 /* APIFeature.USE_FRAGMENTS_FOR_LIGHT_DOM_SLOTS */: | ||
| return 60 /* APIVersion.V60_248_SPRING_24 */; | ||
| case 7 /* APIFeature.ENABLE_ELEMENT_INTERNALS_AND_FACE */: | ||
| case 6 /* APIFeature.USE_LIGHT_DOM_SLOT_FORWARDING */: | ||
| return 61 /* APIVersion.V61_250_SUMMER_24 */; | ||
| case 8 /* APIFeature.ENABLE_THIS_DOT_HOST_ELEMENT */: | ||
| case 9 /* APIFeature.ENABLE_THIS_DOT_STYLE */: | ||
| case 10 /* APIFeature.TEMPLATE_CLASS_NAME_OBJECT_BINDING */: | ||
| return 62 /* APIVersion.V62_252_WINTER_25 */; | ||
| case 11 /* APIFeature.ENABLE_COMPLEX_TEMPLATE_EXPRESSIONS */: | ||
| return 66 /* APIVersion.V66_260_SPRING_26 */; | ||
| } | ||
| } | ||
| /** | ||
| * | ||
| * @param apiVersionFeature | ||
| * @param apiVersion | ||
| */ | ||
| function isAPIFeatureEnabled(apiVersionFeature, apiVersion) { | ||
| return apiVersion >= minApiVersion(apiVersionFeature); | ||
| } | ||
| /* | ||
| * Copyright (c) 2018, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| /** | ||
| * According to the following list, there are 48 aria attributes of which two (ariaDropEffect and | ||
| * ariaGrabbed) are deprecated: | ||
| * https://www.w3.org/TR/wai-aria-1.1/#x6-6-definitions-of-states-and-properties-all-aria-attributes | ||
| * | ||
| * The above list of 46 aria attributes is consistent with the following resources: | ||
| * https://github.com/w3c/aria/pull/708/files#diff-eacf331f0ffc35d4b482f1d15a887d3bR11060 | ||
| * https://wicg.github.io/aom/spec/aria-reflection.html | ||
| * | ||
| * NOTE: If you update this list, please update test files that implicitly reference this list! | ||
| * Searching the codebase for `aria-flowto` and `ariaFlowTo` should be good enough to find all usages. | ||
| */ | ||
| const AriaPropertyNames = [ | ||
| 'ariaActiveDescendant', | ||
| 'ariaAtomic', | ||
| 'ariaAutoComplete', | ||
| 'ariaBusy', | ||
| 'ariaChecked', | ||
| 'ariaColCount', | ||
| 'ariaColIndex', | ||
| 'ariaColIndexText', | ||
| 'ariaColSpan', | ||
| 'ariaControls', | ||
| 'ariaCurrent', | ||
| 'ariaDescribedBy', | ||
| 'ariaDescription', | ||
| 'ariaDetails', | ||
| 'ariaDisabled', | ||
| 'ariaErrorMessage', | ||
| 'ariaExpanded', | ||
| 'ariaFlowTo', | ||
| 'ariaHasPopup', | ||
| 'ariaHidden', | ||
| 'ariaInvalid', | ||
| 'ariaKeyShortcuts', | ||
| 'ariaLabel', | ||
| 'ariaLabelledBy', | ||
| 'ariaLevel', | ||
| 'ariaLive', | ||
| 'ariaModal', | ||
| 'ariaMultiLine', | ||
| 'ariaMultiSelectable', | ||
| 'ariaOrientation', | ||
| 'ariaOwns', | ||
| 'ariaPlaceholder', | ||
| 'ariaPosInSet', | ||
| 'ariaPressed', | ||
| 'ariaReadOnly', | ||
| 'ariaRelevant', | ||
| 'ariaRequired', | ||
| 'ariaRoleDescription', | ||
| 'ariaRowCount', | ||
| 'ariaRowIndex', | ||
| 'ariaRowIndexText', | ||
| 'ariaRowSpan', | ||
| 'ariaSelected', | ||
| 'ariaSetSize', | ||
| 'ariaSort', | ||
| 'ariaValueMax', | ||
| 'ariaValueMin', | ||
| 'ariaValueNow', | ||
| 'ariaValueText', | ||
| 'ariaBrailleLabel', | ||
| 'ariaBrailleRoleDescription', | ||
| 'role', | ||
| ]; | ||
| const { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap } = /*@__PURE__*/ (() => { | ||
| const AriaAttrNameToPropNameMap = create(null); | ||
| const AriaPropNameToAttrNameMap = create(null); | ||
| // Synthetic creation of all AOM property descriptors for Custom Elements | ||
| forEach.call(AriaPropertyNames, (propName) => { | ||
| const attrName = StringToLowerCase.call(StringReplace.call(propName, /^aria/, () => 'aria-')); | ||
| // These type assertions are because the map types are a 1:1 mapping of ariaX to aria-x. | ||
| // TypeScript knows we have one of ariaX | ariaY and one of aria-x | aria-y, and tries to | ||
| // prevent us from doing ariaX: aria-y, but we that it's safe. | ||
| AriaAttrNameToPropNameMap[attrName] = propName; | ||
| AriaPropNameToAttrNameMap[propName] = attrName; | ||
| }); | ||
| return { AriaAttrNameToPropNameMap, AriaPropNameToAttrNameMap }; | ||
| })(); | ||
| /** | ||
| * | ||
| * @param attrName | ||
| */ | ||
| function isAriaAttribute(attrName) { | ||
| return attrName in AriaAttrNameToPropNameMap; | ||
| } | ||
| // These attributes take either an ID or a list of IDs as values. | ||
| // This includes aria-* attributes as well as the special non-ARIA "for" attribute | ||
| const ID_REFERENCING_ATTRIBUTES_SET = /*@__PURE__*/ new Set([ | ||
| 'aria-activedescendant', | ||
| 'aria-controls', | ||
| 'aria-describedby', | ||
| 'aria-details', | ||
| 'aria-errormessage', | ||
| 'aria-flowto', | ||
| 'aria-labelledby', | ||
| 'aria-owns', | ||
| 'for', | ||
| 'popovertarget', | ||
| ]); | ||
| /* | ||
| * Copyright (c) 2024, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| const ContextEventName = 'lightning:context-request'; | ||
| let trustedContext; | ||
| let contextKeys; | ||
| function setContextKeys(config) { | ||
| isFalse$1(contextKeys, '`setContextKeys` cannot be called more than once'); | ||
| contextKeys = config; | ||
| } | ||
| function getContextKeys() { | ||
| return contextKeys; | ||
| } | ||
| function setTrustedContextSet(context) { | ||
| isFalse$1(trustedContext, 'Trusted Context Set is already set!'); | ||
| trustedContext = context; | ||
| } | ||
| function addTrustedContext(contextParticipant) { | ||
| // This should be a no-op when the trustedSignals set isn't set by runtime | ||
| trustedContext?.add(contextParticipant); | ||
| } | ||
| function isTrustedContext(target) { | ||
| if (!trustedContext) { | ||
| // The runtime didn't set a trustedContext set | ||
| // this check should only be performed for runtimes that care about filtering context participants to track | ||
| return true; | ||
| } | ||
| return trustedContext.has(target); | ||
| } | ||
| /* | ||
| * Copyright (c) 2023, Salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| const KEY__SHADOW_RESOLVER = '$shadowResolver$'; | ||
| const KEY__SHADOW_RESOLVER_PRIVATE = '$$ShadowResolverKey$$'; | ||
| const KEY__SHADOW_STATIC = '$shadowStaticNode$'; | ||
| const KEY__SHADOW_STATIC_PRIVATE = '$shadowStaticNodeKey$'; | ||
| const KEY__SHADOW_TOKEN = '$shadowToken$'; | ||
| const KEY__SHADOW_TOKEN_PRIVATE = '$$ShadowTokenKey$$'; | ||
| // TODO [#3733]: remove support for legacy scope tokens | ||
| const KEY__LEGACY_SHADOW_TOKEN = '$legacyShadowToken$'; | ||
| const KEY__LEGACY_SHADOW_TOKEN_PRIVATE = '$$LegacyShadowTokenKey$$'; | ||
| const KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode'; | ||
| const KEY__SCOPED_CSS = '$scoped$'; | ||
| const KEY__NATIVE_ONLY_CSS = '$nativeOnly$'; | ||
| const KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$'; | ||
| const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$'; | ||
| /* | ||
| * Copyright (c) 2022, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml'; | ||
| const XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'; | ||
| const SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; | ||
| const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML'; | ||
| const XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink'; | ||
| /* | ||
| * Copyright (c) 2020, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| // Void elements are elements that self-close even without an explicit solidus (slash), | ||
| // e.g. `</tagName>` or `<tagName />`. For instance, `<meta>` closes on its own; no need for a slash. | ||
| // These only come from HTML; there are no void elements in the SVG or MathML namespaces. | ||
| // See: https://html.spec.whatwg.org/multipage/syntax.html#syntax-tags | ||
| const VOID_ELEMENTS = [ | ||
| 'area', | ||
| 'base', | ||
| 'br', | ||
| 'col', | ||
| 'embed', | ||
| 'hr', | ||
| 'img', | ||
| 'input', | ||
| 'link', | ||
| 'meta', | ||
| 'source', | ||
| 'track', | ||
| 'wbr', | ||
| ]; | ||
| // These elements have been deprecated but preserving their usage for backwards compatibility | ||
| // until we can officially deprecate them from LWC. | ||
| // See: https://html.spec.whatwg.org/multipage/obsolete.html#obsolete-but-conforming-features | ||
| const DEPRECATED_VOID_ELEMENTS = ['param', 'keygen', 'menuitem']; | ||
| const VOID_ELEMENTS_SET = /*@__PURE__*/ new Set([...VOID_ELEMENTS, ...DEPRECATED_VOID_ELEMENTS]); | ||
| /** | ||
| * | ||
| * @param name | ||
| * @param namespace | ||
| */ | ||
| function isVoidElement(name, namespace) { | ||
| return namespace === HTML_NAMESPACE && VOID_ELEMENTS_SET.has(name.toLowerCase()); | ||
| } | ||
| /* | ||
| * Copyright (c) 2020, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| const CAMEL_REGEX = /-([a-z])/g; | ||
| /** | ||
| * Maps boolean attribute name to supported tags: 'boolean attr name' => Set of allowed tag names | ||
| * that supports them. | ||
| */ | ||
| const BOOLEAN_ATTRIBUTES = /*@__PURE__@*/ new Map([ | ||
| ['autofocus', /*@__PURE__@*/ new Set(['button', 'input', 'keygen', 'select', 'textarea'])], | ||
| ['autoplay', /*@__PURE__@*/ new Set(['audio', 'video'])], | ||
| ['checked', /*@__PURE__@*/ new Set(['command', 'input'])], | ||
| [ | ||
| 'disabled', | ||
| /*@__PURE__@*/ new Set([ | ||
| 'button', | ||
| 'command', | ||
| 'fieldset', | ||
| 'input', | ||
| 'keygen', | ||
| 'optgroup', | ||
| 'select', | ||
| 'textarea', | ||
| ]), | ||
| ], | ||
| ['formnovalidate', /*@__PURE__@*/ new Set(['button'])], // button[type=submit] | ||
| ['hidden', /*@__PURE__@*/ new Set()], // Global attribute | ||
| ['loop', /*@__PURE__@*/ new Set(['audio', 'bgsound', 'marquee', 'video'])], | ||
| ['multiple', /*@__PURE__@*/ new Set(['input', 'select'])], | ||
| ['muted', /*@__PURE__@*/ new Set(['audio', 'video'])], | ||
| ['novalidate', /*@__PURE__@*/ new Set(['form'])], | ||
| ['open', /*@__PURE__@*/ new Set(['details'])], | ||
| ['readonly', /*@__PURE__@*/ new Set(['input', 'textarea'])], | ||
| ['readonly', /*@__PURE__@*/ new Set(['input', 'textarea'])], | ||
| ['required', /*@__PURE__@*/ new Set(['input', 'select', 'textarea'])], | ||
| ['reversed', /*@__PURE__@*/ new Set(['ol'])], | ||
| ['selected', /*@__PURE__@*/ new Set(['option'])], | ||
| ]); | ||
| /** | ||
| * | ||
| * @param attrName | ||
| * @param tagName | ||
| */ | ||
| function isBooleanAttribute(attrName, tagName) { | ||
| const allowedTagNames = BOOLEAN_ATTRIBUTES.get(attrName); | ||
| return (allowedTagNames !== undefined && | ||
| (allowedTagNames.size === 0 || allowedTagNames.has(tagName))); | ||
| } | ||
| // This list is based on https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes | ||
| const GLOBAL_ATTRIBUTE = /*@__PURE__*/ new Set([ | ||
| 'accesskey', | ||
| 'autocapitalize', | ||
| 'autofocus', | ||
| 'class', | ||
| 'contenteditable', | ||
| 'dir', | ||
| 'draggable', | ||
| 'enterkeyhint', | ||
| 'exportparts', | ||
| 'hidden', | ||
| 'id', | ||
| 'inputmode', | ||
| 'is', | ||
| 'itemid', | ||
| 'itemprop', | ||
| 'itemref', | ||
| 'itemscope', | ||
| 'itemtype', | ||
| 'lang', | ||
| 'nonce', | ||
| 'part', | ||
| 'popover', | ||
| 'slot', | ||
| 'spellcheck', | ||
| 'style', | ||
| 'tabindex', | ||
| 'title', | ||
| 'translate', | ||
| ]); | ||
| /** | ||
| * | ||
| * @param attrName | ||
| */ | ||
| function isGlobalHtmlAttribute(attrName) { | ||
| return GLOBAL_ATTRIBUTE.has(attrName); | ||
| } | ||
| // These are HTML standard prop/attribute IDL mappings, but are not predictable based on camel/kebab-case conversion | ||
| const SPECIAL_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map([ | ||
| ['accessKey', 'accesskey'], | ||
| ['readOnly', 'readonly'], | ||
| ['tabIndex', 'tabindex'], | ||
| ['bgColor', 'bgcolor'], | ||
| ['colSpan', 'colspan'], | ||
| ['rowSpan', 'rowspan'], | ||
| ['contentEditable', 'contenteditable'], | ||
| ['crossOrigin', 'crossorigin'], | ||
| ['dateTime', 'datetime'], | ||
| ['formAction', 'formaction'], | ||
| ['isMap', 'ismap'], | ||
| ['maxLength', 'maxlength'], | ||
| ['minLength', 'minlength'], | ||
| ['noValidate', 'novalidate'], | ||
| ['useMap', 'usemap'], | ||
| ['htmlFor', 'for'], | ||
| ]); | ||
| // Global properties that this framework currently reflects. For CSR, the native | ||
| // descriptors for these properties are added from HTMLElement.prototype to | ||
| // LightningElement.prototype. For SSR, in order to match CSR behavior, this | ||
| // list is used to determine which attributes to reflect. | ||
| const REFLECTIVE_GLOBAL_PROPERTY_SET = /*@__PURE__@*/ new Set([ | ||
| 'accessKey', | ||
| 'dir', | ||
| 'draggable', | ||
| 'hidden', | ||
| 'id', | ||
| 'lang', | ||
| 'spellcheck', | ||
| 'tabIndex', | ||
| 'title', | ||
| ]); | ||
| /** | ||
| * Map associating previously transformed HTML property into HTML attribute. | ||
| */ | ||
| const CACHED_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map(); | ||
| /** | ||
| * | ||
| * @param propName | ||
| */ | ||
| function htmlPropertyToAttribute(propName) { | ||
| const ariaAttributeName = AriaPropNameToAttrNameMap[propName]; | ||
| if (!isUndefined(ariaAttributeName)) { | ||
| return ariaAttributeName; | ||
| } | ||
| const specialAttributeName = SPECIAL_PROPERTY_ATTRIBUTE_MAPPING.get(propName); | ||
| if (!isUndefined(specialAttributeName)) { | ||
| return specialAttributeName; | ||
| } | ||
| const cachedAttributeName = CACHED_PROPERTY_ATTRIBUTE_MAPPING.get(propName); | ||
| if (!isUndefined(cachedAttributeName)) { | ||
| return cachedAttributeName; | ||
| } | ||
| let attributeName = ''; | ||
| for (let i = 0, len = propName.length; i < len; i++) { | ||
| const code = StringCharCodeAt.call(propName, i); | ||
| if (code >= 65 && // "A" | ||
| code <= 90 // "Z" | ||
| ) { | ||
| attributeName += '-' + StringFromCharCode(code + 32); | ||
| } | ||
| else { | ||
| attributeName += StringFromCharCode(code); | ||
| } | ||
| } | ||
| CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName); | ||
| return attributeName; | ||
| } | ||
| /** | ||
| * Map associating previously transformed kabab-case attributes into camel-case props. | ||
| */ | ||
| const CACHED_KEBAB_CAMEL_MAPPING = /*@__PURE__@*/ new Map(); | ||
| /** | ||
| * | ||
| * @param attrName | ||
| */ | ||
| function kebabCaseToCamelCase(attrName) { | ||
| let result = CACHED_KEBAB_CAMEL_MAPPING.get(attrName); | ||
| if (isUndefined(result)) { | ||
| result = StringReplace.call(attrName, CAMEL_REGEX, (g) => g[1].toUpperCase()); | ||
| CACHED_KEBAB_CAMEL_MAPPING.set(attrName, result); | ||
| } | ||
| return result; | ||
| } | ||
| /** | ||
| * This set is for attributes that have a camel cased property name | ||
| * For example, div.tabIndex. | ||
| * We do not want users to define `@api` properties with these names | ||
| * Because the template will never call them. It'll always call the camel | ||
| * cased version. | ||
| */ | ||
| const AMBIGUOUS_PROP_SET = /*@__PURE__@*/ new Map([ | ||
| ['bgcolor', 'bgColor'], | ||
| ['accesskey', 'accessKey'], | ||
| ['contenteditable', 'contentEditable'], | ||
| ['tabindex', 'tabIndex'], | ||
| ['maxlength', 'maxLength'], | ||
| ['maxvalue', 'maxValue'], | ||
| ]); | ||
| /** | ||
| * This set is for attributes that can never be defined | ||
| * by users on their components. | ||
| * We throw for these. | ||
| */ | ||
| const DISALLOWED_PROP_SET = /*@__PURE__@*/ new Set(['is', 'class', 'slot', 'style']); | ||
| /* | ||
| * Copyright (c) 2020, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| const ESCAPED_CHARS = { | ||
| '"': '"', | ||
| "'": ''', | ||
| '<': '<', | ||
| '>': '>', | ||
| '&': '&', | ||
| }; | ||
| /** | ||
| * | ||
| * @param str | ||
| * @param attrMode | ||
| */ | ||
| function htmlEscape(str, attrMode = false) { | ||
| const searchValue = attrMode ? /["&]/g : /["'<>&]/g; | ||
| return str.replace(searchValue, (char) => ESCAPED_CHARS[char]); | ||
| } | ||
| /* | ||
| * Copyright (c) 2018, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| // Increment whenever the LWC template compiler changes | ||
| const LWC_VERSION = "8.28.2"; | ||
| const LWC_VERSION_COMMENT = `LWC compiler v${LWC_VERSION}`; | ||
| const LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/; | ||
| /* | ||
| * Copyright (c) 2020, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| /** | ||
| * [ncls] - Normalize class name attribute. | ||
| * | ||
| * Transforms the provided class property value from an object/string into a string the diffing algo | ||
| * can operate on. | ||
| * | ||
| * This implementation is borrowed from Vue: | ||
| * https://github.com/vuejs/core/blob/e790e1bdd7df7be39e14780529db86e4da47a3db/packages/shared/src/normalizeProp.ts#L63-L82 | ||
| */ | ||
| function normalizeClass(value) { | ||
| if (isUndefined(value) || isNull(value)) { | ||
| // Returning undefined here improves initial render cost, because the old vnode's class will be considered | ||
| // undefined in the `patchClassAttribute` routine, so `oldClass === newClass` will be true so we return early | ||
| return undefined; | ||
| } | ||
| let res = ''; | ||
| if (isString(value)) { | ||
| res = value; | ||
| } | ||
| else if (isArray(value)) { | ||
| for (let i = 0; i < value.length; i++) { | ||
| const normalized = normalizeClass(value[i]); | ||
| if (normalized) { | ||
| res += normalized + ' '; | ||
| } | ||
| } | ||
| } | ||
| else if (isObject(value) && !isNull(value)) { | ||
| // Iterate own enumerable keys of the object | ||
| const _keys = keys(value); | ||
| for (let i = 0; i < _keys.length; i += 1) { | ||
| const key = _keys[i]; | ||
| if (value[key]) { | ||
| res += key + ' '; | ||
| } | ||
| } | ||
| } | ||
| return StringTrim.call(res); | ||
| } | ||
| /* | ||
| * Copyright (c) 2024, Salesforce, Inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| let hooksAreSet = false; | ||
| let sanitizeHtmlContentImpl = () => { | ||
| // locker-service patches this function during runtime to sanitize HTML content. | ||
| throw new Error('sanitizeHtmlContent hook must be implemented.'); | ||
| }; | ||
| /** | ||
| * EXPERIMENTAL: This function acts like a hook for Lightning Locker Service and other similar | ||
| * libraries to sanitize HTML content. This hook process the content passed via the template to | ||
| * lwc:inner-html directive. | ||
| * It is meant to be overridden via `setHooks`; it throws an error by default. | ||
| */ | ||
| const sanitizeHtmlContent = (value) => { | ||
| return sanitizeHtmlContentImpl(value); | ||
| }; | ||
| function setHooks(hooks) { | ||
| isFalse$1(hooksAreSet, 'Hooks are already overridden, only one definition is allowed.'); | ||
| hooksAreSet = true; | ||
| sanitizeHtmlContentImpl = hooks.sanitizeHtmlContent; | ||
| } | ||
| /* | ||
| * Copyright (c) 2024, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| const IMPORTANT_FLAG = /\s*!\s*important\s*$/i; | ||
| const DECLARATION_DELIMITER = /;(?![^(]*\))/g; | ||
| const PROPERTY_DELIMITER = /:(.+)/s; // `/s` (dotAll) required to match styles across newlines, e.g. `color: \n red;` | ||
| // Borrowed from Vue template compiler. | ||
| // https://github.com/vuejs/vue/blob/531371b818b0e31a989a06df43789728f23dc4e8/src/platforms/web/util/style.js#L5-L16 | ||
| function parseStyleText(cssText) { | ||
| const styleMap = {}; | ||
| const declarations = cssText.split(DECLARATION_DELIMITER); | ||
| for (const declaration of declarations) { | ||
| if (declaration) { | ||
| const [prop, value] = declaration.split(PROPERTY_DELIMITER); | ||
| if (prop !== undefined && value !== undefined) { | ||
| styleMap[prop.trim()] = value.trim(); | ||
| } | ||
| } | ||
| } | ||
| return styleMap; | ||
| } | ||
| function normalizeStyleAttributeValue(style) { | ||
| const styleMap = parseStyleText(style); | ||
| const styles = Object.entries(styleMap).map(([key, value]) => { | ||
| value = value.replace(IMPORTANT_FLAG, ' !important').trim(); | ||
| return `${key}: ${value};`; | ||
| }); | ||
| return styles.join(' '); | ||
| } | ||
| function flattenStylesheets(stylesheets) { | ||
| const list = []; | ||
| for (const stylesheet of stylesheets) { | ||
| if (!isArray(stylesheet)) { | ||
| list.push(stylesheet); | ||
| } | ||
| else { | ||
| list.push(...flattenStylesheets(stylesheet)); | ||
| } | ||
| } | ||
| return list; | ||
| } | ||
| /* | ||
| * Copyright (c) 2024, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| let trustedSignals; | ||
| function setTrustedSignalSet(signals) { | ||
| isFalse$1(trustedSignals, 'Trusted Signal Set is already set!'); | ||
| trustedSignals = signals; | ||
| // Only used in LWC's integration tests. Contained within the set function as there are multiple imports of | ||
| // this module. Placing it here ensures we reference the import where the trustedSignals set is maintained | ||
| if (process.env.NODE_ENV === 'test-lwc-integration') { | ||
| // Used to reset the global state between test runs | ||
| globalThis.__lwcResetTrustedSignals = () => (trustedSignals = undefined); | ||
| } | ||
| } | ||
| function addTrustedSignal(signal) { | ||
| // This should be a no-op when the trustedSignals set isn't set by runtime | ||
| trustedSignals?.add(signal); | ||
| } | ||
| /** | ||
| * The legacy validation behavior was that this check should only | ||
| * be performed for runtimes that have provided a trustedSignals set. | ||
| * However, this resulted in a bug as all object values were | ||
| * being considered signals in environments where the trustedSignals | ||
| * set had not been defined. The runtime flag has been added as a killswitch | ||
| * in case the fix needs to be reverted. | ||
| */ | ||
| function legacyIsTrustedSignal(target) { | ||
| if (!trustedSignals) { | ||
| // The runtime didn't set a trustedSignals set | ||
| // this check should only be performed for runtimes that care about filtering signals to track | ||
| // our default behavior should be to track all signals | ||
| return true; | ||
| } | ||
| return trustedSignals.has(target); | ||
| } | ||
| function isTrustedSignal(target) { | ||
| if (!trustedSignals) { | ||
| return false; | ||
| } | ||
| return trustedSignals.has(target); | ||
| } | ||
| /* | ||
| * Copyright (c) 2024, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| /** | ||
| * Generates a custom element tag name given a namespace and component name. | ||
| * Based on the LWC file system requirements, component names come from the file system name which is | ||
| * camel cased. The component's name will be converted to kebab case when the tag name is produced. | ||
| * | ||
| * @param namespace component namespace | ||
| * @param name component name | ||
| * @returns component tag name | ||
| */ | ||
| function generateCustomElementTagName(namespace = '', name = '') { | ||
| if (!namespace || !name) { | ||
| // TODO [#4824]: Make this an error rather than a warning | ||
| // eslint-disable-next-line no-console | ||
| console.warn('The namespace and name should both be non-empty strings. ' + | ||
| 'You may get unexpected behavior at runtime. ' + | ||
| 'Found: namespace=' + | ||
| JSON.stringify(namespace) + | ||
| ' and name=' + | ||
| JSON.stringify(name)); | ||
| } | ||
| const kebabCasedName = name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); | ||
| return `${namespace}-${kebabCasedName}`; | ||
| } | ||
| /* | ||
| * Copyright (c) 2024, Salesforce, Inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| const DEFAULT_SSR_MODE = 'sync'; | ||
| /* | ||
| * Copyright (c) 2025, salesforce.com, inc. | ||
| * All rights reserved. | ||
| * SPDX-License-Identifier: MIT | ||
| * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT | ||
| */ | ||
| /** | ||
| * Global HTML "tabindex" attribute is specially massaged into a stringified number | ||
| * This follows the historical behavior in api.ts: | ||
| * https://github.com/salesforce/lwc/blob/f34a347/packages/%40lwc/engine-core/src/framework/api.ts#L193-L211 | ||
| */ | ||
| function normalizeTabIndex(value) { | ||
| const shouldNormalize = value > 0 && typeof value !== 'boolean'; | ||
| return shouldNormalize ? 0 : value; | ||
| } | ||
| exports.AMBIGUOUS_PROP_SET = AMBIGUOUS_PROP_SET; | ||
| exports.AriaAttrNameToPropNameMap = AriaAttrNameToPropNameMap; | ||
| exports.AriaPropNameToAttrNameMap = AriaPropNameToAttrNameMap; | ||
| exports.ArrayConcat = ArrayConcat; | ||
| exports.ArrayCopyWithin = ArrayCopyWithin; | ||
| exports.ArrayEvery = ArrayEvery; | ||
| exports.ArrayFill = ArrayFill; | ||
| exports.ArrayFilter = ArrayFilter; | ||
| exports.ArrayFind = ArrayFind; | ||
| exports.ArrayFindIndex = ArrayFindIndex; | ||
| exports.ArrayFrom = ArrayFrom; | ||
| exports.ArrayIncludes = ArrayIncludes; | ||
| exports.ArrayIndexOf = ArrayIndexOf; | ||
| exports.ArrayJoin = ArrayJoin; | ||
| exports.ArrayMap = ArrayMap; | ||
| exports.ArrayPop = ArrayPop; | ||
| exports.ArrayPush = ArrayPush; | ||
| exports.ArrayReduce = ArrayReduce; | ||
| exports.ArrayReverse = ArrayReverse; | ||
| exports.ArrayShift = ArrayShift; | ||
| exports.ArraySlice = ArraySlice; | ||
| exports.ArraySome = ArraySome; | ||
| exports.ArraySort = ArraySort; | ||
| exports.ArraySplice = ArraySplice; | ||
| exports.ArrayUnshift = ArrayUnshift; | ||
| exports.ContextEventName = ContextEventName; | ||
| exports.DEFAULT_SSR_MODE = DEFAULT_SSR_MODE; | ||
| exports.DISALLOWED_PROP_SET = DISALLOWED_PROP_SET; | ||
| exports.HIGHEST_API_VERSION = HIGHEST_API_VERSION; | ||
| exports.HTML_NAMESPACE = HTML_NAMESPACE; | ||
| exports.ID_REFERENCING_ATTRIBUTES_SET = ID_REFERENCING_ATTRIBUTES_SET; | ||
| exports.IMPORTANT_FLAG = IMPORTANT_FLAG; | ||
| exports.KEY__LEGACY_SHADOW_TOKEN = KEY__LEGACY_SHADOW_TOKEN; | ||
| exports.KEY__LEGACY_SHADOW_TOKEN_PRIVATE = KEY__LEGACY_SHADOW_TOKEN_PRIVATE; | ||
| exports.KEY__NATIVE_GET_ELEMENT_BY_ID = KEY__NATIVE_GET_ELEMENT_BY_ID; | ||
| exports.KEY__NATIVE_ONLY_CSS = KEY__NATIVE_ONLY_CSS; | ||
| exports.KEY__NATIVE_QUERY_SELECTOR_ALL = KEY__NATIVE_QUERY_SELECTOR_ALL; | ||
| exports.KEY__SCOPED_CSS = KEY__SCOPED_CSS; | ||
| exports.KEY__SHADOW_RESOLVER = KEY__SHADOW_RESOLVER; | ||
| exports.KEY__SHADOW_RESOLVER_PRIVATE = KEY__SHADOW_RESOLVER_PRIVATE; | ||
| exports.KEY__SHADOW_STATIC = KEY__SHADOW_STATIC; | ||
| exports.KEY__SHADOW_STATIC_PRIVATE = KEY__SHADOW_STATIC_PRIVATE; | ||
| exports.KEY__SHADOW_TOKEN = KEY__SHADOW_TOKEN; | ||
| exports.KEY__SHADOW_TOKEN_PRIVATE = KEY__SHADOW_TOKEN_PRIVATE; | ||
| exports.KEY__SYNTHETIC_MODE = KEY__SYNTHETIC_MODE; | ||
| exports.LOWEST_API_VERSION = LOWEST_API_VERSION; | ||
| exports.LWC_VERSION = LWC_VERSION; | ||
| exports.LWC_VERSION_COMMENT = LWC_VERSION_COMMENT; | ||
| exports.LWC_VERSION_COMMENT_REGEX = LWC_VERSION_COMMENT_REGEX; | ||
| exports.MATHML_NAMESPACE = MATHML_NAMESPACE; | ||
| exports.REFLECTIVE_GLOBAL_PROPERTY_SET = REFLECTIVE_GLOBAL_PROPERTY_SET; | ||
| exports.SPECIAL_PROPERTY_ATTRIBUTE_MAPPING = SPECIAL_PROPERTY_ATTRIBUTE_MAPPING; | ||
| exports.SVG_NAMESPACE = SVG_NAMESPACE; | ||
| exports.StringCharAt = StringCharAt; | ||
| exports.StringCharCodeAt = StringCharCodeAt; | ||
| exports.StringFromCharCode = StringFromCharCode; | ||
| exports.StringReplace = StringReplace; | ||
| exports.StringSlice = StringSlice; | ||
| exports.StringSplit = StringSplit; | ||
| exports.StringToLowerCase = StringToLowerCase; | ||
| exports.StringTrim = StringTrim; | ||
| exports.XLINK_NAMESPACE = XLINK_NAMESPACE; | ||
| exports.XML_NAMESPACE = XML_NAMESPACE; | ||
| exports.addTrustedContext = addTrustedContext; | ||
| exports.addTrustedSignal = addTrustedSignal; | ||
| exports.arrayEvery = arrayEvery; | ||
| exports.assert = assert; | ||
| exports.assign = assign; | ||
| exports.create = create; | ||
| exports.defineProperties = defineProperties; | ||
| exports.defineProperty = defineProperty; | ||
| exports.entries = entries; | ||
| exports.flattenStylesheets = flattenStylesheets; | ||
| exports.forEach = forEach; | ||
| exports.freeze = freeze; | ||
| exports.fromEntries = fromEntries; | ||
| exports.generateCustomElementTagName = generateCustomElementTagName; | ||
| exports.getAPIVersionFromNumber = getAPIVersionFromNumber; | ||
| exports.getContextKeys = getContextKeys; | ||
| exports.getOwnPropertyDescriptor = getOwnPropertyDescriptor; | ||
| exports.getOwnPropertyDescriptors = getOwnPropertyDescriptors; | ||
| exports.getOwnPropertyNames = getOwnPropertyNames; | ||
| exports.getOwnPropertySymbols = getOwnPropertySymbols; | ||
| exports.getPropertyDescriptor = getPropertyDescriptor; | ||
| exports.getPrototypeOf = getPrototypeOf; | ||
| exports.hasOwnProperty = hasOwnProperty; | ||
| exports.htmlEscape = htmlEscape; | ||
| exports.htmlPropertyToAttribute = htmlPropertyToAttribute; | ||
| exports.isAPIFeatureEnabled = isAPIFeatureEnabled; | ||
| exports.isAriaAttribute = isAriaAttribute; | ||
| exports.isArray = isArray; | ||
| exports.isBoolean = isBoolean; | ||
| exports.isBooleanAttribute = isBooleanAttribute; | ||
| exports.isFalse = isFalse; | ||
| exports.isFrozen = isFrozen; | ||
| exports.isFunction = isFunction; | ||
| exports.isGlobalHtmlAttribute = isGlobalHtmlAttribute; | ||
| exports.isNull = isNull; | ||
| exports.isNumber = isNumber; | ||
| exports.isObject = isObject; | ||
| exports.isString = isString; | ||
| exports.isTrue = isTrue; | ||
| exports.isTrustedContext = isTrustedContext; | ||
| exports.isTrustedSignal = isTrustedSignal; | ||
| exports.isUndefined = isUndefined; | ||
| exports.isVoidElement = isVoidElement; | ||
| exports.kebabCaseToCamelCase = kebabCaseToCamelCase; | ||
| exports.keys = keys; | ||
| exports.legacyIsTrustedSignal = legacyIsTrustedSignal; | ||
| exports.minApiVersion = minApiVersion; | ||
| exports.noop = noop; | ||
| exports.normalizeClass = normalizeClass; | ||
| exports.normalizeStyleAttributeValue = normalizeStyleAttributeValue; | ||
| exports.normalizeTabIndex = normalizeTabIndex; | ||
| exports.parseStyleText = parseStyleText; | ||
| exports.sanitizeHtmlContent = sanitizeHtmlContent; | ||
| exports.seal = seal; | ||
| exports.setContextKeys = setContextKeys; | ||
| exports.setHooks = setHooks; | ||
| exports.setPrototypeOf = setPrototypeOf; | ||
| exports.setTrustedContextSet = setTrustedContextSet; | ||
| exports.setTrustedSignalSet = setTrustedSignalSet; | ||
| exports.toString = toString; | ||
| /** version: 8.28.2 */ | ||
| //# sourceMappingURL=index.cjs.js.map |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
7
-46.15%Yes
NaN83652
-33.7%24
-4%1638
-40.22%