@universityofmaryland/web-model-library 1.0.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/README.md +138 -0
- package/dist/_types.d.ts +77 -0
- package/dist/_types.d.ts.map +1 -0
- package/dist/_virtual/___vite-browser-external.js +8 -0
- package/dist/_virtual/___vite-browser-external.js.map +1 -0
- package/dist/_virtual/___vite-browser-external.mjs +7 -0
- package/dist/_virtual/___vite-browser-external.mjs.map +1 -0
- package/dist/_virtual/__vite-browser-external.js +4 -0
- package/dist/_virtual/__vite-browser-external.js.map +1 -0
- package/dist/_virtual/__vite-browser-external.mjs +5 -0
- package/dist/_virtual/__vite-browser-external.mjs.map +1 -0
- package/dist/_virtual/_commonjsHelpers.js +37 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/_commonjsHelpers.mjs +37 -0
- package/dist/_virtual/_commonjsHelpers.mjs.map +1 -0
- package/dist/_virtual/index.js +7 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index.mjs +8 -0
- package/dist/_virtual/index.mjs.map +1 -0
- package/dist/_virtual/picocolors.browser.js +5 -0
- package/dist/_virtual/picocolors.browser.js.map +1 -0
- package/dist/_virtual/picocolors.browser.mjs +5 -0
- package/dist/_virtual/picocolors.browser.mjs.map +1 -0
- package/dist/_virtual/postcss.js +7 -0
- package/dist/_virtual/postcss.js.map +1 -0
- package/dist/_virtual/postcss.mjs +8 -0
- package/dist/_virtual/postcss.mjs.map +1 -0
- package/dist/_virtual/symbols.js +5 -0
- package/dist/_virtual/symbols.js.map +1 -0
- package/dist/_virtual/symbols.mjs +5 -0
- package/dist/_virtual/symbols.mjs.map +1 -0
- package/dist/attributes/checks.d.ts +133 -0
- package/dist/attributes/checks.d.ts.map +1 -0
- package/dist/attributes/checks.js +757 -0
- package/dist/attributes/checks.js.map +1 -0
- package/dist/attributes/checks.mjs +740 -0
- package/dist/attributes/checks.mjs.map +1 -0
- package/dist/attributes/handler.d.ts +52 -0
- package/dist/attributes/handler.d.ts.map +1 -0
- package/dist/attributes/handler.js +205 -0
- package/dist/attributes/handler.js.map +1 -0
- package/dist/attributes/handler.mjs +206 -0
- package/dist/attributes/handler.mjs.map +1 -0
- package/dist/attributes/index.d.ts +7 -0
- package/dist/attributes/index.d.ts.map +1 -0
- package/dist/attributes/names.d.ts +132 -0
- package/dist/attributes/names.d.ts.map +1 -0
- package/dist/attributes/names.js +145 -0
- package/dist/attributes/names.js.map +1 -0
- package/dist/attributes/names.mjs +146 -0
- package/dist/attributes/names.mjs.map +1 -0
- package/dist/attributes/values.d.ts +70 -0
- package/dist/attributes/values.d.ts.map +1 -0
- package/dist/attributes/values.js +80 -0
- package/dist/attributes/values.js.map +1 -0
- package/dist/attributes/values.mjs +81 -0
- package/dist/attributes/values.mjs.map +1 -0
- package/dist/attributes.d.ts +2 -0
- package/dist/attributes.js +23 -0
- package/dist/attributes.js.map +1 -0
- package/dist/attributes.mjs +23 -0
- package/dist/attributes.mjs.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +13 -0
- package/dist/index.mjs.map +1 -0
- package/dist/model/index.d.ts +43 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model.d.ts +2 -0
- package/dist/model.js +259 -0
- package/dist/model.js.map +1 -0
- package/dist/model.mjs +259 -0
- package/dist/model.mjs.map +1 -0
- package/dist/node_modules/nanoid/non-secure/index.js +31 -0
- package/dist/node_modules/nanoid/non-secure/index.js.map +1 -0
- package/dist/node_modules/nanoid/non-secure/index.mjs +31 -0
- package/dist/node_modules/nanoid/non-secure/index.mjs.map +1 -0
- package/dist/node_modules/picocolors/picocolors.browser.js +17 -0
- package/dist/node_modules/picocolors/picocolors.browser.js.map +1 -0
- package/dist/node_modules/picocolors/picocolors.browser.mjs +17 -0
- package/dist/node_modules/picocolors/picocolors.browser.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/at-rule.js +30 -0
- package/dist/node_modules/postcss/lib/at-rule.js.map +1 -0
- package/dist/node_modules/postcss/lib/at-rule.mjs +30 -0
- package/dist/node_modules/postcss/lib/at-rule.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/comment.js +21 -0
- package/dist/node_modules/postcss/lib/comment.js.map +1 -0
- package/dist/node_modules/postcss/lib/comment.mjs +21 -0
- package/dist/node_modules/postcss/lib/comment.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/container.js +383 -0
- package/dist/node_modules/postcss/lib/container.js.map +1 -0
- package/dist/node_modules/postcss/lib/container.mjs +383 -0
- package/dist/node_modules/postcss/lib/container.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/css-syntax-error.js +92 -0
- package/dist/node_modules/postcss/lib/css-syntax-error.js.map +1 -0
- package/dist/node_modules/postcss/lib/css-syntax-error.mjs +92 -0
- package/dist/node_modules/postcss/lib/css-syntax-error.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/declaration.js +27 -0
- package/dist/node_modules/postcss/lib/declaration.js.map +1 -0
- package/dist/node_modules/postcss/lib/declaration.mjs +27 -0
- package/dist/node_modules/postcss/lib/declaration.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/document.js +34 -0
- package/dist/node_modules/postcss/lib/document.js.map +1 -0
- package/dist/node_modules/postcss/lib/document.mjs +34 -0
- package/dist/node_modules/postcss/lib/document.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/fromJSON.js +67 -0
- package/dist/node_modules/postcss/lib/fromJSON.js.map +1 -0
- package/dist/node_modules/postcss/lib/fromJSON.mjs +67 -0
- package/dist/node_modules/postcss/lib/fromJSON.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/input.js +216 -0
- package/dist/node_modules/postcss/lib/input.js.map +1 -0
- package/dist/node_modules/postcss/lib/input.mjs +216 -0
- package/dist/node_modules/postcss/lib/input.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/lazy-result.js +467 -0
- package/dist/node_modules/postcss/lib/lazy-result.js.map +1 -0
- package/dist/node_modules/postcss/lib/lazy-result.mjs +467 -0
- package/dist/node_modules/postcss/lib/lazy-result.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/list.js +60 -0
- package/dist/node_modules/postcss/lib/list.js.map +1 -0
- package/dist/node_modules/postcss/lib/list.mjs +60 -0
- package/dist/node_modules/postcss/lib/list.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/map-generator.js +314 -0
- package/dist/node_modules/postcss/lib/map-generator.js.map +1 -0
- package/dist/node_modules/postcss/lib/map-generator.mjs +314 -0
- package/dist/node_modules/postcss/lib/map-generator.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/no-work-result.js +113 -0
- package/dist/node_modules/postcss/lib/no-work-result.js.map +1 -0
- package/dist/node_modules/postcss/lib/no-work-result.mjs +113 -0
- package/dist/node_modules/postcss/lib/no-work-result.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/node.js +335 -0
- package/dist/node_modules/postcss/lib/node.js.map +1 -0
- package/dist/node_modules/postcss/lib/node.mjs +335 -0
- package/dist/node_modules/postcss/lib/node.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/parse.js +30 -0
- package/dist/node_modules/postcss/lib/parse.js.map +1 -0
- package/dist/node_modules/postcss/lib/parse.mjs +30 -0
- package/dist/node_modules/postcss/lib/parse.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/parser.js +543 -0
- package/dist/node_modules/postcss/lib/parser.js.map +1 -0
- package/dist/node_modules/postcss/lib/parser.mjs +543 -0
- package/dist/node_modules/postcss/lib/parser.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/postcss.js +28 -0
- package/dist/node_modules/postcss/lib/postcss.js.map +1 -0
- package/dist/node_modules/postcss/lib/postcss.mjs +29 -0
- package/dist/node_modules/postcss/lib/postcss.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/postcss2.js +110 -0
- package/dist/node_modules/postcss/lib/postcss2.js.map +1 -0
- package/dist/node_modules/postcss/lib/postcss2.mjs +110 -0
- package/dist/node_modules/postcss/lib/postcss2.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/previous-map.js +123 -0
- package/dist/node_modules/postcss/lib/previous-map.js.map +1 -0
- package/dist/node_modules/postcss/lib/previous-map.mjs +123 -0
- package/dist/node_modules/postcss/lib/previous-map.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/processor.js +61 -0
- package/dist/node_modules/postcss/lib/processor.js.map +1 -0
- package/dist/node_modules/postcss/lib/processor.mjs +61 -0
- package/dist/node_modules/postcss/lib/processor.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/result.js +44 -0
- package/dist/node_modules/postcss/lib/result.js.map +1 -0
- package/dist/node_modules/postcss/lib/result.mjs +44 -0
- package/dist/node_modules/postcss/lib/result.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/root.js +58 -0
- package/dist/node_modules/postcss/lib/root.js.map +1 -0
- package/dist/node_modules/postcss/lib/root.mjs +58 -0
- package/dist/node_modules/postcss/lib/root.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/rule.js +33 -0
- package/dist/node_modules/postcss/lib/rule.js.map +1 -0
- package/dist/node_modules/postcss/lib/rule.mjs +33 -0
- package/dist/node_modules/postcss/lib/rule.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/stringifier.js +308 -0
- package/dist/node_modules/postcss/lib/stringifier.js.map +1 -0
- package/dist/node_modules/postcss/lib/stringifier.mjs +308 -0
- package/dist/node_modules/postcss/lib/stringifier.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/stringify.js +19 -0
- package/dist/node_modules/postcss/lib/stringify.js.map +1 -0
- package/dist/node_modules/postcss/lib/stringify.mjs +19 -0
- package/dist/node_modules/postcss/lib/stringify.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/symbols.js +13 -0
- package/dist/node_modules/postcss/lib/symbols.js.map +1 -0
- package/dist/node_modules/postcss/lib/symbols.mjs +13 -0
- package/dist/node_modules/postcss/lib/symbols.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/tokenize.js +219 -0
- package/dist/node_modules/postcss/lib/tokenize.js.map +1 -0
- package/dist/node_modules/postcss/lib/tokenize.mjs +219 -0
- package/dist/node_modules/postcss/lib/tokenize.mjs.map +1 -0
- package/dist/node_modules/postcss/lib/warning.js +40 -0
- package/dist/node_modules/postcss/lib/warning.js.map +1 -0
- package/dist/node_modules/postcss/lib/warning.mjs +40 -0
- package/dist/node_modules/postcss/lib/warning.mjs.map +1 -0
- package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js +130 -0
- package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js.map +1 -0
- package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.mjs +130 -0
- package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.mjs.map +1 -0
- package/dist/slots/create.d.ts +15 -0
- package/dist/slots/create.d.ts.map +1 -0
- package/dist/slots/create.js +50 -0
- package/dist/slots/create.js.map +1 -0
- package/dist/slots/create.mjs +50 -0
- package/dist/slots/create.mjs.map +1 -0
- package/dist/slots/element.d.ts +3 -0
- package/dist/slots/element.d.ts.map +1 -0
- package/dist/slots/element.js +42 -0
- package/dist/slots/element.js.map +1 -0
- package/dist/slots/element.mjs +42 -0
- package/dist/slots/element.mjs.map +1 -0
- package/dist/slots/extract.d.ts +6 -0
- package/dist/slots/extract.d.ts.map +1 -0
- package/dist/slots/index.d.ts +140 -0
- package/dist/slots/index.d.ts.map +1 -0
- package/dist/slots/mapping.d.ts +82 -0
- package/dist/slots/mapping.d.ts.map +1 -0
- package/dist/slots/mapping.js +97 -0
- package/dist/slots/mapping.js.map +1 -0
- package/dist/slots/mapping.mjs +97 -0
- package/dist/slots/mapping.mjs.map +1 -0
- package/dist/slots/query.d.ts +9 -0
- package/dist/slots/query.d.ts.map +1 -0
- package/dist/slots/validate.d.ts +22 -0
- package/dist/slots/validate.d.ts.map +1 -0
- package/dist/slots.d.ts +6 -0
- package/dist/slots.js +73 -0
- package/dist/slots.js.map +1 -0
- package/dist/slots.mjs +74 -0
- package/dist/slots.mjs.map +1 -0
- package/dist/utilities/index.d.ts +4 -0
- package/dist/utilities/index.d.ts.map +1 -0
- package/dist/utilities/lifecycle.d.ts +12 -0
- package/dist/utilities/lifecycle.d.ts.map +1 -0
- package/dist/utilities/lifecycle.js +21 -0
- package/dist/utilities/lifecycle.js.map +1 -0
- package/dist/utilities/lifecycle.mjs +21 -0
- package/dist/utilities/lifecycle.mjs.map +1 -0
- package/dist/utilities/register.d.ts +17 -0
- package/dist/utilities/register.d.ts.map +1 -0
- package/dist/utilities/register.js +32 -0
- package/dist/utilities/register.js.map +1 -0
- package/dist/utilities/register.mjs +32 -0
- package/dist/utilities/register.mjs.map +1 -0
- package/dist/utilities/styles.d.ts +5 -0
- package/dist/utilities/styles.d.ts.map +1 -0
- package/dist/utilities/styles.js +79 -0
- package/dist/utilities/styles.js.map +1 -0
- package/dist/utilities/styles.mjs +80 -0
- package/dist/utilities/styles.mjs.map +1 -0
- package/dist/utilities.d.ts +2 -0
- package/dist/utilities.js +11 -0
- package/dist/utilities.js.map +1 -0
- package/dist/utilities.mjs +11 -0
- package/dist/utilities.mjs.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checks.js","sources":["../../source/attributes/checks.ts"],"sourcesContent":["/**\n * Attribute Check Utilities\n *\n * Provides a comprehensive set of functions to check attribute states on HTML elements.\n * These utilities form the foundation of the component attribute system.\n *\n * ## Function Categories:\n *\n * 1. **isTheme**: Theme-related checks (dark, light, gold, maryland)\n * 2. **isVisual**: Visual state checks (aligned, bordered, transparent, etc.)\n * 3. **isDisplay**: Display mode checks (feature, list, promo, etc.)\n * 4. **isLayout**: Layout configuration checks (fixed, hidden, position)\n * 5. **isInfo**: Content type checks (admissions, events, news, etc.)\n * 6. **includesFeature**: Feature flag checks (animation, lazyLoad, etc.)\n * 7. **getValue**: Attribute value getters (url, title, styleProps)\n *\n * ## Naming Convention:\n * - `is*` functions return boolean values\n * - `includes*` functions check for feature presence\n * - `getValue*` functions return string values\n *\n * ## Deprecation Handling:\n * Many functions handle both current (data-*) and deprecated attribute names,\n * logging warnings when deprecated attributes are used.\n */\nimport * as Styles from '@universityofmaryland/web-styles-library';\nimport AttributeNames from './names';\nimport AttributesValues from './values';\n\n// Types\n/**\n * Properties for attribute checking functions\n */\ninterface AttributeElementProps {\n /** The HTML element to check attributes on */\n element: HTMLElement;\n /** Default value to return if attribute is not found */\n defaultValue?: boolean;\n}\n\ninterface AttributeProps extends AttributeElementProps {\n attributeName: string;\n attributeValue: string;\n}\n\ntype AttributeNullProps = Omit<AttributeProps, 'attributeValue'>;\n\ninterface DeprecatedAttributeProps extends AttributeElementProps {\n attributeNameOld: string;\n attributeNameNew: string;\n attributeValue: string;\n}\n\ninterface ValueGetterConfig {\n currentName: string;\n deprecatedName?: string;\n}\n\n// Core attribute check utilities\n\n/**\n * Checks if an attribute equals a specific value.\n * Returns defaultValue if attribute is not present.\n * Special handling: 'false' string always returns false.\n *\n * @internal\n */\nconst isAttributeTrue = ({\n element,\n attributeName,\n attributeValue,\n defaultValue = false,\n}: AttributeProps): boolean => {\n const value = element.getAttribute(attributeName);\n\n if (value === null) {\n return defaultValue;\n }\n\n if (value === 'false') {\n return false;\n }\n\n return value === attributeValue;\n};\n\nconst isAttributeNotNull = ({\n element,\n attributeName,\n}: AttributeNullProps): boolean => {\n const value = element.getAttribute(attributeName);\n\n if (value === 'true') return true;\n if (value === 'false') return false;\n\n return value !== null;\n};\n\nconst depcreationWarning = ({\n element,\n attributeNameOld,\n attributeNameNew,\n}: {\n element: HTMLElement;\n attributeNameOld: string;\n attributeNameNew: string;\n}) => {\n console.warn(\n `UMD Web Component: ${element.nodeName} - Attribute \"${attributeNameOld}\" is deprecated. ` +\n `Use \"${attributeNameNew}\" instead. This attribute will be removed in version 2.0.`,\n );\n};\n\nconst checkDeprecatedAttribute = (props: DeprecatedAttributeProps): boolean => {\n const {\n element,\n attributeNameOld,\n attributeNameNew,\n attributeValue,\n ...rest\n } = props;\n const isDeprecatedUsed = isAttributeTrue({\n ...rest,\n element,\n attributeName: attributeNameOld,\n attributeValue,\n });\n\n if (isDeprecatedUsed) {\n depcreationWarning(props);\n return true;\n }\n\n return false;\n};\n\nconst createAttributeCheck =\n (attributeName: string, attributeValue: string, defaultValue = false) =>\n (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName,\n attributeValue,\n defaultValue,\n });\n\nconst createValueGetter = ({\n currentName,\n deprecatedName,\n}: ValueGetterConfig) => {\n return ({ element }: AttributeElementProps): string | null => {\n if (deprecatedName) {\n const deprecatedValue = element.getAttribute(deprecatedName);\n if (deprecatedValue !== null) {\n depcreationWarning({\n element,\n attributeNameOld: deprecatedName,\n attributeNameNew: currentName,\n });\n\n return deprecatedValue;\n }\n }\n\n const value = element.getAttribute(currentName);\n if (value !== null) {\n return value;\n }\n\n return null;\n };\n};\n\n// Value checks with null checks\nconst hasInfo = {\n gifts: (props: AttributeElementProps) =>\n isAttributeNotNull({\n ...props,\n attributeName: AttributeNames.information.gift,\n }),\n search: (props: AttributeElementProps) =>\n isAttributeNotNull({\n ...props,\n attributeName: AttributeNames.information.search,\n }),\n};\n\n// Decoration checks\nconst hasDecoration = {\n line: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.option.OPTIONAL_HAS_LINE,\n attributeNameNew: AttributeNames.decoration.line,\n attributeValue: '',\n }) ||\n isAttributeNotNull({\n ...props,\n attributeName: AttributeNames.decoration.line,\n }),\n};\n\n// Feature checks\nconst includesFeature = {\n animation: createAttributeCheck(\n AttributeNames.feature.animation,\n AttributesValues.state.TRUE,\n true,\n ),\n imageExpand: createAttributeCheck(\n AttributeNames.feature.imageExpand,\n AttributesValues.state.TRUE,\n true,\n ),\n fullScreenOption: createAttributeCheck(\n AttributeNames.deprecated.feature.FULLSCREEN,\n AttributesValues.state.TRUE,\n true,\n ),\n visualTime: createAttributeCheck(\n AttributeNames.deprecated.feature.SHOW_TIME,\n AttributesValues.state.TRUE,\n true,\n ),\n lazyLoad: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.feed.FEED_LAZY_LOAD,\n attributeNameNew: AttributeNames.feature.lazyLoad,\n attributeValue: AttributesValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.feature.lazyLoad,\n attributeValue: AttributesValues.state.TRUE,\n }),\n} as const;\n\n// Data checks\nconst isData = {\n type: {\n academic: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.feed.type,\n attributeValue: AttributesValues.data.type.academic,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.feed.type,\n attributeValue: AttributesValues.data.type.academic,\n }),\n },\n union: createAttributeCheck(\n AttributeNames.deprecated.feed.FEED_UNION,\n AttributesValues.state.FALSE,\n true,\n ),\n} as const;\n\n// Display checks\nconst isDisplay = {\n block: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.display.DISPLAY_TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.display.block,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.display.block,\n }),\n feature: createAttributeCheck(\n AttributeNames.deprecated.display.DISPLAY,\n AttributesValues.display.feature,\n ),\n featured: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.display.featured,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.display.featured,\n }),\n hero: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.display.hero,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.display.hero,\n }),\n list: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.display.DISPLAY,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.display.list,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.display.list,\n }),\n outline: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.type.OUTLINE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.type.OUTLINE,\n }),\n overlay: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.display.overlay,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.display.overlay,\n }),\n promo: createAttributeCheck(\n AttributeNames.deprecated.display.DISPLAY,\n AttributesValues.display.promo,\n ),\n primary: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.type.PRIMARY,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.type.PRIMARY,\n }),\n secondary: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.type.SECONDARY,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.type.SECONDARY,\n }),\n short: createAttributeCheck(\n AttributeNames.display.default,\n AttributesValues.display.short,\n ),\n standardCentered: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.layout.defaultCentered,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributesValues.layout.defaultCentered,\n }),\n standardInterior: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.layout.defaultInterior,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributesValues.layout.defaultInterior,\n }),\n standardInteriorCentered: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.layout.defaultInteriorCentered,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributesValues.layout.defaultInteriorCentered,\n }),\n statement: createAttributeCheck(\n AttributeNames.deprecated.display.DISPLAY,\n AttributesValues.display.statement,\n ),\n sticky: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.display.sticky,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.display.sticky,\n }),\n stacked: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.display.stacked,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.display.stacked,\n }),\n stackedInteriorDeprecated: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributesValues.layout.stackedInterior,\n ),\n stackedInterior: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.layout.stackedInterior,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.layout.stackedInterior,\n }),\n tabular: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.display.DISPLAY,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributesValues.display.tabular,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributesValues.display.tabular,\n }),\n} as const;\n\n// Information checks\nconst isInfo = {\n admissions: createAttributeCheck(\n AttributeNames.information.admissions,\n AttributesValues.state.TRUE,\n ),\n events: createAttributeCheck(\n AttributeNames.information.events,\n AttributesValues.state.TRUE,\n ),\n news: createAttributeCheck(\n AttributeNames.information.news,\n AttributesValues.state.TRUE,\n ),\n schools: createAttributeCheck(\n AttributeNames.information.schools,\n AttributesValues.state.TRUE,\n ),\n searchDomain: createAttributeCheck(\n AttributeNames.information.searchType,\n AttributesValues.search.domain,\n ),\n} as const;\n\n// Layout checks\nconst isLayout = {\n alertOff: createAttributeCheck(\n AttributeNames.layout.alertOff,\n AttributesValues.state.TRUE,\n ),\n alignmentRight: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.layout.LAYOUT_ALIGNMENT,\n attributeNameNew: AttributeNames.layout.alignment,\n attributeValue: AttributesValues.layout.right,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.alignment,\n attributeValue: AttributesValues.layout.right,\n }),\n fixed: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.layout.LAYOUT_FIXED,\n attributeNameNew: AttributeNames.layout.fixed,\n attributeValue: '',\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.fixed,\n attributeValue: AttributesValues.state.TRUE,\n }),\n fullImage: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributesValues.layout.fullImage,\n ),\n heightSmall: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.height,\n attributeValue: AttributesValues.layout.small,\n }),\n hidden: createAttributeCheck(\n AttributeNames.layout.hidden,\n AttributesValues.state.TRUE,\n ),\n image: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributesValues.display.image,\n ),\n imagePositionRight: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.layout.LAYOUT_IMAGE_POSITION,\n attributeNameNew: AttributeNames.layout.imagePosition,\n attributeValue: AttributesValues.layout.right,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imagePosition,\n attributeValue: AttributesValues.layout.right,\n defaultValue: true,\n }),\n imagePositionLeft: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.layout.LAYOUT_IMAGE_POSITION,\n attributeNameNew: AttributeNames.layout.imagePosition,\n attributeValue: AttributesValues.layout.left,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imagePosition,\n attributeValue: AttributesValues.layout.left,\n defaultValue: false,\n }),\n imageScaled: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imageScaled,\n attributeValue: AttributesValues.state.TRUE,\n defaultValue: true,\n }),\n interior: createAttributeCheck(\n AttributeNames.layout.interior,\n AttributesValues.state.TRUE,\n ),\n lock: createAttributeCheck(\n AttributeNames.layout.lock,\n AttributesValues.state.TRUE,\n ),\n lockFull: createAttributeCheck(\n AttributeNames.layout.lock,\n AttributesValues.layout.large,\n ),\n reverse: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.layout.DEFAULT,\n attributeNameNew: AttributeNames.layout.reverse,\n attributeValue: AttributesValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.reverse,\n attributeValue: AttributesValues.state.TRUE,\n }),\n spaceHorizontalLarge: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.spaceHorizontal,\n attributeValue: AttributesValues.layout.large,\n }),\n textCentered: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.visual.VISUAL_TEXT_CENTER,\n attributeNameNew: AttributeNames.layout.text,\n attributeValue: AttributesValues.layout.center,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.text,\n attributeValue: AttributesValues.layout.center,\n }),\n} as const;\n\n// Social checks\n\nconst isSharing = {\n email: createAttributeCheck(\n AttributeNames.sharing.email,\n AttributesValues.state.TRUE,\n ),\n print: createAttributeCheck(\n AttributeNames.sharing.print,\n AttributesValues.state.TRUE,\n ),\n} as const;\n\nconst includesSharing = {\n facebook: createAttributeCheck(\n AttributeNames.social.facebook,\n AttributesValues.state.TRUE,\n true,\n ),\n twitter: createAttributeCheck(\n AttributeNames.social.twitter,\n AttributesValues.state.TRUE,\n true,\n ),\n} as const;\n\n// Theme checks\nconst isTheme = {\n dark: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.theme.THEME_DEPRECATD,\n attributeNameNew: AttributeNames.theme.default,\n attributeValue: AttributesValues.theme.DARK,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributesValues.theme.DARK,\n }),\n gold: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.theme.THEME_DEPRECATD,\n attributeNameNew: AttributeNames.theme.default,\n attributeValue: AttributesValues.theme.GOLD,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributesValues.theme.GOLD,\n }),\n light: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.theme.THEME_DEPRECATD,\n attributeNameNew: AttributeNames.theme.default,\n attributeValue: AttributesValues.theme.LIGHT,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributesValues.theme.LIGHT,\n }),\n maryland: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.theme.THEME_DEPRECATD,\n attributeNameNew: AttributeNames.theme.default,\n attributeValue: AttributesValues.theme.MARYLAND,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributesValues.theme.MARYLAND,\n }),\n} as const;\n\n// Visual checks\nconst isVisual = {\n aligned: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.visual.VISUAL_ALIGN,\n attributeNameNew: AttributeNames.visual.imageAligned,\n attributeValue: AttributesValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.imageAligned,\n attributeValue: AttributesValues.state.TRUE,\n }),\n bordered: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.visual.VISUAL_BORDER,\n attributeNameNew: AttributeNames.visual.bordered,\n attributeValue: AttributesValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.bordered,\n attributeValue: AttributesValues.state.TRUE,\n }),\n campaign: createAttributeCheck(\n AttributeNames.visual.campaign,\n AttributesValues.campaign.forward,\n ),\n icon_seal: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.visual.VISUAL_HAS_LOGO,\n attributeNameNew: AttributeNames.visual.iconSeal,\n attributeValue: AttributesValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.iconSeal,\n attributeValue: AttributesValues.state.TRUE,\n }),\n open: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.state.STATE_DEPRECATD,\n attributeNameNew: AttributeNames.visual.open,\n attributeValue: AttributesValues.state.OPENED,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.open,\n attributeValue: AttributesValues.state.TRUE,\n }),\n play: createAttributeCheck(\n AttributeNames.visual.play,\n AttributesValues.state.TRUE,\n ),\n quote: createAttributeCheck(\n AttributeNames.deprecated.visual.VISUAL_QUOTE,\n AttributesValues.state.TRUE,\n ),\n showIcon: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.visual.VISUAL_ICON,\n attributeNameNew: AttributeNames.visual.icon,\n attributeValue: AttributesValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.icon,\n attributeValue: AttributesValues.state.TRUE,\n }),\n sizeNormal: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.display.DISPLAY_SIZE,\n attributeNameNew: AttributeNames.visual.size,\n attributeValue: AttributesValues.size.NORMAL,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.size,\n attributeValue: AttributesValues.size.NORMAL,\n }),\n showTime: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.feature.SHOW_TIME,\n attributeNameNew: AttributeNames.visual.time,\n attributeValue: AttributesValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.time,\n attributeValue: AttributesValues.state.TRUE,\n defaultValue: true,\n }),\n sizeLarge: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.display.DISPLAY_SIZE,\n attributeNameNew: AttributeNames.visual.size,\n attributeValue: AttributesValues.size.LARGE,\n }) ||\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.display.DISPLAY_SIZE,\n attributeNameNew: AttributeNames.visual.size,\n attributeValue: '',\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.size,\n attributeValue: AttributesValues.size.LARGE,\n }),\n stickyFirst: createAttributeCheck(\n AttributeNames.deprecated.option.OPTIONAL_STICKY_FIRST,\n AttributesValues.state.TRUE,\n true,\n ),\n transparent: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.visual.VISUAL_TRANSPARENT,\n attributeNameNew: AttributeNames.visual.transparent,\n attributeValue: AttributesValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.transparent,\n attributeValue: AttributesValues.state.TRUE,\n }),\n} as const;\n\n// Type checks\nconst isType = {\n mega: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.type.default,\n attributeValue: AttributesValues.type.MEGA,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.type.default,\n attributeValue: AttributesValues.type.MEGA,\n }),\n visual: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.type.default,\n attributeValue: AttributesValues.type.VISUAL,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.type.default,\n attributeValue: AttributesValues.type.VISUAL,\n }),\n simple: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.type.default,\n attributeValue: AttributesValues.type.SIMPLE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.type.default,\n attributeValue: AttributesValues.type.SIMPLE,\n }),\n} as const;\n\n// Value getters\nconst getValue = {\n alertUrl: createValueGetter({\n currentName: AttributeNames.information.alertUrl,\n }),\n daysToHide: createValueGetter({\n currentName: AttributeNames.visual.hiddenDays,\n deprecatedName: AttributeNames.deprecated.visual.VISUAL_DAYS_TO_HIDE,\n }),\n feedEntryRemoveIds: createValueGetter({\n currentName: AttributeNames.information.removeIds,\n deprecatedName: AttributeNames.deprecated.feed.FEED_NOT_ENTRIES,\n }),\n feedFilterIds: createValueGetter({\n currentName: AttributeNames.information.filterIds,\n deprecatedName: AttributeNames.deprecated.feed.FEED_CATEGORIES,\n }),\n feedToken: createValueGetter({\n currentName: AttributeNames.information.token,\n deprecatedName: AttributeNames.deprecated.feed.FEED_TOKEN,\n }),\n giftUrl: createValueGetter({\n currentName: AttributeNames.information.gift,\n }),\n layoutColumnCount: createValueGetter({\n currentName: AttributeNames.layout.columnCount,\n deprecatedName: AttributeNames.deprecated.feed.FEED_COLUMN_COUNT,\n }),\n layoutLock: createValueGetter({\n currentName: AttributeNames.layout.lock,\n }),\n layoutRowCount: createValueGetter({\n currentName: AttributeNames.layout.rowCount,\n deprecatedName: AttributeNames.deprecated.feed.FEED_ROW_COUNT,\n }),\n title: createValueGetter({\n currentName: AttributeNames.information.title,\n }),\n topPosition: createValueGetter({\n currentName: AttributeNames.layout.position,\n deprecatedName: AttributeNames.deprecated.layout.LAYOUT_STICKY_TOP,\n }),\n styleProps: (props: AttributeElementProps) => {\n const cssString = createValueGetter({\n ...props,\n currentName: AttributeNames.deprecated.visual.VISUAL_STYLE_PROPS,\n });\n\n if (cssString && typeof cssString === 'string') {\n return Styles.utilities.create.jss.objectFromString(cssString);\n }\n },\n url: createValueGetter({\n currentName: AttributeNames.information.url,\n }),\n} as const;\n\n// Public API\nexport {\n hasInfo,\n hasDecoration,\n includesFeature,\n isDisplay,\n isData,\n isInfo,\n isLayout,\n isSharing,\n includesSharing,\n isTheme,\n isType,\n isVisual,\n getValue,\n};\n\nexport type {\n AttributeElementProps,\n AttributeProps,\n AttributeNullProps,\n DeprecatedAttributeProps,\n};\n"],"names":["AttributeNames","AttributesValues","Styles"],"mappings":"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"}
|