@department-of-veterans-affairs/component-library 54.5.0 → 54.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.bundle.js +1 -1
- package/dist/components/contacts.js +1 -0
- package/dist/components/date-utils.js +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/{p-a5dce9e6.js → index2.js} +1 -1
- package/dist/components/utils.js +1 -0
- package/dist/components/va-accordion-item.js +1 -1
- package/dist/components/va-accordion-item2.js +1 -0
- package/dist/components/va-accordion.js +1 -1
- package/dist/components/va-accordion2.js +1 -0
- package/dist/components/va-additional-info.js +1 -1
- package/dist/components/va-alert-expandable.js +1 -1
- package/dist/components/va-alert-sign-in.js +1 -1
- package/dist/components/va-alert.js +1 -1
- package/dist/components/va-alert2.js +1 -0
- package/dist/components/va-back-to-top.js +1 -1
- package/dist/components/va-banner.js +1 -1
- package/dist/components/va-breadcrumbs.js +1 -1
- package/dist/components/va-button-icon.js +1 -1
- package/dist/components/va-button-icon2.js +1 -0
- package/dist/components/va-button-pair.js +1 -1
- package/dist/components/va-button-segmented.js +1 -1
- package/dist/components/va-button.js +1 -1
- package/dist/components/va-button2.js +1 -0
- package/dist/components/va-card.js +1 -1
- package/dist/components/va-card2.js +1 -0
- package/dist/components/va-checkbox-group.js +1 -1
- package/dist/components/va-checkbox-group2.js +1 -0
- package/dist/components/va-checkbox.js +1 -1
- package/dist/components/va-checkbox2.js +1 -0
- package/dist/components/va-combo-box.js +1 -1
- package/dist/components/{p-ddb87324.js → va-combo-box2.js} +4 -4
- package/dist/components/va-crisis-line-modal.js +1 -1
- package/dist/components/va-crisis-line-modal2.js +1 -0
- package/dist/components/va-critical-action.js +1 -1
- package/dist/components/va-critical-action2.js +1 -0
- package/dist/components/va-date.js +1 -1
- package/dist/components/va-file-input-multiple.js +1 -1
- package/dist/components/va-file-input.js +1 -1
- package/dist/components/va-file-input2.js +1 -0
- package/dist/components/va-header-minimal.js +1 -1
- package/dist/components/va-icon.js +1 -1
- package/dist/components/va-icon2.js +1 -0
- package/dist/components/va-language-toggle.js +1 -1
- package/dist/components/va-link-action.js +1 -1
- package/dist/components/va-link.js +1 -1
- package/dist/components/va-link2.js +1 -0
- package/dist/components/va-loading-indicator.js +1 -1
- package/dist/components/va-maintenance-banner.js +1 -1
- package/dist/components/va-memorable-date.js +1 -1
- package/dist/components/va-minimal-footer.js +1 -1
- package/dist/components/va-modal.js +1 -1
- package/dist/components/va-modal2.js +1 -0
- package/dist/components/va-need-help.js +1 -1
- package/dist/components/va-notification.js +1 -1
- package/dist/components/va-official-gov-banner.js +1 -1
- package/dist/components/va-official-gov-banner2.js +1 -0
- package/dist/components/va-omb-info.js +1 -1
- package/dist/components/va-on-this-page.js +1 -1
- package/dist/components/va-pagination.js +1 -1
- package/dist/components/va-privacy-agreement.js +1 -1
- package/dist/components/va-process-list-item.js +1 -1
- package/dist/components/va-process-list.js +1 -1
- package/dist/components/va-progress-bar.js +1 -1
- package/dist/components/va-progress-bar2.js +1 -0
- package/dist/components/va-promo-banner.js +1 -1
- package/dist/components/va-radio-option.js +1 -1
- package/dist/components/va-radio.js +1 -1
- package/dist/components/va-search-filter.js +1 -1
- package/dist/components/va-search-input.js +1 -1
- package/dist/components/va-segmented-progress-bar.js +1 -1
- package/dist/components/va-select.js +1 -1
- package/dist/components/va-select2.js +1 -0
- package/dist/components/va-service-list-item.js +1 -1
- package/dist/components/va-sidenav-item.js +1 -1
- package/dist/components/va-sidenav-submenu.js +1 -1
- package/dist/components/va-sidenav.js +1 -1
- package/dist/components/va-statement-of-truth.js +1 -1
- package/dist/components/va-summary-box.js +1 -1
- package/dist/components/va-tab-item.js +1 -1
- package/dist/components/va-tab-panel.js +1 -1
- package/dist/components/va-table-inner.js +1 -1
- package/dist/components/va-table-inner2.js +1 -0
- package/dist/components/va-table-row.js +1 -1
- package/dist/components/va-table.js +1 -1
- package/dist/components/va-tabs.js +1 -1
- package/dist/components/va-tag-status.js +1 -1
- package/dist/components/va-telephone-input.js +1 -1
- package/dist/components/va-telephone.js +1 -1
- package/dist/components/va-telephone2.js +1 -0
- package/dist/components/va-text-input.js +1 -1
- package/dist/components/va-text-input2.js +1 -0
- package/dist/components/va-textarea.js +1 -1
- package/dist/react-bindings/index.d.ts +67 -6
- package/dist/react-bindings/index.js +1 -1
- package/dist/react-bindings/index.js.map +1 -1
- package/dist/react-bindings/index.ts +75 -6
- package/dist/react-bindings/react-component-lib/createComponent.d.ts +10 -0
- package/dist/react-bindings/react-component-lib/createComponent.js +1 -0
- package/dist/react-bindings/react-component-lib/createComponent.js.map +1 -0
- package/dist/react-bindings/react-component-lib/createComponent.tsx +106 -0
- package/dist/react-bindings/react-component-lib/createOverlayComponent.d.ts +21 -0
- package/dist/react-bindings/react-component-lib/createOverlayComponent.js +1 -0
- package/dist/react-bindings/react-component-lib/createOverlayComponent.js.map +1 -0
- package/dist/react-bindings/react-component-lib/createOverlayComponent.tsx +142 -0
- package/dist/react-bindings/react-component-lib/index.d.ts +2 -0
- package/dist/react-bindings/react-component-lib/index.js +1 -0
- package/dist/react-bindings/react-component-lib/index.js.map +1 -0
- package/dist/react-bindings/react-component-lib/index.ts +2 -0
- package/dist/react-bindings/react-component-lib/interfaces.d.ts +29 -0
- package/dist/react-bindings/react-component-lib/interfaces.js +1 -0
- package/dist/react-bindings/react-component-lib/interfaces.js.map +1 -0
- package/dist/react-bindings/react-component-lib/interfaces.ts +34 -0
- package/dist/react-bindings/react-component-lib/utils/attachProps.d.ts +16 -0
- package/dist/react-bindings/react-component-lib/utils/attachProps.js +2 -0
- package/dist/react-bindings/react-component-lib/utils/attachProps.js.LICENSE.txt +4 -0
- package/dist/react-bindings/react-component-lib/utils/attachProps.js.map +1 -0
- package/dist/react-bindings/react-component-lib/utils/attachProps.ts +125 -0
- package/dist/react-bindings/react-component-lib/utils/case.d.ts +2 -0
- package/dist/react-bindings/react-component-lib/utils/case.js +1 -0
- package/dist/react-bindings/react-component-lib/utils/case.js.map +1 -0
- package/dist/react-bindings/react-component-lib/utils/case.ts +7 -0
- package/dist/react-bindings/react-component-lib/utils/dev.d.ts +2 -0
- package/dist/react-bindings/react-component-lib/utils/dev.js +1 -0
- package/dist/react-bindings/react-component-lib/utils/dev.js.map +1 -0
- package/dist/react-bindings/react-component-lib/utils/dev.ts +14 -0
- package/dist/react-bindings/react-component-lib/utils/index.d.ts +10 -0
- package/dist/react-bindings/react-component-lib/utils/index.js +1 -0
- package/dist/react-bindings/react-component-lib/utils/index.js.map +1 -0
- package/dist/react-bindings/react-component-lib/utils/index.tsx +50 -0
- package/index.js +1 -1
- package/package.json +3 -4
- package/Modal.unit.spec.js +0 -1
- package/dist/components/p-169f3a43.js +0 -1
- package/dist/components/p-1cee576c.js +0 -1
- package/dist/components/p-2f76f321.js +0 -1
- package/dist/components/p-3269359a.js +0 -1
- package/dist/components/p-336ee68e.js +0 -1
- package/dist/components/p-44ff6df8.js +0 -1
- package/dist/components/p-4898e7aa.js +0 -1
- package/dist/components/p-63e66cce.js +0 -1
- package/dist/components/p-6a3cf3d7.js +0 -1
- package/dist/components/p-7216b018.js +0 -1
- package/dist/components/p-79aa9cf3.js +0 -1
- package/dist/components/p-7a223b44.js +0 -1
- package/dist/components/p-83458742.js +0 -1
- package/dist/components/p-8979a1dd.js +0 -1
- package/dist/components/p-8dd39312.js +0 -1
- package/dist/components/p-8fcb4dfa.js +0 -1
- package/dist/components/p-9240a389.js +0 -1
- package/dist/components/p-93249001.js +0 -1
- package/dist/components/p-9cd6282d.js +0 -1
- package/dist/components/p-bea05aab.js +0 -1
- package/dist/components/p-c872b7c8.js +0 -1
- package/dist/components/p-d4f5e756.js +0 -1
- package/dist/components/p-d910987e.js +0 -1
- package/dist/components/p-ef5c0d66.js +0 -1
- package/dist/components/p-f78db65e.js +0 -1
- package/dist/react-bindings/components.d.ts +0 -336
- package/dist/react-bindings/components.js +0 -1
- package/dist/react-bindings/components.js.map +0 -1
- package/dist/react-bindings/components.ts +0 -961
- package/format-date.unit.spec.js +0 -1
- package/utilities.unit.spec.js +0 -1
- /package/dist/components/{p-a836c3e1.js → i18next.js} +0 -0
- /package/dist/components/{p-a5dce9e6.js.LICENSE.txt → index2.js.LICENSE.txt} +0 -0
- /package/dist/components/{p-b276cef8.js → parsePhoneNumber_.js} +0 -0
- /package/dist/components/{p-ddb87324.js.LICENSE.txt → va-combo-box2.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import ReactDOM from 'react-dom';
|
|
3
|
+
|
|
4
|
+
import { OverlayEventDetail } from './interfaces';
|
|
5
|
+
import { StencilReactForwardedRef, attachProps, dashToPascalCase, defineCustomElement, setRef } from './utils';
|
|
6
|
+
|
|
7
|
+
interface OverlayElement extends HTMLElement {
|
|
8
|
+
present: () => Promise<void>;
|
|
9
|
+
dismiss: (data?: any, role?: string | undefined) => Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface ReactOverlayProps {
|
|
13
|
+
children?: React.ReactNode;
|
|
14
|
+
isOpen: boolean;
|
|
15
|
+
onDidDismiss?: (event: CustomEvent<OverlayEventDetail>) => void;
|
|
16
|
+
onDidPresent?: (event: CustomEvent<OverlayEventDetail>) => void;
|
|
17
|
+
onWillDismiss?: (event: CustomEvent<OverlayEventDetail>) => void;
|
|
18
|
+
onWillPresent?: (event: CustomEvent<OverlayEventDetail>) => void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const createOverlayComponent = <OverlayComponent extends object, OverlayType extends OverlayElement>(
|
|
22
|
+
tagName: string,
|
|
23
|
+
controller: { create: (options: any) => Promise<OverlayType> },
|
|
24
|
+
customElement?: any
|
|
25
|
+
) => {
|
|
26
|
+
defineCustomElement(tagName, customElement);
|
|
27
|
+
|
|
28
|
+
const displayName = dashToPascalCase(tagName);
|
|
29
|
+
const didDismissEventName = `on${displayName}DidDismiss`;
|
|
30
|
+
const didPresentEventName = `on${displayName}DidPresent`;
|
|
31
|
+
const willDismissEventName = `on${displayName}WillDismiss`;
|
|
32
|
+
const willPresentEventName = `on${displayName}WillPresent`;
|
|
33
|
+
|
|
34
|
+
type Props = OverlayComponent &
|
|
35
|
+
ReactOverlayProps & {
|
|
36
|
+
forwardedRef?: StencilReactForwardedRef<OverlayType>;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
let isDismissing = false;
|
|
40
|
+
|
|
41
|
+
class Overlay extends React.Component<Props> {
|
|
42
|
+
overlay?: OverlayType;
|
|
43
|
+
el!: HTMLDivElement;
|
|
44
|
+
|
|
45
|
+
constructor(props: Props) {
|
|
46
|
+
super(props);
|
|
47
|
+
if (typeof document !== 'undefined') {
|
|
48
|
+
this.el = document.createElement('div');
|
|
49
|
+
}
|
|
50
|
+
this.handleDismiss = this.handleDismiss.bind(this);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static get displayName() {
|
|
54
|
+
return displayName;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
componentDidMount() {
|
|
58
|
+
if (this.props.isOpen) {
|
|
59
|
+
this.present();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
componentWillUnmount() {
|
|
64
|
+
if (this.overlay) {
|
|
65
|
+
this.overlay.dismiss();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
handleDismiss(event: CustomEvent<OverlayEventDetail<any>>) {
|
|
70
|
+
if (this.props.onDidDismiss) {
|
|
71
|
+
this.props.onDidDismiss(event);
|
|
72
|
+
}
|
|
73
|
+
setRef(this.props.forwardedRef, null);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
shouldComponentUpdate(nextProps: Props) {
|
|
77
|
+
// Check if the overlay component is about to dismiss
|
|
78
|
+
if (this.overlay && nextProps.isOpen !== this.props.isOpen && nextProps.isOpen === false) {
|
|
79
|
+
isDismissing = true;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
async componentDidUpdate(prevProps: Props) {
|
|
86
|
+
if (this.overlay) {
|
|
87
|
+
attachProps(this.overlay, this.props, prevProps);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (prevProps.isOpen !== this.props.isOpen && this.props.isOpen === true) {
|
|
91
|
+
this.present(prevProps);
|
|
92
|
+
}
|
|
93
|
+
if (this.overlay && prevProps.isOpen !== this.props.isOpen && this.props.isOpen === false) {
|
|
94
|
+
await this.overlay.dismiss();
|
|
95
|
+
isDismissing = false;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Now that the overlay is dismissed
|
|
99
|
+
* we need to render again so that any
|
|
100
|
+
* inner components will be unmounted
|
|
101
|
+
*/
|
|
102
|
+
this.forceUpdate();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
async present(prevProps?: Props) {
|
|
107
|
+
const { children, isOpen, onDidDismiss, onDidPresent, onWillDismiss, onWillPresent, ...cProps } = this.props;
|
|
108
|
+
const elementProps = {
|
|
109
|
+
...cProps,
|
|
110
|
+
ref: this.props.forwardedRef,
|
|
111
|
+
[didDismissEventName]: this.handleDismiss,
|
|
112
|
+
[didPresentEventName]: (e: CustomEvent) => this.props.onDidPresent && this.props.onDidPresent(e),
|
|
113
|
+
[willDismissEventName]: (e: CustomEvent) => this.props.onWillDismiss && this.props.onWillDismiss(e),
|
|
114
|
+
[willPresentEventName]: (e: CustomEvent) => this.props.onWillPresent && this.props.onWillPresent(e),
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
this.overlay = await controller.create({
|
|
118
|
+
...elementProps,
|
|
119
|
+
component: this.el,
|
|
120
|
+
componentProps: {},
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
setRef(this.props.forwardedRef, this.overlay);
|
|
124
|
+
attachProps(this.overlay, elementProps, prevProps);
|
|
125
|
+
|
|
126
|
+
await this.overlay.present();
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
render() {
|
|
130
|
+
/**
|
|
131
|
+
* Continue to render the component even when
|
|
132
|
+
* overlay is dismissing otherwise component
|
|
133
|
+
* will be hidden before animation is done.
|
|
134
|
+
*/
|
|
135
|
+
return ReactDOM.createPortal(this.props.isOpen || isDismissing ? this.props.children : null, this.el);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return React.forwardRef<OverlayType, Props>((props, ref) => {
|
|
140
|
+
return <Overlay {...props} forwardedRef={ref} />;
|
|
141
|
+
});
|
|
142
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createOverlayComponent=exports.createReactComponent=void 0;var createComponent_1=require("./createComponent");Object.defineProperty(exports,"createReactComponent",{enumerable:!0,get:function(){return createComponent_1.createReactComponent}});var createOverlayComponent_1=require("./createOverlayComponent");Object.defineProperty(exports,"createOverlayComponent",{enumerable:!0,get:function(){return createOverlayComponent_1.createOverlayComponent}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,qDAAyD;AAAhD,uHAAA,oBAAoB,OAAA;AAC7B,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface EventEmitter<T = any> {
|
|
2
|
+
emit: (data?: T) => CustomEvent<T>;
|
|
3
|
+
}
|
|
4
|
+
export interface StyleReactProps {
|
|
5
|
+
class?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface OverlayEventDetail<T = any> {
|
|
12
|
+
data?: T;
|
|
13
|
+
role?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface OverlayInterface {
|
|
16
|
+
el: HTMLElement;
|
|
17
|
+
animated: boolean;
|
|
18
|
+
keyboardClose: boolean;
|
|
19
|
+
overlayIndex: number;
|
|
20
|
+
presented: boolean;
|
|
21
|
+
enterAnimation?: any;
|
|
22
|
+
leaveAnimation?: any;
|
|
23
|
+
didPresent: EventEmitter<void>;
|
|
24
|
+
willPresent: EventEmitter<void>;
|
|
25
|
+
willDismiss: EventEmitter<OverlayEventDetail>;
|
|
26
|
+
didDismiss: EventEmitter<OverlayEventDetail>;
|
|
27
|
+
present(): Promise<void>;
|
|
28
|
+
dismiss(data?: any, role?: string): Promise<boolean>;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// General types important to applications using stencil built components
|
|
2
|
+
export interface EventEmitter<T = any> {
|
|
3
|
+
emit: (data?: T) => CustomEvent<T>;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface StyleReactProps {
|
|
7
|
+
class?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: { [key: string]: any };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface OverlayEventDetail<T = any> {
|
|
13
|
+
data?: T;
|
|
14
|
+
role?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface OverlayInterface {
|
|
18
|
+
el: HTMLElement;
|
|
19
|
+
animated: boolean;
|
|
20
|
+
keyboardClose: boolean;
|
|
21
|
+
overlayIndex: number;
|
|
22
|
+
presented: boolean;
|
|
23
|
+
|
|
24
|
+
enterAnimation?: any;
|
|
25
|
+
leaveAnimation?: any;
|
|
26
|
+
|
|
27
|
+
didPresent: EventEmitter<void>;
|
|
28
|
+
willPresent: EventEmitter<void>;
|
|
29
|
+
willDismiss: EventEmitter<OverlayEventDetail>;
|
|
30
|
+
didDismiss: EventEmitter<OverlayEventDetail>;
|
|
31
|
+
|
|
32
|
+
present(): Promise<void>;
|
|
33
|
+
dismiss(data?: any, role?: string): Promise<boolean>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const attachProps: (node: HTMLElement, newProps: any, oldProps?: any) => void;
|
|
2
|
+
export declare const getClassName: (classList: DOMTokenList, newProps: any, oldProps: any) => string;
|
|
3
|
+
/**
|
|
4
|
+
* Transforms a React event name to a browser event name.
|
|
5
|
+
*/
|
|
6
|
+
export declare const transformReactEventName: (eventNameSuffix: string) => string;
|
|
7
|
+
/**
|
|
8
|
+
* Checks if an event is supported in the current execution environment.
|
|
9
|
+
* @license Modernizr 3.0.0pre (Custom Build) | MIT
|
|
10
|
+
*/
|
|
11
|
+
export declare const isCoveredByReact: (eventNameSuffix: string) => boolean;
|
|
12
|
+
export declare const syncEvent: (node: Element & {
|
|
13
|
+
__events?: {
|
|
14
|
+
[key: string]: ((e: Event) => any) | undefined;
|
|
15
|
+
};
|
|
16
|
+
}, eventName: string, newEventHandler?: (e: Event) => any) => void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see attachProps.js.LICENSE.txt */
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.syncEvent=exports.isCoveredByReact=exports.transformReactEventName=exports.getClassName=exports.attachProps=void 0;var case_1=require("./case"),attachProps=function(e,t,a){if(void 0===a&&(a={}),e instanceof Element){var r=(0,exports.getClassName)(e.classList,t,a);""!==r&&(e.className=r),Object.keys(t).forEach(function(a){if("children"!==a&&"style"!==a&&"ref"!==a&&"class"!==a&&"className"!==a&&"forwardedRef"!==a)if(0===a.indexOf("on")&&a[2]===a[2].toUpperCase()){var r=a.substring(2),s=r[0].toLowerCase()+r.substring(1);(0,exports.isCoveredByReact)(s)||(0,exports.syncEvent)(e,s,t[a])}else e[a]=t[a],"string"==typeof t[a]&&e.setAttribute((0,case_1.camelToDashCase)(a),t[a])})}};exports.attachProps=attachProps;var getClassName=function(e,t,a){var r=t.className||t.class,s=a.className||a.class,n=arrayToMap(e),o=arrayToMap(r?r.split(" "):[]),c=arrayToMap(s?s.split(" "):[]),i=[];return n.forEach(function(e){o.has(e)?(i.push(e),o.delete(e)):c.has(e)||i.push(e)}),o.forEach(function(e){return i.push(e)}),i.join(" ")};exports.getClassName=getClassName;var transformReactEventName=function(e){return"doubleclick"===e?"dblclick":e};exports.transformReactEventName=transformReactEventName;var isCoveredByReact=function(e){if("undefined"==typeof document)return!0;var t="on"+(0,exports.transformReactEventName)(e),a=t in document;if(!a){var r=document.createElement("div");r.setAttribute(t,"return;"),a="function"==typeof r[t]}return a};exports.isCoveredByReact=isCoveredByReact;var syncEvent=function(e,t,a){var r=e.__events||(e.__events={}),s=r[t];s&&e.removeEventListener(t,s),e.addEventListener(t,r[t]=function(e){a&&a.call(this,e)})};exports.syncEvent=syncEvent;var arrayToMap=function(e){var t=new Map;return e.forEach(function(e){return t.set(e,e)}),t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachProps.js","sourceRoot":"","sources":["attachProps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { camelToDashCase } from './case';
|
|
2
|
+
|
|
3
|
+
export const attachProps = (node: HTMLElement, newProps: any, oldProps: any = {}) => {
|
|
4
|
+
// some test frameworks don't render DOM elements, so we test here to make sure we are dealing with DOM first
|
|
5
|
+
if (node instanceof Element) {
|
|
6
|
+
// add any classes in className to the class list
|
|
7
|
+
const className = getClassName(node.classList, newProps, oldProps);
|
|
8
|
+
if (className !== '') {
|
|
9
|
+
node.className = className;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
Object.keys(newProps).forEach((name) => {
|
|
13
|
+
if (
|
|
14
|
+
name === 'children' ||
|
|
15
|
+
name === 'style' ||
|
|
16
|
+
name === 'ref' ||
|
|
17
|
+
name === 'class' ||
|
|
18
|
+
name === 'className' ||
|
|
19
|
+
name === 'forwardedRef'
|
|
20
|
+
) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
|
|
24
|
+
const eventName = name.substring(2);
|
|
25
|
+
const eventNameLc = eventName[0].toLowerCase() + eventName.substring(1);
|
|
26
|
+
|
|
27
|
+
if (!isCoveredByReact(eventNameLc)) {
|
|
28
|
+
syncEvent(node, eventNameLc, newProps[name]);
|
|
29
|
+
}
|
|
30
|
+
} else {
|
|
31
|
+
(node as any)[name] = newProps[name];
|
|
32
|
+
const propType = typeof newProps[name];
|
|
33
|
+
if (propType === 'string') {
|
|
34
|
+
node.setAttribute(camelToDashCase(name), newProps[name]);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const getClassName = (classList: DOMTokenList, newProps: any, oldProps: any) => {
|
|
42
|
+
const newClassProp: string = newProps.className || newProps.class;
|
|
43
|
+
const oldClassProp: string = oldProps.className || oldProps.class;
|
|
44
|
+
// map the classes to Maps for performance
|
|
45
|
+
const currentClasses = arrayToMap(classList);
|
|
46
|
+
const incomingPropClasses = arrayToMap(newClassProp ? newClassProp.split(' ') : []);
|
|
47
|
+
const oldPropClasses = arrayToMap(oldClassProp ? oldClassProp.split(' ') : []);
|
|
48
|
+
const finalClassNames: string[] = [];
|
|
49
|
+
// loop through each of the current classes on the component
|
|
50
|
+
// to see if it should be a part of the classNames added
|
|
51
|
+
currentClasses.forEach((currentClass) => {
|
|
52
|
+
if (incomingPropClasses.has(currentClass)) {
|
|
53
|
+
// add it as its already included in classnames coming in from newProps
|
|
54
|
+
finalClassNames.push(currentClass);
|
|
55
|
+
incomingPropClasses.delete(currentClass);
|
|
56
|
+
} else if (!oldPropClasses.has(currentClass)) {
|
|
57
|
+
// add it as it has NOT been removed by user
|
|
58
|
+
finalClassNames.push(currentClass);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
incomingPropClasses.forEach((s) => finalClassNames.push(s));
|
|
62
|
+
return finalClassNames.join(' ');
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Transforms a React event name to a browser event name.
|
|
67
|
+
*/
|
|
68
|
+
export const transformReactEventName = (eventNameSuffix: string) => {
|
|
69
|
+
switch (eventNameSuffix) {
|
|
70
|
+
case 'doubleclick':
|
|
71
|
+
return 'dblclick';
|
|
72
|
+
}
|
|
73
|
+
return eventNameSuffix;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Checks if an event is supported in the current execution environment.
|
|
78
|
+
* @license Modernizr 3.0.0pre (Custom Build) | MIT
|
|
79
|
+
*/
|
|
80
|
+
export const isCoveredByReact = (eventNameSuffix: string) => {
|
|
81
|
+
if (typeof document === 'undefined') {
|
|
82
|
+
return true;
|
|
83
|
+
} else {
|
|
84
|
+
const eventName = 'on' + transformReactEventName(eventNameSuffix);
|
|
85
|
+
let isSupported = eventName in document;
|
|
86
|
+
|
|
87
|
+
if (!isSupported) {
|
|
88
|
+
const element = document.createElement('div');
|
|
89
|
+
element.setAttribute(eventName, 'return;');
|
|
90
|
+
isSupported = typeof (element as any)[eventName] === 'function';
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return isSupported;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export const syncEvent = (
|
|
98
|
+
node: Element & { __events?: { [key: string]: ((e: Event) => any) | undefined } },
|
|
99
|
+
eventName: string,
|
|
100
|
+
newEventHandler?: (e: Event) => any
|
|
101
|
+
) => {
|
|
102
|
+
const eventStore = node.__events || (node.__events = {});
|
|
103
|
+
const oldEventHandler = eventStore[eventName];
|
|
104
|
+
|
|
105
|
+
// Remove old listener so they don't double up.
|
|
106
|
+
if (oldEventHandler) {
|
|
107
|
+
node.removeEventListener(eventName, oldEventHandler);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Bind new listener.
|
|
111
|
+
node.addEventListener(
|
|
112
|
+
eventName,
|
|
113
|
+
(eventStore[eventName] = function handler(e: Event) {
|
|
114
|
+
if (newEventHandler) {
|
|
115
|
+
newEventHandler.call(this, e);
|
|
116
|
+
}
|
|
117
|
+
})
|
|
118
|
+
);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const arrayToMap = (arr: string[] | DOMTokenList) => {
|
|
122
|
+
const map = new Map<string, string>();
|
|
123
|
+
(arr as string[]).forEach((s: string) => map.set(s, s));
|
|
124
|
+
return map;
|
|
125
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.camelToDashCase=exports.dashToPascalCase=void 0;var dashToPascalCase=function(a){return a.toLowerCase().split("-").map(function(a){return a.charAt(0).toUpperCase()+a.slice(1)}).join("")};exports.dashToPascalCase=dashToPascalCase;var camelToDashCase=function(a){return a.replace(/([A-Z])/g,function(a){return"-".concat(a[0].toLowerCase())})};exports.camelToDashCase=camelToDashCase;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"case.js","sourceRoot":"","sources":["case.ts"],"names":[],"mappings":";;;AAAO,IAAM,gBAAgB,GAAG,UAAC,GAAW;IAC1C,OAAA,GAAG;SACA,WAAW,EAAE;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAlD,CAAkD,CAAC;SACpE,IAAI,CAAC,EAAE,CAAC;AAJX,CAIW,CAAC;AALD,QAAA,gBAAgB,oBAKf;AACP,IAAM,eAAe,GAAG,UAAC,GAAW,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,UAAC,CAAS,IAAK,OAAA,WAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAE,EAAxB,CAAwB,CAAC,EAAhE,CAAgE,CAAC;AAApG,QAAA,eAAe,mBAAqF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const dashToPascalCase = (str: string) =>
|
|
2
|
+
str
|
|
3
|
+
.toLowerCase()
|
|
4
|
+
.split('-')
|
|
5
|
+
.map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))
|
|
6
|
+
.join('');
|
|
7
|
+
export const camelToDashCase = (str: string) => str.replace(/([A-Z])/g, (m: string) => `-${m[0].toLowerCase()}`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.deprecationWarning=exports.isDevMode=void 0;var isDevMode=function(){return process&&process.env&&"development"===process.env.NODE_ENV};exports.isDevMode=isDevMode;var warnings={},deprecationWarning=function(e,n){(0,exports.isDevMode)()&&(warnings[e]||(console.warn(n),warnings[e]=!0))};exports.deprecationWarning=deprecationWarning;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["dev.ts"],"names":[],"mappings":";;;AAAO,IAAM,SAAS,GAAG;IACvB,OAAO,OAAO,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AAC1E,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEF,IAAM,QAAQ,GAA+B,EAAE,CAAC;AAEzC,IAAM,kBAAkB,GAAG,UAAC,GAAW,EAAE,OAAe;IAC7D,IAAI,IAAA,iBAAS,GAAE,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const isDevMode = () => {
|
|
2
|
+
return process && process.env && process.env.NODE_ENV === 'development';
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
const warnings: { [key: string]: boolean } = {};
|
|
6
|
+
|
|
7
|
+
export const deprecationWarning = (key: string, message: string) => {
|
|
8
|
+
if (isDevMode()) {
|
|
9
|
+
if (!warnings[key]) {
|
|
10
|
+
console.warn(message);
|
|
11
|
+
warnings[key] = true;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { StyleReactProps } from '../interfaces';
|
|
3
|
+
export type StencilReactExternalProps<PropType, ElementType> = PropType & Omit<React.HTMLAttributes<ElementType>, 'style'> & StyleReactProps;
|
|
4
|
+
export type StencilReactForwardedRef<T> = ((instance: T | null) => void) | React.MutableRefObject<T | null> | null;
|
|
5
|
+
export declare const setRef: (ref: StencilReactForwardedRef<any> | React.Ref<any> | undefined, value: any) => void;
|
|
6
|
+
export declare const mergeRefs: (...refs: (StencilReactForwardedRef<any> | React.Ref<any> | undefined)[]) => React.RefCallback<any>;
|
|
7
|
+
export declare const createForwardRef: <PropType, ElementType>(ReactComponent: any, displayName: string) => React.ForwardRefExoticComponent<React.PropsWithoutRef<PropType & Omit<React.HTMLAttributes<ElementType>, "style"> & StyleReactProps> & React.RefAttributes<ElementType>>;
|
|
8
|
+
export declare const defineCustomElement: (tagName: string, customElement: any) => void;
|
|
9
|
+
export * from './attachProps';
|
|
10
|
+
export * from './case';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.defineCustomElement=exports.createForwardRef=exports.mergeRefs=exports.setRef=void 0;var react_1=__importDefault(require("react")),setRef=function(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)};exports.setRef=setRef;var mergeRefs=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){e.forEach(function(e){(0,exports.setRef)(e,t)})}};exports.mergeRefs=mergeRefs;var createForwardRef=function(e,t){var r=function(t,r){return react_1.default.createElement(e,__assign({},t,{forwardedRef:r}))};return r.displayName=t,react_1.default.forwardRef(r)};exports.createForwardRef=createForwardRef;var defineCustomElement=function(e,t){void 0===t||"undefined"==typeof customElements||customElements.get(e)||customElements.define(e,t)};exports.defineCustomElement=defineCustomElement,__exportStar(require("./attachProps"),exports),__exportStar(require("./case"),exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAWnB,IAAM,MAAM,GAAG,UAAC,GAA+D,EAAE,KAAU;IAChG,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,CAAC;IACb,CAAC;SAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,gDAAgD;QAC/C,GAAmC,CAAC,OAAO,GAAG,KAAK,CAAC;IACvD,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,MAAM,UAOjB;AAEK,IAAM,SAAS,GAAG;IACvB,cAAuE;SAAvE,UAAuE,EAAvE,qBAAuE,EAAvE,IAAuE;QAAvE,yBAAuE;;IAEvE,OAAO,UAAC,KAAU;QAChB,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;YACf,IAAA,cAAM,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB;AAEK,IAAM,gBAAgB,GAAG,UAAwB,cAAmB,EAAE,WAAmB;IAC9F,IAAM,UAAU,GAAG,UACjB,KAAuD,EACvD,GAA0C;QAE1C,OAAO,8BAAC,cAAc,eAAK,KAAK,IAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC1D,CAAC,CAAC;IACF,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;IAErC,OAAO,eAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B;AAEK,IAAM,mBAAmB,GAAG,UAAC,OAAe,EAAE,aAAkB;IACrE,IAAI,aAAa,KAAK,SAAS,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACzG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEF,gDAA8B;AAC9B,yCAAuB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { StyleReactProps } from '../interfaces';
|
|
4
|
+
|
|
5
|
+
export type StencilReactExternalProps<PropType, ElementType> = PropType &
|
|
6
|
+
Omit<React.HTMLAttributes<ElementType>, 'style'> &
|
|
7
|
+
StyleReactProps;
|
|
8
|
+
|
|
9
|
+
// This will be replaced with React.ForwardedRef when react-output-target is upgraded to React v17
|
|
10
|
+
export type StencilReactForwardedRef<T> = ((instance: T | null) => void) | React.MutableRefObject<T | null> | null;
|
|
11
|
+
|
|
12
|
+
export const setRef = (ref: StencilReactForwardedRef<any> | React.Ref<any> | undefined, value: any) => {
|
|
13
|
+
if (typeof ref === 'function') {
|
|
14
|
+
ref(value);
|
|
15
|
+
} else if (ref != null) {
|
|
16
|
+
// Cast as a MutableRef so we can assign current
|
|
17
|
+
(ref as React.MutableRefObject<any>).current = value;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const mergeRefs = (
|
|
22
|
+
...refs: (StencilReactForwardedRef<any> | React.Ref<any> | undefined)[]
|
|
23
|
+
): React.RefCallback<any> => {
|
|
24
|
+
return (value: any) => {
|
|
25
|
+
refs.forEach((ref) => {
|
|
26
|
+
setRef(ref, value);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const createForwardRef = <PropType, ElementType>(ReactComponent: any, displayName: string) => {
|
|
32
|
+
const forwardRef = (
|
|
33
|
+
props: StencilReactExternalProps<PropType, ElementType>,
|
|
34
|
+
ref: StencilReactForwardedRef<ElementType>
|
|
35
|
+
) => {
|
|
36
|
+
return <ReactComponent {...props} forwardedRef={ref} />;
|
|
37
|
+
};
|
|
38
|
+
forwardRef.displayName = displayName;
|
|
39
|
+
|
|
40
|
+
return React.forwardRef(forwardRef);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const defineCustomElement = (tagName: string, customElement: any) => {
|
|
44
|
+
if (customElement !== undefined && typeof customElements !== 'undefined' && !customElements.get(tagName)) {
|
|
45
|
+
customElements.define(tagName, customElement);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export * from './attachProps';
|
|
50
|
+
export * from './case';
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import Modal from"./Modal";
|
|
1
|
+
import Modal from"./Modal";export{Modal};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@department-of-veterans-affairs/component-library",
|
|
3
3
|
"description": "VA.gov component library. Includes React and web components.",
|
|
4
|
-
"version": "54.5.
|
|
4
|
+
"version": "54.5.2",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -19,9 +19,8 @@
|
|
|
19
19
|
"types": "dist/components/types/index.d.ts",
|
|
20
20
|
"module": "src/main.js",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@department-of-veterans-affairs/react-components": "28.2.
|
|
23
|
-
"@department-of-veterans-affairs/web-components": "22.5.
|
|
24
|
-
"@stencil/react-output-target": "1.2.0",
|
|
22
|
+
"@department-of-veterans-affairs/react-components": "28.2.2",
|
|
23
|
+
"@department-of-veterans-affairs/web-components": "22.5.1",
|
|
25
24
|
"i18next": "25.6.0",
|
|
26
25
|
"i18next-browser-languagedetector": "8.2.0",
|
|
27
26
|
"react-focus-on": "3.5.4",
|
package/Modal.unit.spec.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var _react=_interopRequireDefault(require("react")),_sinon=_interopRequireDefault(require("sinon")),_enzyme=require("enzyme"),_chai=require("chai"),_testHelpers=require("./test-helpers"),_Modal=_interopRequireDefault(require("./Modal.jsx"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}describe("<Modal/>",function(){it("should render",function(){var e=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",title:"Modal title",visible:!0,onClose:function(){}},"Modal contents"));(0,_chai.expect)(e.text()).to.contain("Modal contents"),e.unmount()}),it("should have an <h1> as the heading",function(){var e=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{title:"Modal title",visible:!0,onClose:function(){}},"Some content"));(0,_chai.expect)(e.find("h1").text()).to.equal("Modal title"),e.unmount()}),describe("event listeners",function(){var e,t=function(e,t){return e.filter(function(e){return e.firstArg===t})};before(function(){_sinon.default.spy(global.document,"addEventListener"),_sinon.default.spy(global.document,"removeEventListener")}),after(function(){global.document.addEventListener.restore(),global.document.removeEventListener.restore()}),it("should set up a keydown and a click listener",function(){e=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",title:"Modal title",visible:!0,clickToClose:!0,onClose:function(){}},"Modal contents"));var n=global.document.addEventListener.getCalls();(0,_chai.expect)(t(n,"keydown").length).to.be.at.least(1),(0,_chai.expect)(t(n,"click").length).to.be.at.least(1)}),it("should tear down keydown and click listeners when the modal is closed",function(){e.unmount();var n=global.document.removeEventListener.getCalls();(0,_chai.expect)(t(n,"keydown").length).to.be.at.least(1),(0,_chai.expect)(t(n,"click").length).to.be.at.least(1)})}),it("should pass aXe check",function(){return(0,_testHelpers.axeCheck)(_react.default.createElement(_Modal.default,{id:"modal",title:"aXe Check",visible:!0,onClose:function(){}}))}),describe("programmatic focus",function(){var e;before(function(){e=document.createElement("div"),global.document.body.appendChild(e)}),after(function(){global.document.body.removeChild(e)}),it("should open with focus assigned to the close button",function(){var t=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",title:"Programmatic focus",visible:!0,onClose:function(){}},_react.default.createElement("button",{id:"first-button"},"First button"),_react.default.createElement("button",{id:"second-button"},"Second button")),{attachTo:e});(0,_chai.expect)(global.document.activeElement.className).to.equal("va-modal-close"),t.unmount()}),it("should open with focus assigned to the first button when the close button is turned off",function(){var t=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",title:"Programmatic focus",visible:!0,hideCloseButton:!0,onClose:function(){}},_react.default.createElement("button",{id:"first-button"},"First button"),_react.default.createElement("button",{id:"second-button"},"Second button")),{attachTo:e});(0,_chai.expect)(global.document.activeElement.id).to.equal("first-button"),t.unmount()}),it("should start on the first element matching initialFocusSelector if specified",function(){var t=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",title:"My modal",visible:!0,hideCloseButton:!0,onClose:function(){},initialFocusSelector:"#second-button"},_react.default.createElement("button",{id:"first-button"},"First button"),_react.default.createElement("button",{id:"second-button"},"Second button")),{attachTo:e});(0,_chai.expect)(global.document.activeElement.id).to.equal("second-button"),t.unmount()}),it("should include the title in the close button aria label if given",function(){var t=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",title:"Programmatic focus",visible:!0,onClose:function(){}},_react.default.createElement("button",{id:"first-button"},"First button"),_react.default.createElement("button",{id:"second-button"},"Second button")),{attachTo:e});(0,_chai.expect)(global.document.activeElement.ariaLabel).to.equal("close Programmatic focus modal"),t.unmount()}),it("should not include the title in the close button aria label when not given",function(){var t=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",visible:!0,onClose:function(){}},_react.default.createElement("button",{id:"first-button"},"First button"),_react.default.createElement("button",{id:"second-button"},"Second button")),{attachTo:e});(0,_chai.expect)(global.document.activeElement.ariaLabel).to.equal("close modal"),t.unmount()})}),describe("analytics event",function(){it("should be triggered when modal is visible",function(){var e=_sinon.default.spy();global.document.body.addEventListener("component-library-analytics",e);var t=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",visible:!0,clickToClose:!0,onClose:function(){}},"Modal contents"));(0,_chai.expect)(e.calledWith(_sinon.default.match.has("detail",{componentName:"Modal",action:"show",details:{status:void 0,title:void 0,primaryButtonText:void 0,secondaryButtonText:void 0},version:_sinon.default.match.string}))).to.be.true,global.document.body.removeEventListener("component-library-analytics",e),t.unmount()}),it("should include title when present",function(){var e=_sinon.default.spy();global.document.body.addEventListener("component-library-analytics",e);var t=(0,_enzyme.mount)(_react.default.createElement(_Modal.default,{id:"modal",visible:!0,title:"My modal title",clickToClose:!0,onClose:function(){}},"Modal contents"));(0,_chai.expect)(e.calledWith(_sinon.default.match.has("detail",{componentName:"Modal",action:"show",details:{status:void 0,title:"My modal title",primaryButtonText:void 0,secondaryButtonText:void 0},version:_sinon.default.match.string}))).to.be.true,global.document.body.removeEventListener("component-library-analytics",e),t.unmount()})})});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as proxyCustomElement,H,d as createEvent,f as forceUpdate,h,c as Host}from"./p-ef5c0d66.js";import"./p-6a3cf3d7.js";import{i as instance}from"./p-a836c3e1.js";const iconHttpsSvg="data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHdpZHRoPSI2NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMzIgMGMxNy42NzMgMCAzMiAxNC4zMjcgMzIgMzJzLTE0LjMyNyAzMi0zMiAzMi0zMi0xNC4zMjctMzItMzIgMTQuMzI3LTMyIDMyLTMyem0wIDEuMjA4Yy0xNy4wMDYgMC0zMC43OTIgMTMuNzg2LTMwLjc5MiAzMC43OTJzMTMuNzg2IDMwLjc5MiAzMC43OTIgMzAuNzkyIDMwLjc5Mi0xMy43ODYgMzAuNzkyLTMwLjc5Mi0xMy43ODYtMzAuNzkyLTMwLjc5Mi0zMC43OTJ6bTAgMTguODg2YTcuMjQ1IDcuMjQ1IDAgMCAxIDcuMjQ1IDcuMjQ1djMuMTAzaC41MmMuODYgMCAxLjU1Ny42OTggMS41NTcgMS41NTh2OS4zMjJjMCAuODYtLjY5NyAxLjU1OC0xLjU1NyAxLjU1OGgtMTUuNTNjLS44NiAwLTEuNTU3LS42OTctMS41NTctMS41NTh2LTkuMzIyYzAtLjg2LjY5Ny0xLjU1OCAxLjU1Ny0xLjU1OGguNTJ2LTMuMTAyYTcuMjQ1IDcuMjQ1IDAgMCAxIDcuMjQ1LTcuMjQ2em0wIDMuMTAzYTQuMTQyIDQuMTQyIDAgMCAwIC00LjE0MiA0LjE0MnYzLjEwM2g4LjI4NHYtMy4xMDJhNC4xNDIgNC4xNDIgMCAwIDAgLTQuMTQyLTQuMTQzeiIgZmlsbD0iIzcxOWYyYSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+",iconDotGovSvg="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiPjx0aXRsZT5pY29uLWRvdC1nb3Y8L3RpdGxlPjxwYXRoIGZpbGw9IiMyMzc4QzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDBjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMyIDAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMkMxNC4zMjcgNjQgMCA0OS42NzMgMCAzMiAwIDE0LjMyNyAxNC4zMjcgMCAzMiAwem0wIDEuMjA4QzE0Ljk5NCAxLjIwOCAxLjIwOCAxNC45OTQgMS4yMDggMzJTMTQuOTk0IDYyLjc5MiAzMiA2Mi43OTIgNjIuNzkyIDQ5LjAwNiA2Mi43OTIgMzIgNDkuMDA2IDEuMjA4IDMyIDEuMjA4em0xMC41OSAzOC44NThhLjg1Ny44NTcgMCAwIDEgLjg4Mi44MjJ2MS42NDJIMTguODg2di0xLjY0MmEuODU3Ljg1NyAwIDAgMSAuODgyLS44MjJINDIuNTl6TTI1LjQ0MyAyNy43NzR2OS44MjloMS42NDJ2LTkuODNoMy4yNzN2OS44M0gzMnYtOS44M2gzLjI3MnY5LjgzaDEuNjQzdi05LjgzaDMuMjcydjkuODNoLjc2YS44NTcuODU3IDAgMCAxIC44ODIuODIxdi44MjFoLTIxLjN2LS44MDlhLjg1Ny44NTcgMCAwIDEgLjg4LS44MmguNzYydi05Ljg0MmgzLjI3MnptNS43MzYtOC4xODhsMTIuMjkzIDQuOTE1djEuNjQyaC0xLjYzYS44NTcuODU3IDAgMCAxLS44ODIuODIySDIxLjQxYS44NTcuODU3IDAgMCAxLS44ODItLjgyMmgtMS42NDJ2LTEuNjQybDEyLjI5My00LjkxNXoiLz48L3N2Zz4=",vaOfficialGovBannerCss='p,a,ol,ul,li,dl,dt,dd,form,label,button{font-family:Source Sans Pro Web, "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans;font-size:1.06rem;line-height:1.5}:host{display:block}.banner{background-color:#f0f0f0;font-size:12px;line-height:1.5;padding-bottom:0}.accordion{color:#1b1b1b;line-height:1.5;list-style-type:none;margin:0;padding:0;width:100%}.grid-col-fill{-ms-flex:1 1 0%;flex:1 1 0%;min-width:1px}.grid-col-auto,.grid-col-fill{-ms-flex:0 1 auto;flex:0 1 auto;width:auto;max-width:100%}.grid-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-0.469rem;margin-right:-0.469rem;margin-top:0;margin-bottom:0}.col{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex:0 0 46%;flex:0 0 46%;padding-left:0.469rem;padding-right:0.469rem}@media (max-width: 767px){.col{-ms-flex:unset;flex:unset}}#header{padding-bottom:6px;padding-top:6px;position:relative}#header.expanded .header-action{display:none}@media (max-width: 767px){#header{min-height:32px}#header.expanded{padding-right:56px}}.inner{margin-left:auto;margin-right:auto;max-width:1024px;padding-left:16px;padding-right:16px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start;padding-right:0}.header-flag{float:left;margin-right:8px;width:16px}.header-text{font-size:12px;margin-bottom:2px;margin-right:5px;margin-top:2px;line-height:1.1}.header-action{color:#005ea2;font-size:12px;line-height:1.1;margin-bottom:0;margin-top:2px;text-decoration:underline}@media (min-width: 768px){.header-action{display:none}}button:not([disabled]):focus{outline:2px solid var(--vads-color-action-focus-on-light)}button[aria-expanded=false],button[aria-expanded=true]{background-image:none}@media (max-width: 767px){button{width:100%}}button{border:0;color:#005ea2;font-size:12px;margin:0;margin-left:0.313rem;padding-left:0;padding-right:0;position:relative}@media (max-width: 767px){button{-webkit-font-smoothing:inherit;background-color:transparent;border:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;margin:0;margin-bottom:-4px;text-align:left;left:0;position:absolute;bottom:0;top:0;color:#005ea2;display:block;height:auto;line-height:1.1;padding:0;text-decoration:none;width:100%}}button:hover{color:#1a4480;cursor:pointer}.button-text{position:absolute;left:-999em;right:auto;text-decoration:underline}@media (min-width: 768px){.button-text{position:static;display:inline}}@media (max-width: 767px){#header .header-action::after,#header.expanded .header-action::after{background-color:#005ea2}#header.expanded .header-action::after,#header .header-action::after{background:0 0;background-color:#005ea2;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;display:inline-block;height:18px;width:18px;content:"";vertical-align:middle;margin-left:2px}}@media (min-width: 768px){button::after,button:hover::after{background-color:#005ea2;position:absolute}button::after,#header.expanded button::after{background:0 0;background-color:#005ea2;display:inline-block;height:18px;width:18px;content:"";vertical-align:middle;margin-left:2px;top:-1px}button::after{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain}#header.expanded button::after{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain}}@media (max-width: 767px){button[aria-expanded=true]:after{bottom:0;top:0;position:absolute;right:0}@supports ((-webkit-mask: url()) or (mask: url())){button[aria-expanded=true]::after{background:0 0;background-color:#005ea2 !important;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/24px 24px;mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/24px 24px}}button[aria-expanded=true]::after,button[aria-expanded=true]:before{position:absolute;content:"";height:48px;width:48px;bottom:0;top:0;right:0}button[aria-expanded=true]::after{background:0 0;background-color:#005ea2;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22%3E%3Cpath d%3D%22M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;display:inline-block;height:48px;width:48px;content:"";vertical-align:middle;margin-left:0}button[aria-expanded=true]:before{background-color:#dfe1e2;display:block}}button::after{position:absolute}.content{margin-left:auto;margin-right:auto;max-width:1024px;background-color:transparent;font-size:16px;overflow:hidden;padding:24px 32px 16px 16px}.content img{-ms-flex-negative:0;flex-shrink:0;margin-right:8px;width:45px}.content .media-block{-ms-flex:1 1 0%;flex:1 1 0%}.content svg{height:1.5ex;width:1.21875ex}.content p{margin-top:0;-webkit-margin-after:1em;margin-block-end:1em}',VaOfficialGovBannerStyle0=vaOfficialGovBannerCss,VaOfficialGovBanner=proxyCustomElement(class extends H{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.componentLibraryAnalytics=createEvent(this,"component-library-analytics",7),this.handleClick=()=>{var e,t,a;const i=null===(e=this.el.shadowRoot)||void 0===e?void 0:e.querySelector(".content"),o=null===(t=this.el.shadowRoot)||void 0===t?void 0:t.querySelector("button"),n=null===(a=this.el.shadowRoot)||void 0===a?void 0:a.querySelector("div#header");if(o.setAttribute("aria-expanded","true"===o.getAttribute("aria-expanded")?"false":"true"),n.classList.toggle("expanded"),i.hidden?i.removeAttribute("hidden"):i.setAttribute("hidden","true"),!this.disableAnalytics){const e={componentName:"va-official-gov-banner",action:"true"===o.getAttribute("aria-expanded")?"expand":"collapse"};this.componentLibraryAnalytics.emit(e)}},this.govSiteExplanationText=()=>{var e;const t=null===(e=this.el.shadowRoot)||void 0===e?void 0:e.querySelector(".gov-site-explanation-text");if(t){const e=instance.t("gov-site-explanation",{tld:this.tld});e&&(t.innerHTML=e.replace(`.${this.tld}`,`<strong>.${this.tld}</strong>`))}},this.govSiteLockText=()=>{var e;const t=null===(e=this.el.shadowRoot)||void 0===e?void 0:e.querySelector(".gov-site-lock-text");let a=instance.t("gov-site-lock",{image:"SVG",tld:this.tld});a=a.replace("SVG",'( <span class="icon-lock"><svg xmlns="http://www.w3.org/2000/svg" width="52" height="64" viewBox="0 0 52 64" role="img" aria-labelledby="banner-lock-description" focusable="false">\n <title id="banner-lock-title">Lock</title>\n <desc id="banner-lock-description">Locked padlock icon</desc>\n <path fill="#000000" fill-rule="evenodd" d="M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z"></path>\n </svg></span> )'),a=a.replace("lock","<strong>lock</strong>"),a=a.replace("candado","<strong>candado</strong>"),a=a.replace("https://","<strong>https://</strong>"),t&&(t.innerHTML=a)},this.disableAnalytics=!1,this.tld="gov"}connectedCallback(){instance.on("languageChanged",()=>{forceUpdate(this.el)})}disconnectedCallback(){instance.off("languageChanged")}componentDidLoad(){this.govSiteExplanationText(),this.govSiteLockText()}render(){const{tld:e}=this;if("gov"===e||"mil"===e)return h(Host,{key:"87c94f819bedd589bf5453ba1c5d27120343241b"},h("div",{key:"39702c2c31eaa09c111e97d6081f6890725df283",class:"banner"},h("div",{key:"25f6b9f1fb101022f7df9040ac5317f4ef480c96",class:"accordion"},h("div",{key:"ee29058c66774758a5c2ce115be630f750566899",id:"header"},h("div",{key:"ffa496519054b0e8104b4ad97b859bd0c3e1193b",class:"inner"},h("div",{key:"402a5ea25f5fbc423a93e65afba9f7cc61ddf28b",class:"grid-col-auto"},h("img",{key:"1fbd820480e6e69c03e175565e28a52dac1fe613",role:"presentation",class:"header-flag",src:"https://s3-us-gov-west-1.amazonaws.com/content.www.va.gov/img/tiny-usa-flag.png",alt:""})),h("div",{key:"6ef48abb781dcd4de16b63e2a2850cb12648db52",class:"grid-col-fill","aria-hidden":"true"},h("p",{key:"5ff464b67bbec74f0a099fc5d6209657591a9774",class:"header-text"},instance.t("gov-site-label")),h("p",{key:"efea58389527a679fcf62fa463fe8e4d4f4ffe15",class:"header-action"},instance.t("gov-site-button"))),h("button",{key:"06977b9e3e1c7953f0d8e29d8902b8b7ee60ba95",onClick:this.handleClick,type:"button","aria-expanded":"false","aria-controls":"official-gov-banner"},h("span",{key:"99ea65054c7956c7140431b2c494b3b3cbf086f2",class:"button-text"},instance.t("gov-site-button"))))),h("div",{key:"e7bc27c4abe992ea6f52c727fcfc2ad4d6953697",class:"content",id:"official-gov-banner",hidden:!0},h("div",{key:"deebbcc4c4c21993bd680fae450c82df191520de",class:"grid-row"},h("div",{key:"6bf9816f8610e25bcca221a4ca78ba1476cea6a2",class:"col"},h("img",{key:"18db25b612a24bd797f16be4988c41ff5b92413a",src:iconDotGovSvg,role:"presentation",alt:""}),h("div",{key:"76cb154498c3a226ba25b9f35941998d5fa4b55b",class:"media-block"},h("p",{key:"67df93f4a0a57da991b24df97f7e561980615697"},h("strong",{key:"cee655729b121135a163c6d2fe857485b4186090"},instance.t("gov-site-website",{tld:e})),h("br",{key:"ad226e949d9e92d63b781f08c89d4aa3fef16495"}),h("span",{key:"2172a6c3402103a17e04b3e49e85804bd3a81f70",class:"gov-site-explanation-text"},this.govSiteExplanationText())))),h("div",{key:"e1b45eee5c7ba32c00e99f3e4cbbff1e68b9e983",class:"col"},h("img",{key:"571116a66a4e5b9eba917a6b6fd24046bb0a4125",src:iconHttpsSvg,role:"presentation",alt:""}),h("div",{key:"811a7296897918eb94171e8a44290287047fda78",class:"media-block"},h("p",{key:"79951b6559346e63548bca7a7c96f71293e42dbd"},h("strong",{key:"089ad9c2ac53c6d8da5af416ee89bdd7bd59243f"},instance.t("gov-site-https",{tld:e})),h("br",{key:"1b54dd3abeb051dd0b97dfd6c616024b30eb0dd5"}),h("span",{key:"f8a88e83bcac877a3649d1b20f81dd9c808bc9cc",class:"gov-site-lock-text"},this.govSiteLockText())))))))))}get el(){return this}static get style(){return VaOfficialGovBannerStyle0}},[1,"va-official-gov-banner",{disableAnalytics:[4,"disable-analytics"],tld:[1]}]);function defineCustomElement(){"undefined"!=typeof customElements&&["va-official-gov-banner"].forEach(e=>{"va-official-gov-banner"===e&&(customElements.get(e)||customElements.define(e,VaOfficialGovBanner))})}export{VaOfficialGovBanner as V,defineCustomElement as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{p as proxyCustomElement,H,h,c as Host}from"./p-ef5c0d66.js";import{d as defineCustomElement$1}from"./p-9cd6282d.js";const vaCardCss=':host{display:block;position:relative;border:1px solid var(--vads-color-gray-medium);background-color:var(--vads-color-white);font-size:1rem;padding:var(--vads-spacing-2)}:host([show-shadow]:not([show-shadow=false])),:host([show-shadow]:not([show-shadow=false])[background]:not([background=false])){-webkit-box-shadow:1px 1px 5px 1px rgba(0, 0, 0, 0.32);box-shadow:1px 1px 5px 1px rgba(0, 0, 0, 0.32);border:1px solid var(--vads-color-gray-medium);background-color:var(--vads-color-white)}:host([background]:not([background=false])){background-color:var(--vads-color-base-lightest);border:none}.va-card__icon-wrapper{position:absolute;top:0;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);z-index:2;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;margin-bottom:0}.va-card__icon-circle{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;background-color:var(--vads-color-primary-darker);border-radius:50%;width:56px;height:56px;-webkit-box-shadow:0 2px 6px rgba(0, 0, 0, 0.08);box-shadow:0 2px 6px rgba(0, 0, 0, 0.08)}.va-card__icon-circle va-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;color:var(--vads-color-white)}:host([icon-name]:not([icon-name=""])){padding-top:var(--vads-spacing-4);margin-top:28px}',VaCardStyle0=vaCardCss,VaCard=proxyCustomElement(class extends H{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.showShadow=!1,this.background=!1,this.iconName=void 0}render(){return h(Host,{key:"14a3fb82620d7d18233e2519004bfa8b97416f29"},this.iconName&&h("div",{key:"a8112c0220937e722b88b45bce48bcee1d44cfaa",class:"va-card__icon-wrapper"},h("span",{key:"231f85a062cebe5cfdd7b4615db58e38c3c6bbfb",class:"va-card__icon-circle"},h("va-icon",{key:"43a6cee8f2283328806b63a31be0b151e3b68521",icon:this.iconName,size:5}))),h("slot",{key:"de83322bc4051afb4b4a0c7a27387e2367a2003f"}))}static get style(){return VaCardStyle0}},[1,"va-card",{showShadow:[4,"show-shadow"],background:[4],iconName:[1,"icon-name"]}]);function defineCustomElement(){"undefined"!=typeof customElements&&["va-card","va-icon"].forEach(e=>{switch(e){case"va-card":customElements.get(e)||customElements.define(e,VaCard);break;case"va-icon":customElements.get(e)||defineCustomElement$1()}})}export{VaCard as V,defineCustomElement as d};
|