Welcome Getting started Layout styles github-circle-black-transparent Source
Components
Badges
App bars
Bottom app bars Top app bars
Buttons
Common buttons FAB Icon buttons Segmented buttons
Cards Carousel Checkboxes Chips Date pickers Dialogs Forms Icons Lists Menus Navigation Progress indicators Pull to refresh Radios Search Selects
Sheets
Bottom sheets Side sheets
Sliders Snackbars Switches Tabs Text fields Time pickers Tooltips Utilities
home apps Buttons palette Two
Materially
github-circle-black-transparent

Utilities

A set of helper methods that are used to support the components, that can be used

Util

Methods for various use cases
import { mcUtil } from '@thewebformula/materially/services';
// import { mcUtil } from '@thewebformula/materially';

// --- Below are some of the more useful methods ---

// debounce function calls by milliseconds
mcUtil.debounce(() => {}, 200);

// throttle function calls by request animations frames
mcUtil.rafThrottle(() => {});

// Jaro Winkler based fuzzy searching
mcUtil.fuzzySearch('search term', [ { label: 'One', value: 1 }, { label: 'Two', value: 2 } ], distanceCap /* defaults to 0.2 */ );

// toggle between dark and light color schemes. This can also be done via css
mcUtil.toggleColorScheme();
            

Date

Wrapper class around Date and Intl.DateTimeFormat, used by date pickers
import { mcDate } from '@thewebformula/materially/services';
// import { mcDate } from '@thewebformula/materially';

// --- Below are some of the more useful methods ---

// Set local for anything using this util, including date pickers
mcDate.locale = 'EN-US';

// Set timezone for anything using this util, including date pickers
mcDate.timeZone = 'GMT';

mcDate.hourCycle; // h12 - h24

// Parse accepts strings (yyyy-mm-dd) and Date objects
// returns Date object
mcDate.parse('2023-01-20');

// build on top of Intl.DateTimeFormat, using the utils locale and timezone
// returns String
// ddd, MMM DD = Thu, Dec 12
// YYYY-MMMM-dddd = 2019-month-wednesday
// YY/MMM/ddd = 19/10/22
mcDate.format(new Date(), 'yyyy-mm-dd');

// returns Date object
mcDate.buildFromParts({ year: '2023', month: '01', day: '20' });

mcDate.getYear(new Date());
mcDate.getMonth(new Date());
mcDate.getWeekDay(new Date());
mcDate.getMonthDay(new Date());
mcDate.getFirstDateOfMonth(new Date());
mcDate.getParts(new Date()); // { year, month, day }

mcDate.getMonthNames();
mcDate.getMonthNamesShort();
mcDate.getDayNames('long | short | narrow'); // mon, tue, wed, thur, fri

// Add to individual parts of date, use negative numbers to subtract
// returns Date object
mcDate.addToDateByParts(new Date(), { year: 1, month: 1, day: 1 });

// Set individual parts of date
// returns Date object
mcDate.setDateByParts(new Date(), { year: 1, month: 1, day: 1 });
            

Device

Used to determine information about current device
import { mcDevice } from '@thewebformula/materially/services';
// import { mcDevice } from '@thewebformula/materially';

mcDevice.state; // expanded - medium - compact
// mcDevice.COMPACT
// mcDevice.MEDIUM
// mcDevice.EXPANDED
if (mcDevice.state === mcDevice.COMPACT) {
  // do work
}

mcDevice.orientation; // landscape - portrait
mcDevice.hasTouchScreen; // true - false

window.addEventListener('mcwindowstatechange', event => {
  // listen for state changes
  // there will be no lastState on initial event
  console.log(event.detail.state, event.detail.lastState);
})
            
menu home apps Get started