@universityofmaryland/web-model-library 1.0.7 → 1.1.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.
Files changed (209) hide show
  1. package/LICENSE +5 -0
  2. package/README.md +1 -1
  3. package/dist/_types.d.ts +43 -0
  4. package/dist/_types.d.ts.map +1 -1
  5. package/dist/_virtual/index.js +1 -1
  6. package/dist/_virtual/postcss.js +1 -1
  7. package/dist/attributes/change-detection.d.ts +21 -0
  8. package/dist/attributes/change-detection.d.ts.map +1 -0
  9. package/dist/attributes/change-detection.js +60 -0
  10. package/dist/attributes/change-detection.js.map +1 -0
  11. package/dist/attributes/checks.d.ts.map +1 -1
  12. package/dist/attributes/checks.js +15 -8
  13. package/dist/attributes/checks.js.map +1 -1
  14. package/dist/attributes/config.d.ts +29 -0
  15. package/dist/attributes/config.d.ts.map +1 -0
  16. package/dist/attributes/config.js +57 -0
  17. package/dist/attributes/config.js.map +1 -0
  18. package/dist/attributes/converters.d.ts +14 -0
  19. package/dist/attributes/converters.d.ts.map +1 -0
  20. package/dist/attributes/converters.js +84 -0
  21. package/dist/attributes/converters.js.map +1 -0
  22. package/dist/attributes/errors.d.ts +16 -0
  23. package/dist/attributes/errors.d.ts.map +1 -0
  24. package/dist/attributes/errors.js +51 -0
  25. package/dist/attributes/errors.js.map +1 -0
  26. package/dist/attributes/index.d.ts +4 -0
  27. package/dist/attributes/index.d.ts.map +1 -1
  28. package/dist/attributes.js +18 -0
  29. package/dist/attributes.js.map +1 -1
  30. package/dist/index.d.ts +2 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +3 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/model/controllers.d.ts +22 -0
  35. package/dist/model/controllers.d.ts.map +1 -0
  36. package/dist/model/controllers.js +53 -0
  37. package/dist/model/controllers.js.map +1 -0
  38. package/dist/model/errors.d.ts +13 -0
  39. package/dist/model/errors.d.ts.map +1 -0
  40. package/dist/model/errors.js +23 -0
  41. package/dist/model/errors.js.map +1 -0
  42. package/dist/model/index.d.ts +54 -3
  43. package/dist/model/index.d.ts.map +1 -1
  44. package/dist/model/registration.d.ts +13 -0
  45. package/dist/model/registration.d.ts.map +1 -0
  46. package/dist/model/registration.js +83 -0
  47. package/dist/model/registration.js.map +1 -0
  48. package/dist/model/update-cycle.d.ts +12 -0
  49. package/dist/model/update-cycle.d.ts.map +1 -0
  50. package/dist/model/update-cycle.js +41 -0
  51. package/dist/model/update-cycle.js.map +1 -0
  52. package/dist/model.js +335 -55
  53. package/dist/model.js.map +1 -1
  54. package/dist/node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/non-secure/index.js.map +1 -0
  55. package/dist/node_modules/{picocolors → .pnpm/picocolors@1.1.1/node_modules/picocolors}/picocolors.browser.js +1 -1
  56. package/dist/node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.browser.js.map +1 -0
  57. package/dist/node_modules/.pnpm/postcss-discard-duplicates@5.1.0_postcss@8.5.8/node_modules/postcss-discard-duplicates/src/index.js.map +1 -0
  58. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/at-rule.js.map +1 -0
  59. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/comment.js.map +1 -0
  60. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/container.js.map +1 -0
  61. package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/css-syntax-error.js +2 -2
  62. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/css-syntax-error.js.map +1 -0
  63. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/declaration.js.map +1 -0
  64. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/document.js.map +1 -0
  65. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/fromJSON.js.map +1 -0
  66. package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/input.js +2 -2
  67. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/input.js.map +1 -0
  68. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/lazy-result.js.map +1 -0
  69. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/list.js.map +1 -0
  70. package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/map-generator.js +1 -1
  71. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/map-generator.js.map +1 -0
  72. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/no-work-result.js.map +1 -0
  73. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/node.js.map +1 -0
  74. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/parse.js.map +1 -0
  75. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/parser.js.map +1 -0
  76. package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/postcss.js +1 -1
  77. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/postcss.js.map +1 -0
  78. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/postcss2.js.map +1 -0
  79. package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/previous-map.js +1 -1
  80. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/previous-map.js.map +1 -0
  81. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/processor.js.map +1 -0
  82. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/result.js.map +1 -0
  83. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/root.js.map +1 -0
  84. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/rule.js.map +1 -0
  85. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/stringifier.js.map +1 -0
  86. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/stringify.js.map +1 -0
  87. package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/symbols.js +1 -1
  88. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/symbols.js.map +1 -0
  89. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/tokenize.js.map +1 -0
  90. package/dist/node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/warning.js.map +1 -0
  91. package/dist/slots/index.d.ts +6 -0
  92. package/dist/slots/index.d.ts.map +1 -1
  93. package/dist/slots/slot-events.d.ts +32 -0
  94. package/dist/slots/slot-events.d.ts.map +1 -0
  95. package/dist/slots/slot-events.js +83 -0
  96. package/dist/slots/slot-events.js.map +1 -0
  97. package/dist/slots/slot-query.d.ts +18 -0
  98. package/dist/slots/slot-query.d.ts.map +1 -0
  99. package/dist/slots/slot-query.js +59 -0
  100. package/dist/slots/slot-query.js.map +1 -0
  101. package/dist/slots/slot-validation.d.ts +5 -0
  102. package/dist/slots/slot-validation.d.ts.map +1 -0
  103. package/dist/slots/slot-validation.js +89 -0
  104. package/dist/slots/slot-validation.js.map +1 -0
  105. package/dist/slots.js +15 -1
  106. package/dist/slots.js.map +1 -1
  107. package/dist/testing/console.d.ts +8 -0
  108. package/dist/testing/console.d.ts.map +1 -0
  109. package/dist/testing/console.js +39 -0
  110. package/dist/testing/console.js.map +1 -0
  111. package/dist/testing/events.d.ts +11 -0
  112. package/dist/testing/events.d.ts.map +1 -0
  113. package/dist/testing/events.js +47 -0
  114. package/dist/testing/events.js.map +1 -0
  115. package/dist/testing/fixture.d.ts +10 -0
  116. package/dist/testing/fixture.d.ts.map +1 -0
  117. package/dist/testing/fixture.js +36 -0
  118. package/dist/testing/fixture.js.map +1 -0
  119. package/dist/testing/index.d.ts +8 -0
  120. package/dist/testing/index.d.ts.map +1 -0
  121. package/dist/testing/shadow.d.ts +6 -0
  122. package/dist/testing/shadow.d.ts.map +1 -0
  123. package/dist/testing/shadow.js +27 -0
  124. package/dist/testing/shadow.js.map +1 -0
  125. package/dist/testing/slots.d.ts +10 -0
  126. package/dist/testing/slots.d.ts.map +1 -0
  127. package/dist/testing/slots.js +62 -0
  128. package/dist/testing/slots.js.map +1 -0
  129. package/dist/testing.d.ts +2 -0
  130. package/dist/testing.js +26 -0
  131. package/dist/testing.js.map +1 -0
  132. package/dist/utilities/debug.d.ts +365 -0
  133. package/dist/utilities/debug.d.ts.map +1 -0
  134. package/dist/utilities/debug.js +71 -0
  135. package/dist/utilities/debug.js.map +1 -0
  136. package/dist/utilities/dom.d.ts +11 -0
  137. package/dist/utilities/dom.d.ts.map +1 -0
  138. package/dist/utilities/dom.js +57 -0
  139. package/dist/utilities/dom.js.map +1 -0
  140. package/dist/utilities/events.d.ts +22 -0
  141. package/dist/utilities/events.d.ts.map +1 -0
  142. package/dist/utilities/events.js +49 -0
  143. package/dist/utilities/events.js.map +1 -0
  144. package/dist/utilities/index.d.ts +7 -0
  145. package/dist/utilities/index.d.ts.map +1 -1
  146. package/dist/utilities/register.d.ts.map +1 -1
  147. package/dist/utilities/register.js +16 -4
  148. package/dist/utilities/register.js.map +1 -1
  149. package/dist/utilities/styles.js +1 -1
  150. package/dist/utilities/types.d.ts +10 -0
  151. package/dist/utilities/types.d.ts.map +1 -0
  152. package/dist/utilities/types.js +45 -0
  153. package/dist/utilities/types.js.map +1 -0
  154. package/dist/utilities.js +27 -1
  155. package/dist/utilities.js.map +1 -1
  156. package/package.json +21 -15
  157. package/dist/node_modules/nanoid/non-secure/index.js.map +0 -1
  158. package/dist/node_modules/picocolors/picocolors.browser.js.map +0 -1
  159. package/dist/node_modules/postcss/lib/at-rule.js.map +0 -1
  160. package/dist/node_modules/postcss/lib/comment.js.map +0 -1
  161. package/dist/node_modules/postcss/lib/container.js.map +0 -1
  162. package/dist/node_modules/postcss/lib/css-syntax-error.js.map +0 -1
  163. package/dist/node_modules/postcss/lib/declaration.js.map +0 -1
  164. package/dist/node_modules/postcss/lib/document.js.map +0 -1
  165. package/dist/node_modules/postcss/lib/fromJSON.js.map +0 -1
  166. package/dist/node_modules/postcss/lib/input.js.map +0 -1
  167. package/dist/node_modules/postcss/lib/lazy-result.js.map +0 -1
  168. package/dist/node_modules/postcss/lib/list.js.map +0 -1
  169. package/dist/node_modules/postcss/lib/map-generator.js.map +0 -1
  170. package/dist/node_modules/postcss/lib/no-work-result.js.map +0 -1
  171. package/dist/node_modules/postcss/lib/node.js.map +0 -1
  172. package/dist/node_modules/postcss/lib/parse.js.map +0 -1
  173. package/dist/node_modules/postcss/lib/parser.js.map +0 -1
  174. package/dist/node_modules/postcss/lib/postcss.js.map +0 -1
  175. package/dist/node_modules/postcss/lib/postcss2.js.map +0 -1
  176. package/dist/node_modules/postcss/lib/previous-map.js.map +0 -1
  177. package/dist/node_modules/postcss/lib/processor.js.map +0 -1
  178. package/dist/node_modules/postcss/lib/result.js.map +0 -1
  179. package/dist/node_modules/postcss/lib/root.js.map +0 -1
  180. package/dist/node_modules/postcss/lib/rule.js.map +0 -1
  181. package/dist/node_modules/postcss/lib/stringifier.js.map +0 -1
  182. package/dist/node_modules/postcss/lib/stringify.js.map +0 -1
  183. package/dist/node_modules/postcss/lib/symbols.js.map +0 -1
  184. package/dist/node_modules/postcss/lib/tokenize.js.map +0 -1
  185. package/dist/node_modules/postcss/lib/warning.js.map +0 -1
  186. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js.map +0 -1
  187. /package/dist/node_modules/{nanoid → .pnpm/nanoid@3.3.11/node_modules/nanoid}/non-secure/index.js +0 -0
  188. /package/dist/{packages/model → node_modules/.pnpm/postcss-discard-duplicates@5.1.0_postcss@8.5.8}/node_modules/postcss-discard-duplicates/src/index.js +0 -0
  189. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/at-rule.js +0 -0
  190. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/comment.js +0 -0
  191. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/container.js +0 -0
  192. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/declaration.js +0 -0
  193. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/document.js +0 -0
  194. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/fromJSON.js +0 -0
  195. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/lazy-result.js +0 -0
  196. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/list.js +0 -0
  197. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/no-work-result.js +0 -0
  198. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/node.js +0 -0
  199. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/parse.js +0 -0
  200. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/parser.js +0 -0
  201. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/postcss2.js +0 -0
  202. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/processor.js +0 -0
  203. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/result.js +0 -0
  204. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/root.js +0 -0
  205. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/rule.js +0 -0
  206. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/stringifier.js +0 -0
  207. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/stringify.js +0 -0
  208. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/tokenize.js +0 -0
  209. /package/dist/node_modules/{postcss → .pnpm/postcss@8.5.8/node_modules/postcss}/lib/warning.js +0 -0
