@itrocks/framework
Version:
RAD framework for intuitive web application development, blending data and domain-driven design with modular architecture
48 lines (47 loc) • 2.75 kB
JavaScript
import { loadCss } from '@itrocks/asset-loader/asset-loader.js';
import { autoFocus } from '@itrocks/auto-focus/auto-focus.js';
import '@itrocks/auto-redirect/build.js';
import { breadcrumb } from '@itrocks/breadcrumb/breadcrumb.js';
import { build } from '@itrocks/build/build.js';
import { collapse } from '@itrocks/collapse/collapse.js';
import { containedAutoWidth } from '@itrocks/contained-auto-width/contained-auto-width.js';
import { notification } from '@itrocks/notifications/notifications.js';
import { notifications } from '@itrocks/notifications/notifications.js';
import '@itrocks/real-viewport-height/real-viewport-height.js';
import { XTargetBeginEnd } from '@itrocks/xtarget/begin-end.js';
import { buildXTarget } from '@itrocks/xtarget/build.js';
import { XTargetSecureClick } from '@itrocks/xtarget/secure-click.js';
import { XTargetComposite } from '@itrocks/xtarget/composite.js';
import { XTargetDefaultTarget } from '@itrocks/xtarget/default-target.js';
import { XTargetDefaultOptions } from '@itrocks/xtarget/xtarget.js';
import { XTargetHead } from '@itrocks/xtarget/head.js';
import { XTargetHeadersSize } from '@itrocks/xtarget/headers-size.js';
import { XTargetHistory } from '@itrocks/xtarget/history.js';
import { XTargetHoldOn } from '@itrocks/xtarget/hold-on.js';
import { XTargetMainTarget } from '@itrocks/xtarget/main-target.js';
import { XTargetModifier } from '@itrocks/xtarget/modifier.js';
let selector;
selector = 'input[data-type=object], ul[data-type=objects] > li > input:not([type=hidden])';
build(selector, async (input) => {
input.classList.add('autocomplete');
loadCss('/@itrocks/autocomplete/autocomplete.css');
new (await import('@itrocks/autocomplete/autocomplete.js')).AutoComplete(input, {
allowNew: !['0', 'false', 'no', 'off'].includes(input.closest('form')?.dataset.allowNew ?? '0')
});
if (input.dataset.type !== 'object') {
(await import('@itrocks/links/links.js')).links(input);
}
});
build('main > * > h2, main > * > header > h2', breadcrumb);
build('button.collapse', button => collapse(button, 'body'));
build('input[data-type=date]', async (input) => (await import('@itrocks/air-datepicker/air-datepicker.js')).airDatePicker(input));
build('form', autoFocus);
selector = '[data-contained-auto-width], [data-multiple-contained-auto-width] > li';
build(selector, async (container) => containedAutoWidth(container));
build('#notifications > li', notification);
build('#notifications', notifications);
XTargetDefaultOptions({ plugins: [
XTargetBeginEnd, XTargetComposite, XTargetDefaultTarget, XTargetHead, XTargetHeadersSize,
XTargetHistory, XTargetHoldOn, XTargetMainTarget, XTargetModifier, XTargetSecureClick
] });
buildXTarget();