{"version":3,"file":"index.mjs","sources":["../../../projects/transpiler/src/imports.ts","../../../projects/transpiler/src/build.ts","../../../projects/transpiler/src/index.ts"],"sourcesContent":["import {ImportDef} from './build';\n\n// Angular Core Modules\nconst NG_FORM_MODULE: ImportDef[] = [{ from: '@angular/forms', name: 'FormsModule', as: 'ngFormsModule' }];\nconst NG_REACTIVE_FORM_MODULE: ImportDef[] = [{ from: '@angular/forms', name: 'ReactiveFormsModule', as: 'ngReactiveFormsModule' }];\n\n// NGX Bootstrap Modules\nconst NGX_BS_DATE_PICKER: ImportDef[] = [{ from: 'ngx-bootstrap/datepicker', name: 'BsDatepickerModule', as: 'ngx_BsDatepickerModule' }];\nconst NGX_CAROUSEL_MODULE: ImportDef[] = [{ from: 'ngx-bootstrap/carousel', name: 'CarouselModule', as: 'ngxCarouselModule', forRoot: true }];\nconst NGX_COLOR_PICKER_DIRECTIVE: ImportDef[] = [{ from: 'ngx-color-picker', name: 'ColorPickerDirective', as: 'ngx_ColorPickerDirective' }];\nconst NGX_DROP_DOWN_MODULE: ImportDef[] = [{ from: 'ngx-bootstrap/dropdown', name: 'BsDropdownModule', as: 'ngxBsDropdownModule', forRoot: true }];\n//const NGX_MODAL_MODULE: ImportDef[] = [{ from: 'ngx-bootstrap/modal', name: 'ModalModule', as: 'ngx_ModalModule' }];\nconst NGX_PAGINATION_MODULE: ImportDef[] = [{ from: 'ngx-bootstrap/pagination', name: 'PaginationModule', as: 'ngxPaginationModule', forRoot: true }];\nconst NGX_POPOVER_MODULE: ImportDef[] = [{ from: 'ngx-bootstrap/popover', name: 'PopoverModule', as: 'ngxPopoverModule', forRoot: true }];\nconst NGX_TIME_PICKER: ImportDef[] = [{ from: 'ngx-bootstrap/timepicker', name: 'TimepickerModule', as: 'ngx_TimepickerModule', forRoot: true }];\nconst NGX_TOOL_TIP_MODULE: ImportDef[] = [{ from: 'ngx-bootstrap/tooltip', name: 'TooltipModule', as: 'ngxTooltipModule', forRoot: true }];\nconst NGX_TYPE_HEAD_MODULE: ImportDef[] = [{ from: 'ngx-bootstrap/typeahead', name: 'TypeaheadModule', as: 'ngxTypeaheadModule', forRoot: true }];\n\n// Progess Modules\nconst PROGRESS_BAR_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/progress/progress-bar', name: 'ProgressBarComponent' }];\nconst PROGRESS_CIRCLE_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/progress/progress-circle', name: 'ProgressCircleComponent' }];\nconst PAGE_COMPONENT: ImportDef[] = [{ from: '@wm/components/page', name: 'PageDirective' }];\nconst PAGINATION_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, ...NGX_PAGINATION_MODULE, { from: '@wm/components/data/pagination', name: 'PaginationComponent' }];\n\n// Basic Components\nconst ANCHOR_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/anchor', name: 'AnchorComponent' }];\nconst AUDIO_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/audio', name: 'AudioComponent' }];\nconst HTML_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/html', name: 'HtmlDirective' }];\nconst ICON_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/icon', name: 'IconComponent' }];\nconst IFRAME_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/iframe', name: 'IframeComponent' }];\nconst LABEL_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/label', name: 'LabelDirective' }];\nconst PICTURE_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/picture', name: 'PictureDirective' }];\nconst SEARCH_COMPONENT: ImportDef[] = [\n    ...NG_FORM_MODULE,\n    ...NGX_TYPE_HEAD_MODULE,\n    { from: '@wm/components/basic/search', name: 'ScrollableDirective' },\n    { from: '@wm/components/basic/search', name: 'SearchComponent' }];\nconst SPINNER_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/spinner', name: 'SpinnerComponent' }];\nconst VIDEO_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/video', name: 'VideoComponent' }];\n\n// Container Components\nconst PARTIAL_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/base', name: 'PartialDirective' }];\nconst PARTIAL_CONTAINER: ImportDef[] = [{ from: '@wm/components/base', name: 'PartialParamHandlerDirective' }, { from: '@wm/components/base', name: 'PartialContainerDirective' }]\nconst ACCORDION_PANE_COMPONENT: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/containers/accordion', name: 'AccordionPaneComponent' }];\nconst ACCORDION_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/containers/accordion', name: 'AccordionDirective' }];\nconst CONTAINER_DIRECTIVE: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/base', name: 'ContainerDirective' }]\nconst PARTIAL_PARAM_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/base', name: 'PartialParamDirective' }];\nconst LINEAR_LAYOUT_ITEM_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/containers/linear-layout', name: 'LinearLayoutItemDirective' }];\nconst LINEAR_LAYOUT_DIRECTIVE: ImportDef[] = [...LINEAR_LAYOUT_ITEM_DIRECTIVE, { from: '@wm/components/containers/linear-layout', name: 'LinearLayoutDirective' }];\nconst TAB_PANE_COMPONENT: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/containers/tabs', name: 'TabPaneComponent' }];\nconst TABS_COMPONENT: ImportDef[] = [...TAB_PANE_COMPONENT, { from: '@wm/components/containers/tabs', name: 'TabsComponent' }];\nconst WIZARD_ACTION_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/containers/wizard', name: 'WizardActionDirective' }];\nconst WIZARD_STEP_DIRECTIVE: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/containers/wizard', name: 'WizardStepComponent' }];\nconst WIZARD_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, ...WIZARD_ACTION_DIRECTIVE, ...WIZARD_STEP_DIRECTIVE, { from: '@wm/components/containers/wizard', name: 'WizardComponent' }];\nconst LAYOUT_GRID_COLUMN_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/containers/layout-grid', name: 'LayoutGridColumnDirective' }];\nconst LAYOUT_GRID_ROW_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/containers/layout-grid', name: 'LayoutGridRowDirective' }];\nconst LAYOUT_GRID_DIRECTIVE: ImportDef[] = [...LAYOUT_GRID_ROW_DIRECTIVE, ...LAYOUT_GRID_COLUMN_DIRECTIVE, { from: '@wm/components/containers/layout-grid', name: 'LayoutgridDirective' }];\nconst PANEL_COMPONENT: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/containers/panel', name: 'PanelComponent' }];\nconst TILE_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/containers/tile', name: 'TileDirective' }];\nconst REPEAT_TEMPLATE_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/base', name: 'RepeatTemplateDirective' }];\n\n// Dialog Modules\nconst ALERT_DIALOG_COMPONENT: ImportDef[] = [{ from: '@wm/components/dialogs/alert-dialog', name: 'AlertDialogComponent' }];\nconst CONFIRM_DIALOG_COMPONENT: ImportDef[] = [{ from: '@wm/components/dialogs/confirm-dialog', name: 'ConfirmDialogComponent' }];\nconst DESIGN_DIALOG_COMPONENT: ImportDef[] = [{ from: '@wm/components/dialogs/design-dialog', name: 'DialogComponent' }];\nconst IFRAME_DIALOG_COMPONENT: ImportDef[] = [{ from: '@wm/components/dialogs/iframe-dialog', name: 'IframeDialogComponent' }];\nconst LOGIN_DIALOG_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/dialogs/login-dialog', name: 'LoginDialogDirective' }, ...DESIGN_DIALOG_COMPONENT];\nconst PARTIAL_DIALOG_COMPONENT: ImportDef[] = [{ from: '@wm/components/dialogs/partial-dialog', name: 'PartialDialogComponent' }, ...CONTAINER_DIRECTIVE];\nconst DIALOGACTIONS_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/dialogs', name: 'DialogFooterDirective' }];\n\n// Navigation Modules\nconst NAV_ITEM_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/navigation/menu', name: 'NavItemDirective' }];\nconst NAV_COMPONENT: ImportDef[] = [{ from: '@wm/components/navigation/menu', name: 'NavComponent' }];\nconst NAVIGATION_CONTROL_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/navigation/menu', name: 'NavigationControlDirective' }];\nconst MENU_DROPDOWN_ITEM_COMPONENT: ImportDef[] = [{ from: '@wm/components/navigation/menu', name: 'MenuDropdownComponent' }];\nconst MENU_DROPDOWN_COMPONENT: ImportDef[] = [{ from: '@wm/components/navigation/menu', name: 'MenuDropdownComponent' }]; // Duplicate, consider removing one\nconst MENU_COMPONENT: ImportDef[] = [...NGX_DROP_DOWN_MODULE, ...MENU_DROPDOWN_COMPONENT, ...MENU_DROPDOWN_ITEM_COMPONENT, ...NAVIGATION_CONTROL_DIRECTIVE, ...NAV_COMPONENT, ...NAV_ITEM_DIRECTIVE, { from: '@wm/components/navigation/menu', name: 'MenuComponent' }];\nconst MESSAGE_COMPONENT: ImportDef[] = [{ from: '@wm/components/base', name: 'MessageComponent' }];\nconst BREAD_CRUMB_COMPONENT: ImportDef[] = [...MENU_COMPONENT, { from: '@wm/components/navigation/breadcrumb', name: 'BreadcrumbComponent' }];\nconst NAVBAR_COMPONENT: ImportDef[] = [{ from: '@wm/components/navigation/navbar', name: 'NavbarComponent' }];\nconst POPOVER_COMPONENT: ImportDef[] = [...NGX_POPOVER_MODULE, { from: '@wm/components/navigation/popover', name: 'PopoverComponent' }, ...CONTAINER_DIRECTIVE];\nconst TOP_NAV_DIRECTIVE: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/page/top-nav', name: 'TopNavDirective' }];\n\n// Input Components\nconst CALENDAR_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, ...NGX_BS_DATE_PICKER, { from: '@wm/components/input/calendar', name: 'CalendarComponent' }];\nconst CHIPS_COMPONENT: ImportDef[] = [...SEARCH_COMPONENT, { from: '@wm/components/input/chips', name: 'ChipsComponent' }];\nconst COLOR_PICKER_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, ...NGX_COLOR_PICKER_DIRECTIVE, { from: '@wm/components/input/color-picker', name: 'ColorPickerComponent' }];\nconst CURRENCY_COMPONENT: ImportDef[] = [{ from: '@wm/components/input/currency', name: 'CurrencyComponent' }];\nconst DATE_COMPONENT: ImportDef[] = [\n    ...NG_FORM_MODULE, ...NGX_BS_DATE_PICKER, ...NGX_DROP_DOWN_MODULE,\n    { from: '@wm/components/input/epoch/date', name: 'DateComponent' }];\nconst DATE_TIME_COMPONENT: ImportDef[] = [\n    ...NG_FORM_MODULE, ...NGX_BS_DATE_PICKER, ...NGX_TIME_PICKER, ...NGX_DROP_DOWN_MODULE,\n    { from: '@wm/components/input/epoch/date-time', name: 'DatetimeComponent' }];\nconst TIME_COMPONENT: ImportDef[] = [\n    ...NG_FORM_MODULE, ...NGX_BS_DATE_PICKER, ...NGX_TIME_PICKER, ...NGX_DROP_DOWN_MODULE,\n    { from: '@wm/components/input/epoch/time', name: 'TimeComponent' }];\nconst FILE_UPLOAD_COMPONENT: ImportDef[] = [{ from: '@wm/components/input/file-upload', name: 'FileUploadComponent' }];\nconst RATING_COMPONENT: ImportDef[] = [{ from: '@wm/components/input/rating', name: 'RatingComponent' }];\nconst SLIDER_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/slider', name: 'SliderComponent' }];\nconst BUTTON_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/button', name: 'ButtonComponent' }];\nconst BUTTON_GROUP_DIRECTIVE: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/button-group', name: 'ButtonGroupDirective' }];\n// const CAPTION_POSITION_DIRECTIVE: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input', name: 'CaptionPositionDirective' }];\nconst CHECKBOX_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/checkbox', name: 'CheckboxComponent' }];\nconst CHECKBOXSET_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/checkboxset', name: 'CheckboxsetComponent' }];\n// const COMPOSITE_DIRECTIVE: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input', name: 'CompositeDirective' }];\nconst NUMBER_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/number', name: 'NumberComponent' }];\nconst RADIOSET_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/radioset', name: 'RadiosetComponent' }];\nconst SELECT_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/select', name: 'SelectComponent' }];\nconst SWITCH_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/switch', name: 'SwitchComponent' }];\nconst INPUT_CALENDER_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/text', name: 'InputCalendarComponent' }];\nconst INPUT_COLOR_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/text', name: 'InputColorComponent' }];\nconst INPUT_EMAIL_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/text', name: 'InputEmailComponent' }];\nconst INPUT_NUMBER_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/text', name: 'InputNumberComponent' }];\nconst INPUT_TEXT_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/text', name: 'InputTextComponent' }];\nconst TEXTAREA_COMPONENT: ImportDef[] = [...NG_FORM_MODULE, { from: '@wm/components/input/textarea', name: 'TextareaComponent' }];\n\n// Data Components\nconst CARD_ACTIONS_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/card', name: 'CardActionsDirective' }];\nconst CARD_CONTENT_COMPONENT: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/data/card', name: 'CardContentComponent' }];\nconst CARD_FOOTER_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/card', name: 'CardFooterDirective' }];\nconst CARD_COMPONENT: ImportDef[] = [\n    ...NGX_DROP_DOWN_MODULE,\n    ...MENU_COMPONENT,\n    ...CARD_ACTIONS_DIRECTIVE,\n    ...CARD_CONTENT_COMPONENT,\n    ...CARD_FOOTER_DIRECTIVE,\n    { from: '@wm/components/data/card', name: 'CardComponent' }];\nconst LIST_ITEM_DIRECTIVE: ImportDef[] = [...PAGINATION_COMPONENT, { from: '@wm/components/data/list', name: 'ListItemDirective' }];\nconst LIST_COMPONENT: ImportDef[] = [...PAGINATION_COMPONENT, ...LIST_ITEM_DIRECTIVE, { from: '@wm/components/data/list', name: 'ListComponent' }];\nconst TABLE_CUD_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/table', name: 'TableCUDDirective' }];\nconst TABLE_FILTER_SORT_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/table', name: 'TableFilterSortDirective' }];\nconst TABLE_ACTION_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/table', name: 'TableActionDirective' }];\nconst TABLE_COLUMN_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/table', name: 'TableColumnDirective' }];\nconst TABLE_COLUMN_GROUP_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/table', name: 'TableColumnGroupDirective' }];\nconst TABLE_ROW_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/table', name: 'TableRowDirective' }, ...CONTAINER_DIRECTIVE, ...PARTIAL_CONTAINER];\nconst TABLE_ROW_ACTION_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/table', name: 'TableRowActionDirective' }, ...BUTTON_COMPONENT, ...ANCHOR_COMPONENT];\nconst TABLE_COMPONENT: ImportDef[] = [\n    ...NG_FORM_MODULE,\n    ...NG_REACTIVE_FORM_MODULE,\n    ...PAGINATION_COMPONENT,\n    ...MENU_COMPONENT,\n    ...NGX_TOOL_TIP_MODULE,\n    ...LIST_COMPONENT,\n    ...TABLE_ACTION_DIRECTIVE,\n    ...TABLE_CUD_DIRECTIVE,\n    ...TABLE_FILTER_SORT_DIRECTIVE,\n    ...TABLE_COLUMN_DIRECTIVE,\n    ...TABLE_COLUMN_GROUP_DIRECTIVE,\n    ...TABLE_ROW_DIRECTIVE,\n    ...TABLE_ROW_ACTION_DIRECTIVE,\n    { from: '@wm/components/data/table', name: 'TableComponent' }];\nconst LIVE_TABLE_COMPONENT: ImportDef[] = [{ from: '@wm/components/data/live-table', name: 'LiveTableComponent' }];\n\n// Form Components and Directives\nconst FORM_WIDGET_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/form', name: 'FormWidgetDirective' }];\nconst FORM_ACTION_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/form', name: 'FormActionDirective' }];\nconst FORM_FIELD_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/form', name: 'FormFieldDirective' }];\nconst LIVE_ACTION_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/form', name: 'LiveActionsDirective' }];\nconst DEPENDS_ON_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/form', name: 'DependsonDirective' }];\nconst LIVE_FILTER_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/form', name: 'LiveFilterDirective' }];\nconst LIVE_FORM_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/data/form', name: 'LiveFormDirective' }];\nconst CAPTION_POSITION_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/input/caption-position', name: 'CaptionPositionDirective'}];\nconst FORM_COMPONENT: ImportDef[] = [\n    ...NG_FORM_MODULE,\n    ...NG_REACTIVE_FORM_MODULE,\n    ...FORM_ACTION_DIRECTIVE,\n    ...FORM_WIDGET_DIRECTIVE,\n    ...FORM_FIELD_DIRECTIVE,\n    ...LIVE_ACTION_DIRECTIVE,\n    ...DEPENDS_ON_DIRECTIVE,\n    ...LIVE_FILTER_DIRECTIVE,\n    ...LIVE_FORM_DIRECTIVE,\n    ...CAPTION_POSITION_DIRECTIVE,\n    { from: '@wm/components/data/form', name: 'FormComponent' }];\nconst COMPOSITE_DIRECTIVE = [{ from: '@wm/components/input/composite', name: 'CompositeDirective' }, { from: '@wm/components/input/caption-position', name: 'CaptionPositionDirective' }]\n\n// Page Structure Components // TODO: PARTIAL_CONTAINER these needed ? appComponent has imports at root\nconst FOOTER_DIRECTIVE: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/page/footer', name: 'FooterDirective' }];\nconst HEADER_COMPONENT: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/page/header', name: 'HeaderComponent' }];\nconst LEFT_PANEL_DIRECTIVE: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/page/left-panel', name: 'LeftPanelDirective' }];\nconst RIGHT_PANEL_DIRECTIVE: ImportDef[] = [...PARTIAL_CONTAINER, { from: '@wm/components/page/right-panel', name: 'RightPanelDirective' }];\nconst PAGE_CONTENT_COMPONENT: ImportDef[] = [{ from: '@wm/components/page', name: 'PageContentComponent' }];\nconst SPA_PAGE_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/page', name: 'SpaPageDirective' }];\nconst LAYOUT_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/page', name: 'LayoutDirective' }];\nconst CONTENT_COMPONENT: ImportDef[] = [{ from: '@wm/components/page', name: 'ContentComponent' }];\n\n// Advanced Components\nconst CAROUSEL_TEMPLATE_DIRECTIVE: ImportDef[] = [...NGX_CAROUSEL_MODULE, { from: '@wm/components/advanced/carousel', name: 'CarouselTemplateDirective' }];\nconst CAROUSEL_COMPONENT: ImportDef[] = [...NGX_CAROUSEL_MODULE, ...CAROUSEL_TEMPLATE_DIRECTIVE, { from: '@wm/components/advanced/carousel', name: 'CarouselDirective' }];\nconst CHART_COMPONENT: ImportDef[] = [{ from: '@wm/components/chart', name: 'ChartComponent' }, {from: '@wm/components/base', name: 'RedrawableDirective'}];\nconst CUSTOM_WIDGET_CONTAINER_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/advanced/custom', name: 'CustomWidgetContainerDirective' }];\nconst CUSTOM_WIDGET_DIRECTIVE: ImportDef[] = [...CUSTOM_WIDGET_CONTAINER_DIRECTIVE, { from: '@wm/components/advanced/custom', name: 'CustomWidgetDirective' }];\nconst LOGIN_COMPONENT: ImportDef[] = [{ from: '@wm/components/advanced/login', name: 'LoginComponent' }];\nconst MARQUEE_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/advanced/marquee', name: 'MarqueeDirective' }];\nconst PREFAB_CONTAINER_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/prefab', name: 'PrefabContainerDirective' }];\nconst PREFAB_DIRECTIVE: ImportDef[] = [{ from: '@wm/components/prefab', name: 'PrefabDirective' }];\nconst RICH_TEXT_EDITOR_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/rich-text-editor', name: 'RichTextEditorComponent' }];\nconst TREE_COMPONENT: ImportDef[] = [{ from: '@wm/components/basic/tree', name: 'TreeComponent' }];\nconst ACCESSROLES_DIRECTIVE = [{from: '@wm/runtime/base', name: 'AccessrolesDirective'}];\nconst SHOW_IN_DEVICE_DIRECTIVE: ImportDef[] = [{from: '@wm/components/base', name: 'ShowInDeviceDirective'}];\nconst LAZY_LOAD_DIRECTIVE: ImportDef[] = [{from: '@wm/components/base', name: 'LazyLoadDirective'}];\n// Pipes\nconst TO_DATE_PIPE: ImportDef[] = [{ from: '@wm/components/base', name: 'ToDatePipe' }];\nconst TO_CURRENCY_PIPE: ImportDef[] = [{ from: '@wm/components/base', name: 'ToCurrencyPipe' }];\nconst NUMBER_TO_STRING_PIPE: ImportDef[] = [{ from: '@wm/components/base', name: 'NumberToStringPipe' }];\nconst STRING_TO_NUMBER_PIPE: ImportDef[] = [{ from: '@wm/components/base', name: 'StringToNumberPipe' }];\nconst TIME_FROM_NOW_PIPE: ImportDef[] = [{ from: '@wm/components/base', name: 'TimeFromNowPipe' }];\nconst PREFIX_PIPE: ImportDef[] = [{ from: '@wm/components/base', name: 'PrefixPipe' }];\nconst SUFFIX_PIPE: ImportDef[] = [{ from: '@wm/components/base', name: 'SuffixPipe' }];\nconst CUSTOM_PIPE: ImportDef[] = [{ from: '@wm/components/base', name: 'CustomPipe' }];\n\nexport const WIDGET_IMPORTS: Map<string, ImportDef[]> = new Map([\n    ['wm-accordion', ACCORDION_DIRECTIVE],\n    ['wm-accordionpane', ACCORDION_PANE_COMPONENT],\n    ['wm-anchor', ANCHOR_COMPONENT],\n    ['wm-alertdialog', ALERT_DIALOG_COMPONENT],\n    ['wm-audio', AUDIO_COMPONENT],\n    ['wm-button', BUTTON_COMPONENT],\n    ['wm-buttongroup', BUTTON_GROUP_DIRECTIVE],\n    ['wm-breadcrumb', BREAD_CRUMB_COMPONENT],\n    ['wm-calendar', CALENDAR_COMPONENT],\n    ['wm-card', CARD_COMPONENT],\n    ['wm-card-actions', CARD_ACTIONS_DIRECTIVE],\n    ['wm-card-content', CARD_CONTENT_COMPONENT],\n    ['wm-card-footer', CARD_FOOTER_DIRECTIVE],\n    ['wm-carousel', CAROUSEL_COMPONENT],\n    ['wm-carousel-content', CAROUSEL_TEMPLATE_DIRECTIVE],\n    ['wm-carousel-template', CAROUSEL_TEMPLATE_DIRECTIVE],\n    ['wm-chart', CHART_COMPONENT],\n    ['wm-checkbox', CHECKBOX_COMPONENT],\n    ['wm-checkboxset', CHECKBOXSET_COMPONENT],\n    ['wm-chips', CHIPS_COMPONENT],\n    ['wm-colorpicker', COLOR_PICKER_COMPONENT],\n    ['wm-confirmdialog', CONFIRM_DIALOG_COMPONENT],\n    ['wm-container', CONTAINER_DIRECTIVE],\n    ['wm-param', PARTIAL_PARAM_DIRECTIVE],\n    ['wm-content', CONTENT_COMPONENT],\n    ['wm-currency', CURRENCY_COMPONENT],\n    ['wm-date', DATE_COMPONENT],\n    ['wm-datetime', DATE_TIME_COMPONENT],\n    ['wm-dialog', DESIGN_DIALOG_COMPONENT],\n    ['wm-dialogactions', DIALOGACTIONS_DIRECTIVE],\n    ['wm-footer', FOOTER_DIRECTIVE],\n    ['wm-form', FORM_COMPONENT],\n    ['wm-form-action', FORM_ACTION_DIRECTIVE],\n    ['wm-form-field', FORM_FIELD_DIRECTIVE],\n    ['wm-filter-field', LIVE_FILTER_DIRECTIVE],\n    ['wm-fileupload', FILE_UPLOAD_COMPONENT],\n    ['wm-gridrow', LAYOUT_GRID_ROW_DIRECTIVE],\n    ['wm-gridcolumn', LAYOUT_GRID_COLUMN_DIRECTIVE],\n    ['wm-header', HEADER_COMPONENT],\n    ['wm-html', HTML_COMPONENT],\n    ['wm-icon', ICON_COMPONENT],\n    ['wm-iframe', IFRAME_COMPONENT],\n    ['wm-iframedialog', IFRAME_DIALOG_COMPONENT],\n    ['wm-label', LABEL_COMPONENT],\n    ['wm-layout', LAYOUT_DIRECTIVE],\n    ['wm-layoutgrid', LAYOUT_GRID_DIRECTIVE],\n    ['wm-left-panel', LEFT_PANEL_DIRECTIVE],\n    ['wm-linearlayout', LINEAR_LAYOUT_DIRECTIVE],\n    ['wm-linearlayoutitem', LINEAR_LAYOUT_ITEM_DIRECTIVE],\n    ['wm-list', LIST_COMPONENT],\n    ['wm-livetable', LIVE_TABLE_COMPONENT],\n    ['wm-login', LOGIN_COMPONENT],\n    ['wm-custom', CUSTOM_WIDGET_DIRECTIVE],\n    ['wm-custom-widget', CUSTOM_WIDGET_DIRECTIVE],\n    ['wm-logindialog', LOGIN_DIALOG_DIRECTIVE],\n    ['wm-marquee', MARQUEE_DIRECTIVE],\n    ['wm-menu', MENU_COMPONENT],\n    ['wm-message', MESSAGE_COMPONENT],\n    ['wm-nav', NAV_COMPONENT],\n    ['wm-navbar', NAVBAR_COMPONENT],\n    ['wm-nav-item', NAV_ITEM_DIRECTIVE],\n    ['wm-number', NUMBER_COMPONENT],\n    ['wm-partial', PARTIAL_DIRECTIVE],\n    ['wm-page', PAGE_COMPONENT],\n    ['wm-page-content', PAGE_CONTENT_COMPONENT],\n    ['spa-page-content', SPA_PAGE_DIRECTIVE],\n    ['wm-pagedialog', PARTIAL_DIALOG_COMPONENT],\n    ['wm-pagination', PAGINATION_COMPONENT],\n    ['wm-panel', PANEL_COMPONENT],\n    ['wm-panel-footer', PANEL_COMPONENT],\n    ['wm-picture', PICTURE_COMPONENT],\n    ['wm-popover', POPOVER_COMPONENT],\n    ['wm-progress-bar', PROGRESS_BAR_COMPONENT],\n    ['wm-prefab', PREFAB_DIRECTIVE],\n    ['wm-prefab-container', PREFAB_CONTAINER_DIRECTIVE],\n    ['wm-progress-circle', PROGRESS_CIRCLE_COMPONENT],\n    ['wm-radioset', RADIOSET_COMPONENT],\n    ['wm-rating', RATING_COMPONENT],\n    ['wm-richtexteditor', RICH_TEXT_EDITOR_COMPONENT],\n    ['wm-right-panel', RIGHT_PANEL_DIRECTIVE],\n    ['wm-select', SELECT_COMPONENT],\n    ['wm-search', SEARCH_COMPONENT],\n    ['wm-slider', SLIDER_COMPONENT],\n    ['wm-spinner', SPINNER_COMPONENT],\n    ['wm-switch', SWITCH_COMPONENT],\n    ['wm-table', TABLE_COMPONENT],\n    ['wm-tabs', TABS_COMPONENT],\n    ['wm-tabpane', TAB_PANE_COMPONENT],\n    ['wm-text', [...INPUT_TEXT_COMPONENT, ...INPUT_CALENDER_COMPONENT, ...INPUT_COLOR_COMPONENT, ...INPUT_EMAIL_COMPONENT, ...INPUT_NUMBER_COMPONENT]],\n    ['wm-textarea', TEXTAREA_COMPONENT],\n    ['wm-time', TIME_COMPONENT],\n    ['wm-tile', TILE_DIRECTIVE],\n    ['wm-top-nav', TOP_NAV_DIRECTIVE],\n    ['wm-tree', TREE_COMPONENT],\n    ['wm-video', VIDEO_COMPONENT],\n    ['wm-wizard', WIZARD_COMPONENT],\n    ['wm-wizardstep', WIZARD_COMPONENT],\n    ['wm-repeat-template', REPEAT_TEMPLATE_DIRECTIVE],\n    ['wm-composite', COMPOSITE_DIRECTIVE],\n    ['accessroles', ACCESSROLES_DIRECTIVE],\n    ['showindevice', SHOW_IN_DEVICE_DIRECTIVE],\n    ['lazyload', LAZY_LOAD_DIRECTIVE],\n\n    ['toDate', TO_DATE_PIPE],\n    ['toCurrency', TO_CURRENCY_PIPE],\n    ['numberToString', NUMBER_TO_STRING_PIPE],\n    ['stringToNumber', STRING_TO_NUMBER_PIPE],\n    ['timeFromNow', TIME_FROM_NOW_PIPE],\n    ['prefix', PREFIX_PIPE],\n    ['suffix', SUFFIX_PIPE],\n    ['custom', CUSTOM_PIPE],\n]);\n","import {Comment, Element, getHtmlTagDefinition, HtmlParser, ParseSourceSpan, Text} from '@angular/compiler';\nimport {WIDGET_IMPORTS} from './imports';\nimport {find, isEqual, isFunction, remove, sortBy, uniqWith} from \"lodash-es\";\n\nconst CSS_REGEX = {\n    COMMENTS_FORMAT : /\\/\\*((?!\\*\\/).|\\n)+\\*\\//g,\n    SELECTOR_FORMAT : /[^\\{\\}]*\\{/gi,\n    SELECTOR_EXCLUDE_FORMAT : /(@keyframes|@media|@font-face|@comment[0-9]+|from|to|[0-9]+%)\\b/i\n};\n\nconst isString = v => typeof v === 'string';\n\ninterface IProviderInfo {\n    nodeName: string;\n    provide: Map<string, any>;\n}\n\nconst OVERRIDES = {\n    'accessroles': '*accessroles',\n    'ng-if': '*ngIf',\n    'showindevice': '*wmShowInDevice',\n    'ng-class': '[ngClass]',\n    'data-ng-class': '[ngClass]',\n    'data-ng-src': 'src',\n    'ng-src': 'src',\n    'data-ng-href': 'href',\n    'ng-href': 'href',\n    'ng-disabled': 'disabled',\n    'data-ng-disabled': 'disabled',\n    'ng-model': '[ngModelOptions]=\"{standalone: true}\" [(ngModel)]'\n};\n\nconst selfClosingTags = new Set(['img']);\n\nexport const getBoundToExpr = (value: string) => {\n    if (!value) {\n        return null;\n    }\n\n    value = value.trim();\n    if (value.startsWith('bind:')) {\n        return value.substr(5);\n    }\n};\n\nconst quoteAttr = v => {\n    return ('' + v) /* Forces the conversion to string. */\n        .replace(/&/g, '&amp;') /* This MUST be the 1st replacement. */\n        .replace(/'/g, '&apos;') /* The 4 other predefined entities, required. */\n        .replace(/\"/g, '&quot;')\n        .replace(/</g, '&lt;')\n        .replace(/>/g, '&gt;');\n};\n\nconst registry = new Map<string, any>();\nconst htmlParser = new HtmlParser();\nconst ignoreComments = true;\n\nconst empty = () => '';\n\nconst isEvent = name => name[0] === 'o' && name[1] === 'n' && name[2] === '-';\n\nconst getEventName = key => key.substr(3);\n\nconst processBinding = (attr, expr) => [`${attr.name}.bind`, quoteAttr(expr)];\n\nconst processEvent = attr => {\n    const evtName = getEventName(attr.name);\n    return [`${evtName}.event`, attr.value];\n};\n\n/**\n * Wraps the string with single quotes.\n * @param val\n */\nconst wrapWithApos = (val: string) => {\n    return `&apos;${val.replace(/&apos/g, '&quot').replace(/&quot/g, '\\\\&quot')}&apos;`;\n};\nconst ELE_PREFIX = '.wm-app';\n\nconst processAttr = attr => {\n    let overridden = OVERRIDES[attr.name];\n    const value = attr.valueSpan ? attr.value : undefined;\n\n    if (overridden) {\n        /**\n         * wrap value for accessroles with ''.\n         * since accessroles is a structural directive, it will be transpiled to [accessroles]\n         * hence, the value against it should be a computed string\n         */\n        if (attr.name === 'accessroles' || attr.name === 'showindevice') {\n            return [overridden, `'${value}'`];\n        }\n        return [overridden, quoteAttr(value)];\n    }\n\n    if (isEvent(attr.name)) {\n        return processEvent(attr);\n    }\n\n    const boundExpr = getBoundToExpr(attr.value);\n    if (boundExpr) {\n        return processBinding(attr, boundExpr);\n    }\n\n    return [attr.name, quoteAttr(value)];\n};\n\nexport const getDataSource = (dataSetExpr: string): string => {\n    const parts = dataSetExpr.split('.');\n    if (parts[0] === 'Variables' || parts[0] === 'Widgets') {\n        return `${parts[0]}.${parts[1]}`;\n    }\n    if (parts[0] === 'App' && parts[1] === 'activePage' && parts[2]?.includes('Variables') && parts[3]) {\n        return `App.activePage.${parts[2]}.${parts[3]}`;\n    }\n};\n\nconst widgetChildAttrs = (() => {\n    const childAttrs = new Map();\n    const validChildAttrs = [\n        `required`\n    ];\n    return {\n        set: attrs => {\n            attrs.forEach((val, key) => {\n                validChildAttrs.includes(key) && (childAttrs.set(key, val));\n            });\n        },\n        get: attrs => {\n            const fltrAttrs = new Map();\n            childAttrs.forEach((val, key) => {\n                !attrs.get(key) && fltrAttrs.set(key, val);\n            });\n            return fltrAttrs;\n        },\n        clear: () => {\n            childAttrs.clear();\n        }\n    };\n})();\nexport const setChildAttrs = attrs => {\n    widgetChildAttrs.set(attrs);\n    return '';\n};\nexport const getChildAttrs = attrs => {\n    return getAttrMarkup(widgetChildAttrs.get(attrs));\n};\nexport const clearChildAttrs = () => {\n    widgetChildAttrs.clear();\n    return '';\n};\nexport const getFormMarkupAttr = attrs => {\n    if (attrs.get('datavalue.bind')) {\n        const onDataValueBinding = getDataSource(attrs.get('datavalue.bind'));\n        attrs.set('datavaluesource.bind', onDataValueBinding);\n    }\n    return getAttrMarkup(attrs);\n};\n\nconst getAttrMap = attrs => {\n    const attrMap = new Map<string, string>();\n    attrs.forEach(attr => {\n        let [attrName, attrValue] = processAttr(attr);\n        attrMap.set(attrName, attrValue);\n    });\n\n    if (attrMap.get('dataset.bind')) {\n        const dataSource = getDataSource(attrMap.get('dataset.bind'));\n        if (dataSource) {\n            attrMap.set('datasource.bind', dataSource);\n        }\n    }\n\n    return attrMap;\n};\n\nexport const getAttrMarkup = (attrs: Map<string, string>) => {\n    let attrMarkup = '';\n    attrs.forEach((v, k) => {\n        attrMarkup += ` ${k}`;\n        if (v) {\n            v = v.trim();\n            if (k === '[ngClass]' && v.startsWith('{')) {\n                v = v.replace(/\"/g, `'`);\n            }\n            if (k === 'show.bind' && attrs.get('deferload') === 'true') {\n                v = v + `\" *lazyLoad=\"${wrapWithApos(v)}`;\n            }\n            attrMarkup += `=\"${v}\"`;\n        }\n    });\n\n    return attrMarkup;\n};\n\nconst getRequiredProviders = (nodeDef: IBuildTaskDef, providers: Array<IProviderInfo>, nodeAttrs) => {\n    if (!nodeDef.requires) {\n        return [];\n    }\n\n    let requires = nodeDef.requires as any;\n\n    if (isString(requires)) {\n        requires = [requires];\n    }\n\n    if (!Array.isArray(requires)) {\n        return [];\n    }\n\n    return requires.map(require => {\n        // for dynamic table assigning parent provide map to the child,\n        for (let i = nodeAttrs.length - 1; i >= 0; i-- ) {\n            if (nodeAttrs[i].name === 'tableName') {\n                return nodeDef[nodeAttrs[i].value];\n            }\n        }\n\n        for (let i = providers.length - 1; i >= 0; i-- ) {\n            if (providers[i].nodeName === require) {\n                return providers[i].provide;\n            }\n        }\n    });\n};\n\nconst DIMENSION_PROPS = ['padding', 'borderwidth', 'margin'];\n\nconst SEPARATOR = ' ', UNSET = 'unset';\n\nconst setDimensionProp = (cssObj, key, nv) => {\n    let cssKey = key, val, top, right, bottom, left, suffix = '';\n\n    function setVal(prop, value) {\n        // if the value is UNSET, reset the existing value\n        if (value === UNSET) {\n            value = '';\n        }\n        cssObj[cssKey + prop + suffix] = value;\n    }\n\n    if (key === 'borderwidth') {\n        suffix =  'width';\n        cssKey = 'border';\n    }\n\n    val = nv;\n\n    if (val.indexOf(UNSET) !== -1) {\n        val = val.split(SEPARATOR);\n\n        top    = val[0];\n        right  = val[1] || val[0];\n        bottom = val[2] || val[0];\n        left   = val[3] || val[1] || val[0];\n\n        setVal('top',    top);\n        setVal('right',  right);\n        setVal('bottom', bottom);\n        setVal('left',   left);\n    } else {\n        if (key === 'borderwidth') {\n            cssKey = 'borderwidth';\n        }\n        cssObj[cssKey] = nv;\n    }\n};\n\nconst processDimensionAttributes = attrMap => {\n    const attrKeys = Array.from(attrMap.keys());\n    attrKeys.forEach((attrKey: any) => {\n        if (DIMENSION_PROPS.includes(attrKey)) {\n            const cssObj = {},\n                attrValue = attrMap.get(attrKey);\n            attrMap.delete(attrKey);\n            setDimensionProp(cssObj, attrKey, attrValue);\n            Object.keys(cssObj).forEach(key => {\n                if (cssObj[key]) {\n                    attrMap.set(key, cssObj[key]);\n                }\n            });\n        }\n    });\n};\n\n// replace <:svg:svg> -> <svg>, <:svg:*> -> <svg:*>\nconst getNodeName = name => name.replace(':svg:svg', 'svg').replace(':svg:', 'svg:');\n\nexport const processNode = (node, importCollector: (i: ImportDef[]) => void, providers?: Array<IProviderInfo>) => {\n    const nodeDef = registry.get(node.name);\n\n    let pre, post, template;\n\n    if (nodeDef) {\n        pre = nodeDef.pre || empty;\n        post = nodeDef.post || empty;\n        template = nodeDef.template || empty;\n    }\n\n    let markup = '';\n    let attrMap;\n    let requiredProviders;\n    let shared;\n\n    if (!providers) {\n        providers = [];\n    }\n\n    const isElementType = node instanceof Element;\n\n    if (isElementType) {\n        let provideInfo: IProviderInfo;\n\n        if (nodeDef) {\n            requiredProviders = getRequiredProviders(nodeDef, providers, node.attrs);\n            shared = new Map();\n            template(node, shared, ...requiredProviders);\n        }\n\n        attrMap = getAttrMap(node.attrs);\n        processDimensionAttributes(attrMap);\n\n        const nodeName = getNodeName(node.name);\n\n        if (nodeDef) {\n            markup = (<any>pre)(attrMap, shared, ...requiredProviders);\n            if (nodeDef.provide) {\n                provideInfo = {\n                    nodeName: node.name,\n                    provide: isFunction(nodeDef.provide) ? nodeDef.provide(attrMap, shared, ...requiredProviders) : nodeDef.provide\n                };\n                // For table node, assigning parent provide map to the child, as child requires some parent provide attrs.\n                if (node.name === 'wm-table') {\n                    const tableColNodeDefn = registry.get('wm-table-column');\n                    tableColNodeDefn[find(node.attrs, (el) => el.name === 'name').value + provideInfo.provide.get('table_reference')] = provideInfo.provide;\n                    registry.set('wm-table-column', tableColNodeDefn);\n                }\n                providers.push(provideInfo);\n            }\n        } else {\n            markup = `<${nodeName} ${getAttrMarkup(attrMap)}>`;\n        }\n\n        node.children.forEach((child: Node | any) => {\n            if(child.attrs) {\n                let showInDeviceAttr, accessRolesAttr, deferLoadAttr, showAttr;\n                child.attrs.forEach(function(attr){\n                    if (attr.name === 'showindevice') {\n                        showInDeviceAttr = attr;\n                        importCollector(WIDGET_IMPORTS.get(\"showindevice\"))\n                    } else if (attr.name === 'accessroles') {\n                        accessRolesAttr = attr;\n                        importCollector(WIDGET_IMPORTS.get('accessroles'));\n                    } else if (attr.name === 'deferload') {\n                        deferLoadAttr = attr;\n                        importCollector(WIDGET_IMPORTS.get('lazyload'));\n                    } else if (attr.name === 'show') {\n                        showAttr = attr;\n                    }\n                });\n                if((showInDeviceAttr && accessRolesAttr) || (showInDeviceAttr && deferLoadAttr) || (accessRolesAttr && deferLoadAttr)) {\n                    /* If more than one out of showindevice, accessroles and deferload exist for a widget, add ng-container wrappers to fix angular limitation\n                       of applying only one structural directive to an element.\n                    *  */\n                    const noSpan = ({} as ParseSourceSpan);\n                    const showInDeviceContainer:any = showInDeviceAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n                    const accessRolesContainer:any = accessRolesAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n                    const deferLoadContainer:any = deferLoadAttr ? new Element('ng-container', [], [], noSpan, noSpan, noSpan) : '';\n                    if (showInDeviceContainer) {\n                        showInDeviceContainer.attrs.push(showInDeviceAttr);\n                    }\n                    if (accessRolesContainer) {\n                        accessRolesContainer.attrs.push(accessRolesAttr);\n                    }\n                    if (deferLoadContainer) {\n                        deferLoadContainer.attrs.push(deferLoadAttr);\n                        if (showAttr) {\n                            deferLoadContainer.attrs.push(showAttr);\n                        }\n                    }\n                    remove(child.attrs, function (attr) {\n                        // @ts-ignore\n                        return attr.name === 'showindevice' || attr.name === 'accessroles' || attr.name === 'deferload'\n                    });\n                    let childContainer, parentContainer;\n                    if (showInDeviceAttr && accessRolesAttr) {\n                        childContainer = showInDeviceContainer;\n                        parentContainer = accessRolesContainer;\n                    } else if (showInDeviceAttr && deferLoadAttr) {\n                        childContainer = showInDeviceContainer;\n                        parentContainer = deferLoadContainer;\n                    } else if (accessRolesAttr && deferLoadAttr) {\n                        childContainer = deferLoadContainer;\n                        parentContainer = accessRolesContainer;\n                    }\n                    // wrap current node elements inside first ng-container(childContainer) and that container's elements inside another ng-container(parentContainer)\n                    childContainer.children = [child];\n                    parentContainer.children = [childContainer];\n                    // if all three directives exist, create another wrapper for third ng-container(grandParentContainer)\n                    if (showInDeviceAttr && accessRolesAttr && deferLoadAttr) {\n                        const grandParentContainer = deferLoadContainer;\n                        grandParentContainer.children = [parentContainer];\n                        child = grandParentContainer;\n                    } else {\n                        child = parentContainer;\n                    }\n\n                }\n            }\n            return markup += processNode(child, importCollector, providers);\n        });\n\n        if (nodeDef) {\n            if (provideInfo) {\n                providers.splice(providers.indexOf(provideInfo), 1);\n            }\n            markup += (<any>post)(attrMap, shared, ...requiredProviders);\n        } else {\n            if (node.endSourceSpan && !getHtmlTagDefinition(node.name).isVoid) {\n                markup += `</${nodeName}>`;\n            }\n        }\n    } else if (node instanceof Text) {\n        markup += node.value;\n    } else if (node instanceof Comment) {\n        if (!ignoreComments) {\n            markup += node.value;\n        }\n    }\n    importCollector(WIDGET_IMPORTS.get(node.name));\n    if (nodeDef && nodeDef.imports) {\n        let imports = [];\n        if (typeof nodeDef.imports === 'function') {\n            imports = nodeDef.imports(attrMap);\n        } else {\n            imports = nodeDef.imports;\n        }\n        imports.forEach( i => {\n            importCollector(WIDGET_IMPORTS.get(i));\n        });\n    }\n    return markup;\n};\n\nexport const transpile = (markup: string = '') => {\n    if (!markup.length) {\n        return;\n    }\n    let requiredWMComponents = [];\n    const nodes = htmlParser.parse(markup, '');\n\n    if (nodes.errors.length) {\n        return;\n    }\n\n    let output = '';\n    for (const node of nodes.rootNodes) {\n        output += processNode(node, (imports: ImportDef[]) => {\n            if (imports) {\n                requiredWMComponents = requiredWMComponents.concat(imports);\n            }\n        });\n    }\n    requiredWMComponents = uniqWith(requiredWMComponents, isEqual);\n    requiredWMComponents = sortBy(requiredWMComponents, ['from', 'name']);\n    return {\n        markup: output,\n        requiredWMComponents: requiredWMComponents\n    };\n};\n\nexport const register = (nodeName: string, nodeDefFn: () => IBuildTaskDef) => registry.set(nodeName, nodeDefFn());\n\nexport interface ImportDef {\n    from: string;\n    name: string;\n    as?: string;\n    forRoot?: boolean;\n    platformType?: string;\n}\n\nexport interface IBuildTaskDef {\n    requires?: string | Array<string>;\n    template?: (node: Element | Text | Comment, shared?: Map<any, any>, ...requires: Array<Map<any, any>>) => void;\n    pre: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => string;\n    provide?: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => Map<any, any>;\n    post?: (attrs: Map<string, string>, shared ?: Map<any, any>, ...requires: Array<Map<any, any>>) => string;\n    imports?:  string[] | ((attrs: Map<string, string>) => string[]);\n}\n\nexport const scopeComponentStyles = (componentName, componentType, styles = '') => {\n    componentName = componentName.toLowerCase();\n    const comments = {};\n    let commentCount = 0;\n    if (styles.startsWith('/*DISABLE_SCOPING*/')) {\n        return styles;\n    }\n    styles = styles.replace(CSS_REGEX.COMMENTS_FORMAT, comment => {\n        const key = `@comment${commentCount++}{`;\n        comments[key] = comment;\n        return key;\n    });\n    styles = styles.replace(CSS_REGEX.SELECTOR_FORMAT, (selector) => {\n        if (!CSS_REGEX.SELECTOR_EXCLUDE_FORMAT.test(selector)) {\n            const firstNonSpaceCharIndex = selector.match(/\\S/).index;\n            let prefixSpaceCharSeq = '';\n            if (firstNonSpaceCharIndex > 0) {\n                prefixSpaceCharSeq = selector.substring(0, firstNonSpaceCharIndex);\n                selector = selector.substring(firstNonSpaceCharIndex);\n            }\n            if (!selector.startsWith('/*') && selector.trim().length > 0) {\n                // splits the selector by commas and we iterate over the array and add page level scoping and join it.\n                selector = selector.split(',').map(s => {\n                    let prefix = ELE_PREFIX;\n                    s = s.trim();\n                    const spaceIndex = s.indexOf(' ');\n                    if (s.startsWith(ELE_PREFIX)) {\n                        if (spaceIndex > 0) {\n                            prefix = s.substring(0, spaceIndex);\n                            s = s.substring(spaceIndex + 1);\n                        } else {\n                            return s;\n                        }\n                    }\n\n                    if (componentType === 0 || componentType === 'PAGE') {\n                        s = `${prefix} app-page-${componentName} ${s}`;\n                    } else if (componentType === 1 || componentType === 'PREFAB') {\n                        s = `${prefix} app-prefab-${componentName} ${s}`;\n                    } else if (componentType === 2 || componentType === 'PARTIAL') {\n                        s = `${prefix} app-partial-${componentName} ${s}`;\n                    } else if(componentType === 3 || componentType === 'WIDGET'){\n                        s = `${prefix} app-custom-${componentName} ${s}`;\n                    }\n                    return s;\n                }).join(',');\n            }\n            selector = prefixSpaceCharSeq + selector;\n        }\n        return selector;\n    });\n    for (const key in comments) {\n        styles = styles.replace(key, comments[key]);\n    }\n    return styles;\n};\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}