package/LICENSE ADDED
@@ -0,0 +1,5 @@
1
+ Copyright (c) 2023 University of Maryland.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @universityofmaryland/web-model-library
2
2
 
3
- [![Model Version](https://img.shields.io/badge/Model-v1.0.7-blue)](https://www.npmjs.com/package/@universityofmaryland/web-model-library)
3
+ [![Model Version](https://img.shields.io/badge/Model-v1.1.0-blue)](https://www.npmjs.com/package/@universityofmaryland/web-model-library)
4
4
 
5
5
  Core utilities for building web components in the UMD design system. Provides the foundational tools for attribute handling, slot management, component registration, and custom element creation.
6
6
 
package/dist/_types.d.ts CHANGED
@@ -25,8 +25,23 @@ export interface SlotConfig {
25
25
  allowedElements?: string[];
26
26
  deprecated?: string;
27
27
  replacement?: string;
28
+ disallowedElements?: string[];
29
+ validate?: (elements: Element[]) => boolean | string;
30
+ minItems?: number;
31
+ maxItems?: number;
28
32
  }
29
33
  export type SlotConfiguration = Record<string, SlotConfig>;
34
+ export type SlotErrorType = 'missing' | 'deprecated' | 'invalid-elements' | 'disallowed-elements' | 'min-items' | 'max-items' | 'custom-validation';
35
+ export interface SlotValidationError {
36
+ slot: string;
37
+ error: SlotErrorType;
38
+ message: string;
39
+ invalidElements?: Element[];
40
+ }
41
+ export interface SlotValidationResult {
42
+ isValid: boolean;
43
+ errors: SlotValidationError[];
44
+ }
30
45
  export interface ComponentEventDetail {
31
46
  tagName: string;
32
47
  element: HTMLElement;
@@ -59,6 +74,21 @@ export interface ComponentConfiguration {
59
74
  slots?: SlotConfiguration;
60
75
  createComponent: CreateComponentFunction;
61
76
  attributes?: any | any[];
77
+ reactiveAttributes?: Record<string, {
78
+ attribute?: string | false;
79
+ type?: 'string' | 'number' | 'boolean' | 'object' | 'array';
80
+ reflect?: boolean;
81
+ converter?: {
82
+ fromAttribute: (value: string | null, name: string) => unknown;
83
+ toAttribute: (value: unknown) => string | null;
84
+ };
85
+ defaultValue?: unknown;
86
+ validate?: (value: unknown) => string | void;
87
+ onChange?: (host: HTMLElement, newValue: unknown, oldValue: unknown) => void;
88
+ hasChanged?: (newValue: unknown, oldValue: unknown) => boolean;
89
+ }>;
90
+ firstConnected?: (host: HTMLElement, shadow: ShadowRoot) => void;
91
+ willFirstUpdate?: (host: HTMLElement, shadow: ShadowRoot) => void;
62
92
  beforeConnect?: (ref: ComponentRef, shadow: ShadowRoot) => void;
63
93
  afterConnect?: (ref: ComponentRef, shadow?: ShadowRoot) => void;
64
94
  onReady?: (ref: ComponentRef) => void;
@@ -74,4 +104,17 @@ export interface AttributeElementRef {
74
104
  [key: string]: any;
75
105
  };
76
106
  }
107
+ export type PropertyValues<T = any> = Map<keyof T & string, unknown>;
108
+ export interface ReactiveController {
109
+ hostConnected?(): void;
110
+ hostDisconnected?(): void;
111
+ hostUpdate?(): void;
112
+ hostUpdated?(): void;
113
+ }
114
+ export interface ReactiveControllerHost extends HTMLElement {
115
+ addController(controller: ReactiveController): void;
116
+ removeController(controller: ReactiveController): void;
117
+ requestUpdate(name?: string, oldValue?: unknown): void;
118
+ readonly updateComplete: Promise<boolean>;
119
+ }
77
120
  //# sourceMappingURL=_types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../source/_types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../source/_types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from "./_commonjsHelpers.js";
2
- import { __require as requireSrc } from "../packages/model/node_modules/postcss-discard-duplicates/src/index.js";
2
+ import { __require as requireSrc } from "../node_modules/.pnpm/postcss-discard-duplicates@5.1.0_postcss@8.5.8/node_modules/postcss-discard-duplicates/src/index.js";
3
3
  var srcExports = requireSrc();
4
4
  const postcssDuplicates = /* @__PURE__ */ getDefaultExportFromCjs(srcExports);
5
5
  export {
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from "./_commonjsHelpers.js";
2
- import { __require as requirePostcss } from "../node_modules/postcss/lib/postcss2.js";
2
+ import { __require as requirePostcss } from "../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/postcss2.js";
3
3
  var postcssExports = requirePostcss();
4
4
  const postcss = /* @__PURE__ */ getDefaultExportFromCjs(postcssExports);
5
5
  export {
@@ -0,0 +1,21 @@
1
+ export declare function defaultEquality(a: unknown, b: unknown): boolean;
2
+ export declare function jsonEquality(a: unknown, b: unknown): boolean;
3
+ export type EqualityFn = (a: unknown, b: unknown) => boolean;
4
+ export declare class ChangeDetector {
5
+ private values;
6
+ private equalityFn;
7
+ constructor(equalityFn?: EqualityFn);
8
+ set(key: string, value: unknown, equalityFn?: EqualityFn): boolean;
9
+ get(key: string): unknown;
10
+ has(key: string): boolean;
11
+ reset(): void;
12
+ }
13
+ export declare const ChangeDetectors: {
14
+ readonly always: (_newVal: unknown, _oldVal: unknown) => boolean;
15
+ readonly never: (_newVal: unknown, _oldVal: unknown) => boolean;
16
+ readonly deep: (newVal: unknown, oldVal: unknown) => boolean;
17
+ readonly shallow: (newVal: unknown, oldVal: unknown) => boolean;
18
+ readonly threshold: (epsilon: number) => (newVal: unknown, oldVal: unknown) => boolean;
19
+ };
20
+ export type HasChangedFn = (newValue: unknown, oldValue: unknown) => boolean;
21
+ //# sourceMappingURL=change-detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-detection.d.ts","sourceRoot":"","sources":["../../source/attributes/change-detection.ts"],"names":[],"mappings":"AAQA,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAE/D;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;AAE7D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,GAAE,UAA4B;IAKpD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO;IAUlE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;CAGd;AAiBD,eAAO,MAAM,eAAe;+BAER,OAAO,WAAW,OAAO,KAAG,OAAO;8BAGpC,OAAO,WAAW,OAAO,KAAG,OAAO;4BAGrC,OAAO,UAAU,OAAO,KAAG,OAAO;+BAI/B,OAAO,UAAU,OAAO,KAAG,OAAO;kCAKxC,MAAM,cACP,OAAO,UAAU,OAAO,KAAG,OAAO;CAErC,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC"}
@@ -0,0 +1,60 @@
1
+ function defaultEquality(a, b) {
2
+ return Object.is(a, b);
3
+ }
4
+ function jsonEquality(a, b) {
5
+ return JSON.stringify(a) === JSON.stringify(b);
6
+ }
7
+ class ChangeDetector {
8
+ constructor(equalityFn = defaultEquality) {
9
+ this.values = /* @__PURE__ */ new Map();
10
+ this.equalityFn = equalityFn;
11
+ }
12
+ /** Returns `true` if the value changed. */
13
+ set(key, value, equalityFn) {
14
+ const prev = this.values.get(key);
15
+ const eq = equalityFn ?? this.equalityFn;
16
+ if (this.values.has(key) && eq(prev, value)) {
17
+ return false;
18
+ }
19
+ this.values.set(key, value);
20
+ return true;
21
+ }
22
+ get(key) {
23
+ return this.values.get(key);
24
+ }
25
+ has(key) {
26
+ return this.values.has(key);
27
+ }
28
+ reset() {
29
+ this.values.clear();
30
+ }
31
+ }
32
+ function shallowEqual(a, b) {
33
+ if (Object.is(a, b)) return true;
34
+ if (typeof a !== "object" || typeof b !== "object" || a === null || b === null) return false;
35
+ const keysA = Object.keys(a);
36
+ const keysB = Object.keys(b);
37
+ if (keysA.length !== keysB.length) return false;
38
+ return keysA.every(
39
+ (key) => Object.is(a[key], b[key])
40
+ );
41
+ }
42
+ const ChangeDetectors = {
43
+ /** Always changed — update on every set. */
44
+ always: (_newVal, _oldVal) => true,
45
+ /** Never changed — manual updates only. */
46
+ never: (_newVal, _oldVal) => false,
47
+ /** Deep structural comparison via JSON serialization. */
48
+ deep: (newVal, oldVal) => JSON.stringify(newVal) !== JSON.stringify(oldVal),
49
+ /** Shallow object comparison — compares own enumerable properties by reference. */
50
+ shallow: (newVal, oldVal) => !shallowEqual(newVal, oldVal),
51
+ /** Number threshold — only changed if difference exceeds epsilon. */
52
+ threshold: (epsilon) => (newVal, oldVal) => Math.abs(newVal - oldVal) > epsilon
53
+ };
54
+ export {
55
+ ChangeDetector,
56
+ ChangeDetectors,
57
+ defaultEquality,
58
+ jsonEquality
59
+ };
60
+ //# sourceMappingURL=change-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-detection.js","sources":["../../source/attributes/change-detection.ts"],"sourcesContent":["/**\n * Dirty-checking utilities for reactive attribute properties.\n *\n * Provides equality functions and a `ChangeDetector` class that\n * tracks per-property values and reports whether a set actually changed.\n */\n\n/** Strict equality via `Object.is` — handles NaN correctly. */\nexport function defaultEquality(a: unknown, b: unknown): boolean {\n return Object.is(a, b);\n}\n\n/** Deep-ish equality via JSON serialisation. Suitable for plain objects/arrays. */\nexport function jsonEquality(a: unknown, b: unknown): boolean {\n return JSON.stringify(a) === JSON.stringify(b);\n}\n\nexport type EqualityFn = (a: unknown, b: unknown) => boolean;\n\nexport class ChangeDetector {\n private values = new Map<string, unknown>();\n private equalityFn: EqualityFn;\n\n constructor(equalityFn: EqualityFn = defaultEquality) {\n this.equalityFn = equalityFn;\n }\n\n /** Returns `true` if the value changed. */\n set(key: string, value: unknown, equalityFn?: EqualityFn): boolean {\n const prev = this.values.get(key);\n const eq = equalityFn ?? this.equalityFn;\n if (this.values.has(key) && eq(prev, value)) {\n return false;\n }\n this.values.set(key, value);\n return true;\n }\n\n get(key: string): unknown {\n return this.values.get(key);\n }\n\n has(key: string): boolean {\n return this.values.has(key);\n }\n\n reset(): void {\n this.values.clear();\n }\n}\n\nfunction shallowEqual(a: unknown, b: unknown): boolean {\n if (Object.is(a, b)) return true;\n if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) return false;\n const keysA = Object.keys(a as object);\n const keysB = Object.keys(b as object);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((key) =>\n Object.is((a as Record<string, unknown>)[key], (b as Record<string, unknown>)[key]),\n );\n}\n\n/**\n * Pre-built `hasChanged` functions for use with `ReactiveAttributeConfig.hasChanged`.\n * Each returns `true` when the value has changed and an update should fire.\n */\nexport const ChangeDetectors = {\n /** Always changed — update on every set. */\n always: (_newVal: unknown, _oldVal: unknown): boolean => true,\n\n /** Never changed — manual updates only. */\n never: (_newVal: unknown, _oldVal: unknown): boolean => false,\n\n /** Deep structural comparison via JSON serialization. */\n deep: (newVal: unknown, oldVal: unknown): boolean =>\n JSON.stringify(newVal) !== JSON.stringify(oldVal),\n\n /** Shallow object comparison — compares own enumerable properties by reference. */\n shallow: (newVal: unknown, oldVal: unknown): boolean =>\n !shallowEqual(newVal, oldVal),\n\n /** Number threshold — only changed if difference exceeds epsilon. */\n threshold:\n (epsilon: number) =>\n (newVal: unknown, oldVal: unknown): boolean =>\n Math.abs((newVal as number) - (oldVal as number)) > epsilon,\n} as const;\n\nexport type HasChangedFn = (newValue: unknown, oldValue: unknown) => boolean;\n"],"names":[],"mappings":"AAQO,SAAS,gBAAgB,GAAY,GAAqB;AAC/D,SAAO,OAAO,GAAG,GAAG,CAAC;AACvB;AAGO,SAAS,aAAa,GAAY,GAAqB;AAC5D,SAAO,KAAK,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC;AAC/C;AAIO,MAAM,eAAe;AAAA,EAI1B,YAAY,aAAyB,iBAAiB;AAHtD,SAAQ,6BAAa,IAAA;AAInB,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA,EAGA,IAAI,KAAa,OAAgB,YAAkC;AACjE,UAAM,OAAO,KAAK,OAAO,IAAI,GAAG;AAChC,UAAM,KAAK,cAAc,KAAK;AAC9B,QAAI,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG,MAAM,KAAK,GAAG;AAC3C,aAAO;AAAA,IACT;AACA,SAAK,OAAO,IAAI,KAAK,KAAK;AAC1B,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,KAAsB;AACxB,WAAO,KAAK,OAAO,IAAI,GAAG;AAAA,EAC5B;AAAA,EAEA,IAAI,KAAsB;AACxB,WAAO,KAAK,OAAO,IAAI,GAAG;AAAA,EAC5B;AAAA,EAEA,QAAc;AACZ,SAAK,OAAO,MAAA;AAAA,EACd;AACF;AAEA,SAAS,aAAa,GAAY,GAAqB;AACrD,MAAI,OAAO,GAAG,GAAG,CAAC,EAAG,QAAO;AAC5B,MAAI,OAAO,MAAM,YAAY,OAAO,MAAM,YAAY,MAAM,QAAQ,MAAM,KAAM,QAAO;AACvF,QAAM,QAAQ,OAAO,KAAK,CAAW;AACrC,QAAM,QAAQ,OAAO,KAAK,CAAW;AACrC,MAAI,MAAM,WAAW,MAAM,OAAQ,QAAO;AAC1C,SAAO,MAAM;AAAA,IAAM,CAAC,QAClB,OAAO,GAAI,EAA8B,GAAG,GAAI,EAA8B,GAAG,CAAC;AAAA,EAAA;AAEtF;AAMO,MAAM,kBAAkB;AAAA;AAAA,EAE7B,QAAQ,CAAC,SAAkB,YAA8B;AAAA;AAAA,EAGzD,OAAO,CAAC,SAAkB,YAA8B;AAAA;AAAA,EAGxD,MAAM,CAAC,QAAiB,WACtB,KAAK,UAAU,MAAM,MAAM,KAAK,UAAU,MAAM;AAAA;AAAA,EAGlD,SAAS,CAAC,QAAiB,WACzB,CAAC,aAAa,QAAQ,MAAM;AAAA;AAAA,EAG9B,WACE,CAAC,YACD,CAAC,QAAiB,WAChB,KAAK,IAAK,SAAqB,MAAiB,IAAI;AAC1D;"}
@@ -1 +1 @@
1
- {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../source/attributes/checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../source/attributes/checks.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as Styles from "@universityofmaryland/web-styles-library";
2
2
  import { AttributeNames } from "./names.js";
3
3
  import { AttributeValues } from "./values.js";
4
+ import { devWarning } from "./errors.js";
4
5
  const isAttributeTrue = ({
5
6
  element,
6
7
  attributeName,
@@ -25,12 +26,12 @@ const isAttributeNotNull = ({
25
26
  if (value === "false") return false;
26
27
  return value !== null;
27
28
  };
28
- const depcreationWarning = ({
29
+ const deprecationWarning = ({
29
30
  element,
30
31
  attributeNameOld,
31
32
  attributeNameNew
32
33
  }) => {
33
- console.warn(
34
+ devWarning(
34
35
  `UMD Web Component: ${element.nodeName} - Attribute "${attributeNameOld}" is deprecated. Use "${attributeNameNew}" instead. This attribute will be removed in version 2.0.`
35
36
  );
36
37
  };
@@ -49,7 +50,7 @@ const checkDeprecatedAttribute = (props) => {
49
50
  attributeValue
50
51
  });
51
52
  if (isDeprecatedUsed) {
52
- depcreationWarning(props);
53
+ deprecationWarning(props);
53
54
  return true;
54
55
  }
55
56
  return false;
@@ -68,7 +69,7 @@ const createValueGetter = ({
68
69
  if (deprecatedName) {
69
70
  const deprecatedValue = element.getAttribute(deprecatedName);
70
71
  if (deprecatedValue !== null) {
71
- depcreationWarning({
72
+ deprecationWarning({
72
73
  element,
73
74
  attributeNameOld: deprecatedName,
74
75
  attributeNameNew: currentName
@@ -284,10 +285,16 @@ const isDisplay = {
284
285
  attributeName: AttributeNames.deprecated.type.TYPE,
285
286
  attributeValue: AttributeValues.layout.defaultInteriorCentered
286
287
  }),
287
- statement: createAttributeCheck(
288
- AttributeNames.deprecated.display.DISPLAY,
289
- AttributeValues.display.statement
290
- ),
288
+ statement: (props) => checkDeprecatedAttribute({
289
+ ...props,
290
+ attributeNameOld: AttributeNames.deprecated.display.DISPLAY,
291
+ attributeNameNew: AttributeNames.display.default,
292
+ attributeValue: AttributeValues.display.statement
293
+ }) || isAttributeTrue({
294
+ ...props,
295
+ attributeName: AttributeNames.display.default,
296
+ attributeValue: AttributeValues.display.statement
297
+ }),
291
298
  sticky: (props) => checkDeprecatedAttribute({
292
299
  ...props,
293
300
  attributeNameOld: AttributeNames.deprecated.type.TYPE,
@@ -1 +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 { AttributeValues } 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 AttributeValues.state.TRUE,\n true,\n ),\n imageExpand: createAttributeCheck(\n AttributeNames.feature.imageExpand,\n AttributeValues.state.TRUE,\n true,\n ),\n fullScreenOption: createAttributeCheck(\n AttributeNames.deprecated.feature.FULLSCREEN,\n AttributeValues.state.TRUE,\n true,\n ),\n visualTime: createAttributeCheck(\n AttributeNames.deprecated.feature.SHOW_TIME,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.feature.lazyLoad,\n attributeValue: AttributeValues.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: AttributeValues.data.type.academic,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.feed.type,\n attributeValue: AttributeValues.data.type.academic,\n }),\n },\n union: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.feed.FEED_UNION,\n attributeNameNew: AttributeNames.feed.union,\n attributeValue: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.feed.union,\n attributeValue: AttributeValues.state.TRUE,\n defaultValue: 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: AttributeValues.display.block,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.block,\n }),\n feature: createAttributeCheck(\n AttributeNames.deprecated.display.DISPLAY,\n AttributeValues.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: AttributeValues.display.featured,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.hero,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.list,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.type.OUTLINE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.overlay,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.overlay,\n }),\n promo: createAttributeCheck(\n AttributeNames.deprecated.display.DISPLAY,\n AttributeValues.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: AttributeValues.type.PRIMARY,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.type.SECONDARY,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.type.SECONDARY,\n }),\n short: createAttributeCheck(\n AttributeNames.display.default,\n AttributeValues.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: AttributeValues.layout.defaultCentered,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributeValues.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: AttributeValues.layout.defaultInterior,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributeValues.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: AttributeValues.layout.defaultInteriorCentered,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributeValues.layout.defaultInteriorCentered,\n }),\n statement: createAttributeCheck(\n AttributeNames.deprecated.display.DISPLAY,\n AttributeValues.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: AttributeValues.display.sticky,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.stacked,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.stacked,\n }),\n stackedInteriorDeprecated: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributeValues.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: AttributeValues.layout.stackedInterior,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.tabular,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.tabular,\n }),\n mega: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.DATA_TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.mega,\n }) ||\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.mega,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.mega,\n }),\n visual: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.DATA_TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.visual,\n }) ||\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.visual,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.visual,\n }),\n simple: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.DATA_TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.simple,\n }) ||\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.simple,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.simple,\n }),\n} as const;\n\n// Information checks\nconst isInfo = {\n admissions: createAttributeCheck(\n AttributeNames.information.admissions,\n AttributeValues.state.TRUE,\n ),\n events: createAttributeCheck(\n AttributeNames.information.events,\n AttributeValues.state.TRUE,\n ),\n news: createAttributeCheck(\n AttributeNames.information.news,\n AttributeValues.state.TRUE,\n ),\n schools: createAttributeCheck(\n AttributeNames.information.schools,\n AttributeValues.state.TRUE,\n ),\n searchDomain: createAttributeCheck(\n AttributeNames.information.searchType,\n AttributeValues.search.domain,\n ),\n} as const;\n\n// Layout checks\nconst isLayout = {\n alertOff: createAttributeCheck(\n AttributeNames.layout.alertOff,\n AttributeValues.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: AttributeValues.layout.right,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.alignment,\n attributeValue: AttributeValues.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: AttributeValues.state.TRUE,\n }),\n fullImage: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributeValues.layout.fullImage,\n ),\n heightSmall: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.height,\n attributeValue: AttributeValues.layout.small,\n }),\n hidden: createAttributeCheck(\n AttributeNames.layout.hidden,\n AttributeValues.state.TRUE,\n ),\n image: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributeValues.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: AttributeValues.layout.right,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imagePosition,\n attributeValue: AttributeValues.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: AttributeValues.layout.left,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imagePosition,\n attributeValue: AttributeValues.layout.left,\n defaultValue: false,\n }),\n imageScaled: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imageScaled,\n attributeValue: AttributeValues.state.TRUE,\n defaultValue: true,\n }),\n interior: createAttributeCheck(\n AttributeNames.layout.interior,\n AttributeValues.state.TRUE,\n ),\n lock: createAttributeCheck(\n AttributeNames.layout.lock,\n AttributeValues.state.TRUE,\n ),\n lockFull: createAttributeCheck(\n AttributeNames.layout.lock,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.reverse,\n attributeValue: AttributeValues.state.TRUE,\n }),\n spaceHorizontalLarge: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.spaceHorizontal,\n attributeValue: AttributeValues.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: AttributeValues.layout.center,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.text,\n attributeValue: AttributeValues.layout.center,\n }),\n} as const;\n\n// Social checks\n\nconst isSharing = {\n email: createAttributeCheck(\n AttributeNames.sharing.email,\n AttributeValues.state.TRUE,\n ),\n print: createAttributeCheck(\n AttributeNames.sharing.print,\n AttributeValues.state.TRUE,\n ),\n} as const;\n\nconst includesSharing = {\n facebook: createAttributeCheck(\n AttributeNames.social.facebook,\n AttributeValues.state.TRUE,\n true,\n ),\n twitter: createAttributeCheck(\n AttributeNames.social.twitter,\n AttributeValues.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: AttributeValues.theme.DARK,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributeValues.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: AttributeValues.theme.GOLD,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributeValues.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: AttributeValues.theme.LIGHT,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributeValues.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: AttributeValues.theme.MARYLAND,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.imageAligned,\n attributeValue: AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.bordered,\n attributeValue: AttributeValues.state.TRUE,\n }),\n campaign: createAttributeCheck(\n AttributeNames.visual.campaign,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.iconSeal,\n attributeValue: AttributeValues.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: AttributeValues.state.OPENED,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.open,\n attributeValue: AttributeValues.state.TRUE,\n }),\n play: createAttributeCheck(\n AttributeNames.visual.play,\n AttributeValues.state.TRUE,\n ),\n quote: createAttributeCheck(\n AttributeNames.deprecated.visual.VISUAL_QUOTE,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.icon,\n attributeValue: AttributeValues.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: AttributeValues.size.NORMAL,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.size,\n attributeValue: AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.time,\n attributeValue: AttributeValues.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: AttributeValues.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: AttributeValues.size.LARGE,\n }),\n stickyFirst: createAttributeCheck(\n AttributeNames.deprecated.option.OPTIONAL_STICKY_FIRST,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.transparent,\n attributeValue: AttributeValues.state.TRUE,\n }),\n} as const;\n\n// Value getters\nconst getValue = {\n alertUrl: createValueGetter({\n currentName: AttributeNames.information.alertUrl,\n }),\n loadingPriority: createValueGetter({\n currentName: AttributeNames.loading.priority,\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 id: createValueGetter({\n currentName: AttributeNames.information.id,\n }),\n ids: createValueGetter({\n currentName: AttributeNames.information.ids,\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 mediaTrained: createValueGetter({\n currentName: AttributeNames.information.mediaTrained,\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 isVisual,\n getValue,\n};\n\nexport type {\n AttributeElementProps,\n AttributeProps,\n AttributeNullProps,\n DeprecatedAttributeProps,\n};\n"],"names":[],"mappings":"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"}
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 { AttributeValues } from './values';\nimport { devWarning } from './errors';\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 deprecationWarning = ({\n element,\n attributeNameOld,\n attributeNameNew,\n}: {\n element: HTMLElement;\n attributeNameOld: string;\n attributeNameNew: string;\n}) => {\n devWarning(\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 deprecationWarning(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 deprecationWarning({\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 AttributeValues.state.TRUE,\n true,\n ),\n imageExpand: createAttributeCheck(\n AttributeNames.feature.imageExpand,\n AttributeValues.state.TRUE,\n true,\n ),\n fullScreenOption: createAttributeCheck(\n AttributeNames.deprecated.feature.FULLSCREEN,\n AttributeValues.state.TRUE,\n true,\n ),\n visualTime: createAttributeCheck(\n AttributeNames.deprecated.feature.SHOW_TIME,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.feature.lazyLoad,\n attributeValue: AttributeValues.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: AttributeValues.data.type.academic,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.feed.type,\n attributeValue: AttributeValues.data.type.academic,\n }),\n },\n union: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.feed.FEED_UNION,\n attributeNameNew: AttributeNames.feed.union,\n attributeValue: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.feed.union,\n attributeValue: AttributeValues.state.TRUE,\n defaultValue: 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: AttributeValues.display.block,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.block,\n }),\n feature: createAttributeCheck(\n AttributeNames.deprecated.display.DISPLAY,\n AttributeValues.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: AttributeValues.display.featured,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.hero,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.list,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.type.OUTLINE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.overlay,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.overlay,\n }),\n promo: createAttributeCheck(\n AttributeNames.deprecated.display.DISPLAY,\n AttributeValues.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: AttributeValues.type.PRIMARY,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.type.SECONDARY,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.type.SECONDARY,\n }),\n short: createAttributeCheck(\n AttributeNames.display.default,\n AttributeValues.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: AttributeValues.layout.defaultCentered,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributeValues.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: AttributeValues.layout.defaultInterior,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributeValues.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: AttributeValues.layout.defaultInteriorCentered,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.deprecated.type.TYPE,\n attributeValue: AttributeValues.layout.defaultInteriorCentered,\n }),\n statement: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.display.DISPLAY,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.statement,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.sticky,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.stacked,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.stacked,\n }),\n stackedInteriorDeprecated: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributeValues.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: AttributeValues.layout.stackedInterior,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.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: AttributeValues.display.tabular,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.tabular,\n }),\n mega: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.DATA_TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.mega,\n }) ||\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.mega,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.mega,\n }),\n visual: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.DATA_TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.visual,\n }) ||\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.visual,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.visual,\n }),\n simple: (props: AttributeElementProps): boolean =>\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.DATA_TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.simple,\n }) ||\n checkDeprecatedAttribute({\n ...props,\n attributeNameOld: AttributeNames.deprecated.type.TYPE,\n attributeNameNew: AttributeNames.display.default,\n attributeValue: AttributeValues.display.simple,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.display.default,\n attributeValue: AttributeValues.display.simple,\n }),\n} as const;\n\n// Information checks\nconst isInfo = {\n admissions: createAttributeCheck(\n AttributeNames.information.admissions,\n AttributeValues.state.TRUE,\n ),\n events: createAttributeCheck(\n AttributeNames.information.events,\n AttributeValues.state.TRUE,\n ),\n news: createAttributeCheck(\n AttributeNames.information.news,\n AttributeValues.state.TRUE,\n ),\n schools: createAttributeCheck(\n AttributeNames.information.schools,\n AttributeValues.state.TRUE,\n ),\n searchDomain: createAttributeCheck(\n AttributeNames.information.searchType,\n AttributeValues.search.domain,\n ),\n} as const;\n\n// Layout checks\nconst isLayout = {\n alertOff: createAttributeCheck(\n AttributeNames.layout.alertOff,\n AttributeValues.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: AttributeValues.layout.right,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.alignment,\n attributeValue: AttributeValues.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: AttributeValues.state.TRUE,\n }),\n fullImage: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributeValues.layout.fullImage,\n ),\n heightSmall: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.height,\n attributeValue: AttributeValues.layout.small,\n }),\n hidden: createAttributeCheck(\n AttributeNames.layout.hidden,\n AttributeValues.state.TRUE,\n ),\n image: createAttributeCheck(\n AttributeNames.deprecated.type.TYPE,\n AttributeValues.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: AttributeValues.layout.right,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imagePosition,\n attributeValue: AttributeValues.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: AttributeValues.layout.left,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imagePosition,\n attributeValue: AttributeValues.layout.left,\n defaultValue: false,\n }),\n imageScaled: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.imageScaled,\n attributeValue: AttributeValues.state.TRUE,\n defaultValue: true,\n }),\n interior: createAttributeCheck(\n AttributeNames.layout.interior,\n AttributeValues.state.TRUE,\n ),\n lock: createAttributeCheck(\n AttributeNames.layout.lock,\n AttributeValues.state.TRUE,\n ),\n lockFull: createAttributeCheck(\n AttributeNames.layout.lock,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.reverse,\n attributeValue: AttributeValues.state.TRUE,\n }),\n spaceHorizontalLarge: (props: AttributeElementProps): boolean =>\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.spaceHorizontal,\n attributeValue: AttributeValues.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: AttributeValues.layout.center,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.layout.text,\n attributeValue: AttributeValues.layout.center,\n }),\n} as const;\n\n// Social checks\n\nconst isSharing = {\n email: createAttributeCheck(\n AttributeNames.sharing.email,\n AttributeValues.state.TRUE,\n ),\n print: createAttributeCheck(\n AttributeNames.sharing.print,\n AttributeValues.state.TRUE,\n ),\n} as const;\n\nconst includesSharing = {\n facebook: createAttributeCheck(\n AttributeNames.social.facebook,\n AttributeValues.state.TRUE,\n true,\n ),\n twitter: createAttributeCheck(\n AttributeNames.social.twitter,\n AttributeValues.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: AttributeValues.theme.DARK,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributeValues.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: AttributeValues.theme.GOLD,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributeValues.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: AttributeValues.theme.LIGHT,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributeValues.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: AttributeValues.theme.MARYLAND,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.theme.default,\n attributeValue: AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.imageAligned,\n attributeValue: AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.bordered,\n attributeValue: AttributeValues.state.TRUE,\n }),\n campaign: createAttributeCheck(\n AttributeNames.visual.campaign,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.iconSeal,\n attributeValue: AttributeValues.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: AttributeValues.state.OPENED,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.open,\n attributeValue: AttributeValues.state.TRUE,\n }),\n play: createAttributeCheck(\n AttributeNames.visual.play,\n AttributeValues.state.TRUE,\n ),\n quote: createAttributeCheck(\n AttributeNames.deprecated.visual.VISUAL_QUOTE,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.icon,\n attributeValue: AttributeValues.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: AttributeValues.size.NORMAL,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.size,\n attributeValue: AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.time,\n attributeValue: AttributeValues.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: AttributeValues.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: AttributeValues.size.LARGE,\n }),\n stickyFirst: createAttributeCheck(\n AttributeNames.deprecated.option.OPTIONAL_STICKY_FIRST,\n AttributeValues.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: AttributeValues.state.TRUE,\n }) ||\n isAttributeTrue({\n ...props,\n attributeName: AttributeNames.visual.transparent,\n attributeValue: AttributeValues.state.TRUE,\n }),\n} as const;\n\n// Value getters\nconst getValue = {\n alertUrl: createValueGetter({\n currentName: AttributeNames.information.alertUrl,\n }),\n loadingPriority: createValueGetter({\n currentName: AttributeNames.loading.priority,\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 id: createValueGetter({\n currentName: AttributeNames.information.id,\n }),\n ids: createValueGetter({\n currentName: AttributeNames.information.ids,\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 mediaTrained: createValueGetter({\n currentName: AttributeNames.information.mediaTrained,\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 isVisual,\n getValue,\n};\n\nexport type {\n AttributeElementProps,\n AttributeProps,\n AttributeNullProps,\n DeprecatedAttributeProps,\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { AttributeConverter, AttributeType } from './converters';
2
+ import { HasChangedFn } from './change-detection';
3
+ export interface ReactiveAttributeConfig<T = unknown> {
4
+ attribute?: string | false;
5
+ type?: AttributeType;
6
+ reflect?: boolean;
7
+ converter?: AttributeConverter<T>;
8
+ defaultValue?: T;
9
+ validate?: (value: T) => string | void;
10
+ onChange?: (host: HTMLElement, newValue: T | undefined, oldValue: T | undefined) => void;
11
+ hasChanged?: (newValue: T, oldValue: T) => boolean;
12
+ }
13
+ export type ReactiveAttributeMap = Record<string, ReactiveAttributeConfig>;
14
+ export interface ResolvedAttributeConfig {
15
+ propertyName: string;
16
+ attributeName: string | false;
17
+ type?: AttributeType;
18
+ converter: AttributeConverter;
19
+ reflect: boolean;
20
+ defaultValue: unknown;
21
+ validate?: (value: unknown) => string | void;
22
+ onChange?: (host: HTMLElement, newValue: unknown, oldValue: unknown) => void;
23
+ hasChanged?: HasChangedFn;
24
+ }
25
+ export declare function toAttributeName(propName: string): string;
26
+ export declare function defineObservedAttributes(map: ReactiveAttributeMap): string[];
27
+ export declare function readAttributes<T extends Record<string, unknown>>(element: Element, map: ReactiveAttributeMap): T;
28
+ export declare function resolveAttributeConfigs(map: ReactiveAttributeMap): ResolvedAttributeConfig[];
29
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../source/attributes/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,OAAO;IAElD,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE3B,IAAI,CAAC,EAAE,aAAa,CAAC;IAErB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAElC,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC;IAEvC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IAEzF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC;CACpD;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAE3E,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAMD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAMD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAO5E;AAMD,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,oBAAoB,GACxB,CAAC,CA+BH;AAMD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,oBAAoB,GACxB,uBAAuB,EAAE,CAuB3B"}
@@ -0,0 +1,57 @@
1
+ import { resolveConverter } from "./converters.js";
2
+ import { AttributeValidationError } from "./errors.js";
3
+ function toAttributeName(propName) {
4
+ return propName.replace(/[A-Z]/g, (ch) => `-${ch.toLowerCase()}`);
5
+ }
6
+ function defineObservedAttributes(map) {
7
+ return Object.entries(map).map(([prop, cfg]) => {
8
+ if (cfg.attribute === false) return null;
9
+ return cfg.attribute ?? toAttributeName(prop);
10
+ }).filter((n) => n !== null);
11
+ }
12
+ function readAttributes(element, map) {
13
+ const result = {};
14
+ for (const [prop, cfg] of Object.entries(map)) {
15
+ if (cfg.attribute === false) {
16
+ result[prop] = cfg.defaultValue;
17
+ continue;
18
+ }
19
+ const attrName = cfg.attribute ?? toAttributeName(prop);
20
+ const converter = cfg.converter ? resolveConverter(cfg.converter) : cfg.type ? resolveConverter(cfg.type) : resolveConverter("string");
21
+ const raw = element.getAttribute(attrName);
22
+ const converted = converter.fromAttribute(raw, attrName);
23
+ const value = converted !== void 0 ? converted : cfg.defaultValue;
24
+ if (value !== void 0 && cfg.validate) {
25
+ const error = cfg.validate(value);
26
+ if (error) {
27
+ throw new AttributeValidationError(attrName, error);
28
+ }
29
+ }
30
+ result[prop] = value;
31
+ }
32
+ return result;
33
+ }
34
+ function resolveAttributeConfigs(map) {
35
+ return Object.entries(map).map(([prop, cfg]) => {
36
+ const attributeName = cfg.attribute === false ? false : cfg.attribute ?? toAttributeName(prop);
37
+ const converter = cfg.converter ? resolveConverter(cfg.converter) : cfg.type ? resolveConverter(cfg.type) : resolveConverter("string");
38
+ return {
39
+ propertyName: prop,
40
+ attributeName,
41
+ type: cfg.type,
42
+ converter,
43
+ reflect: cfg.reflect ?? false,
44
+ defaultValue: cfg.defaultValue,
45
+ validate: cfg.validate,
46
+ onChange: cfg.onChange,
47
+ hasChanged: cfg.hasChanged
48
+ };
49
+ });
50
+ }
51
+ export {
52
+ defineObservedAttributes,
53
+ readAttributes,
54
+ resolveAttributeConfigs,
55
+ toAttributeName
56
+ };
57
+ //# sourceMappingURL=config.js.map