@jupyter/web-components
Version:
A component library for building extensions in Jupyter frontends.
65 lines (64 loc) • 2.28 kB
JavaScript
// Copyright (c) Jupyter Development Team.
// Distributed under the terms of the Modified BSD License.
import { html, ref, slotted } from '@microsoft/fast-element';
import { endSlotTemplate, startSlotTemplate, whitespaceFilter } from '@microsoft/fast-foundation';
/**
* The template for the {@link @jupyter/web-components#(DateField:class)} component.
* @public
*/
export const dateFieldTemplate = (context, definition) => html `
<template class="${x => (x.readOnly ? 'readonly' : '')}">
<label
part="label"
for="control"
class="${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length
? 'label'
: 'label label__hidden'}"
>
<slot
${slotted({
property: 'defaultSlottedNodes',
filter: whitespaceFilter
})}
></slot>
</label>
<div class="root" part="root">
${startSlotTemplate(context, definition)}
<input
class="control"
part="control"
id="control"
="${x => x.handleTextInput()}"
="${x => x.handleChange()}"
?autofocus="${x => x.autofocus}"
?disabled="${x => x.disabled}"
list="${x => x.list}"
?readonly="${x => x.readOnly}"
?required="${x => x.required}"
:value="${x => x.value}"
type="date"
aria-atomic="${x => x.ariaAtomic}"
aria-busy="${x => x.ariaBusy}"
aria-controls="${x => x.ariaControls}"
aria-current="${x => x.ariaCurrent}"
aria-describedby="${x => x.ariaDescribedby}"
aria-details="${x => x.ariaDetails}"
aria-disabled="${x => x.ariaDisabled}"
aria-errormessage="${x => x.ariaErrormessage}"
aria-flowto="${x => x.ariaFlowto}"
aria-haspopup="${x => x.ariaHaspopup}"
aria-hidden="${x => x.ariaHidden}"
aria-invalid="${x => x.ariaInvalid}"
aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
aria-label="${x => x.ariaLabel}"
aria-labelledby="${x => x.ariaLabelledby}"
aria-live="${x => x.ariaLive}"
aria-owns="${x => x.ariaOwns}"
aria-relevant="${x => x.ariaRelevant}"
aria-roledescription="${x => x.ariaRoledescription}"
${ref('control')}
/>
${endSlotTemplate(context, definition)}
</div>
</template>
`;