calcite-scrim.entry.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /*!
  2. * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
  4. * v1.0.0-beta.97
  5. */
  6. import { r as registerInstance, h, g as getElement } from './index-1f9b54dc.js';
  7. const CSS = {
  8. scrim: "scrim",
  9. content: "content"
  10. };
  11. const TEXT = {
  12. loading: "Loading"
  13. };
  14. const scrimCss = "@keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in-down{0%{opacity:0;transform:translate3D(0, -5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;transform:translate3D(0, 5px, 0)}100%{opacity:1;transform:translate3D(0, 0, 0)}}@keyframes in-scale{0%{opacity:0;transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;animation-fill-mode:both;animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{animation-name:in}.calcite-animate__in-down{animation-name:in-down}.calcite-animate__in-up{animation-name:in-up}.calcite-animate__in-scale{animation-name:in-scale}@media (prefers-reduced-motion: reduce){:root{--calcite-internal-duration-factor:0.01}}:root{--calcite-floating-ui-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{position:absolute;inset:0px;z-index:700;display:flex;block-size:100%;inline-size:100%;flex-direction:column;align-items:stretch}@keyframes calcite-scrim-fade-in{0%{--tw-bg-opacity:0}100%{--tw-text-opacity:1}}.scrim{position:absolute;inset:0px;display:flex;flex-direction:column;align-content:center;align-items:center;justify-content:center;overflow:hidden;animation:calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out;background-color:var(--calcite-scrim-background)}.content{padding:1rem}";
  15. const Scrim = class {
  16. constructor(hostRef) {
  17. registerInstance(this, hostRef);
  18. // --------------------------------------------------------------------------
  19. //
  20. // Properties
  21. //
  22. // --------------------------------------------------------------------------
  23. /**
  24. * Accessible name when the component is loading.
  25. *
  26. * @default "Loading"
  27. */
  28. this.intlLoading = TEXT.loading;
  29. /**
  30. * When `true`, a busy indicator is displayed.
  31. */
  32. this.loading = false;
  33. }
  34. // --------------------------------------------------------------------------
  35. //
  36. // Render Method
  37. //
  38. // --------------------------------------------------------------------------
  39. render() {
  40. const { el, loading, intlLoading } = this;
  41. const hasContent = el.innerHTML.trim().length > 0;
  42. const loaderNode = loading ? h("calcite-loader", { active: true, label: intlLoading }) : null;
  43. const contentNode = hasContent ? (h("div", { class: CSS.content }, h("slot", null))) : null;
  44. return (h("div", { class: CSS.scrim }, loaderNode, contentNode));
  45. }
  46. get el() { return getElement(this); }
  47. };
  48. Scrim.style = scrimCss;
  49. export { Scrim as calcite_scrim };