@theseam/ui-common 0.3.8 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/theseam-ui-common-framework.umd.js +40 -13
- package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
- package/esm2015/framework/base-layout/base-layout.module.js +4 -1
- package/esm2015/framework/base-layout/directives/base-layout-side-bar-footer.directive.js +15 -0
- package/esm2015/framework/side-nav/side-nav.component.js +16 -6
- package/esm2015/framework/side-nav/side-nav.module.js +4 -2
- package/esm2015/framework/theseam-ui-common-framework.js +10 -9
- package/fesm2015/theseam-ui-common-framework.js +31 -6
- package/fesm2015/theseam-ui-common-framework.js.map +1 -1
- package/framework/base-layout/directives/base-layout-side-bar-footer.directive.d.ts +6 -0
- package/framework/side-nav/side-nav.component.d.ts +7 -2
- package/framework/theseam-ui-common-framework.d.ts +9 -8
- package/framework/theseam-ui-common-framework.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-framework.umd.js","sources":["../../../projects/ui-common/framework/base-layout/directives/base-layout-content-footer.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-content-header.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-content.directive.ts","../../../projects/ui-common/framework/base-layout/base-layout-tokens.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-nav-toggle.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-side-bar.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-top-bar.directive.ts","../../../projects/ui-common/framework/base-layout/base-layout.component.ts","../../../projects/ui-common/framework/base-layout/base-layout.module.ts","../../../projects/ui-common/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor-token.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets.service.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets.component.ts","../../../projects/ui-common/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.ts","../../../projects/ui-common/framework/dashboard/dashboard.component.ts","../../../projects/ui-common/framework/dashboard/dashboard.module.ts","../../../projects/ui-common/framework/side-nav/side-nav-utils.ts","../../../projects/ui-common/framework/side-nav/side-nav.service.ts","../../../projects/ui-common/framework/side-nav/side-nav.component.ts","../../../projects/ui-common/framework/side-nav/side-nav-item/side-nav-item.component.ts","../../../projects/ui-common/framework/side-nav/side-nav-toggle/side-nav-toggle.component.ts","../../../projects/ui-common/framework/side-nav/side-nav.module.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.ts","../../../projects/ui-common/framework/top-bar/top-bar-title/top-bar-title.component.ts","../../../projects/ui-common/framework/top-bar/top-bar-item.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu-btn-detail.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar.component.ts","../../../projects/ui-common/framework/top-bar/top-bar.module.ts","../../../projects/ui-common/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.ts","../../../projects/ui-common/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.ts","../../../projects/ui-common/framework/dynamic-router/resolvers/hierarchy-level.resolver.ts","../../../projects/ui-common/framework/dynamic-router/dynamic-router.module.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-input/schema-form-input.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-number/schema-form-number.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-select/schema-form-select.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.ts","../../../projects/ui-common/framework/schema-form/schema-form-framework.component.ts","../../../projects/ui-common/framework/schema-form/schema-form-framework.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-controls.module.ts","../../../projects/ui-common/framework/schema-form/schema-form.module.ts","../../../projects/ui-common/framework/theseam-ui-common-framework.ts"],"sourcesContent":["import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContentFooter]'\n})\nexport class BaseLayoutContentFooterDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContentHeader]'\n})\nexport class BaseLayoutContentHeaderDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContent]'\n})\nexport class BaseLayoutContentDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamBaseLayoutRef } from './base-layout-ref'\n\nexport const THESEAM_BASE_LAYOUT_REF = new InjectionToken<ITheSeamBaseLayoutRef>('seamBaseLayoutRef')\n","import { Directive, HostBinding, HostListener, Inject, Input, Optional } from '@angular/core'\n\nimport type { ITheSeamBaseLayoutRef } from '../base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from '../base-layout-tokens'\n\n/**\n * Can be used to toggle the expand state of the registered nav.\n */\n@Directive({\n selector: 'button[seamBaseLayoutNavToggle]',\n exportAs: 'seamBaseLayoutNavToggle'\n})\nexport class BaseLayoutNavToggleDirective {\n\n public baseLayout: ITheSeamBaseLayoutRef | undefined\n\n @HostBinding('attr.type')\n get _attrType() { return this.type }\n\n @Input() type: string | undefined | null = 'button'\n\n @HostBinding('attr.aria-label')\n get _attrAriaLabel() { return this.ariaLabel || null }\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string | undefined | null = 'Navigation toggle'\n\n @HostListener('click')\n _onClick() {\n if (this.baseLayout && this.baseLayout.registeredNav) {\n this.baseLayout.registeredNav.toggle()\n }\n }\n\n constructor(\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) _baseLayout: ITheSeamBaseLayoutRef\n ) {\n this.baseLayout = _baseLayout\n }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutSideBar]'\n})\nexport class BaseLayoutSideBarDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutTopBar]'\n})\nexport class BaseLayoutTopBarDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { TemplatePortal } from '@angular/cdk/portal'\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n forwardRef,\n Input,\n isDevMode,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, from, isObservable, Observable } from 'rxjs'\n\nimport { faAngleDoubleLeft, faAngleDoubleRight } from '@fortawesome/free-solid-svg-icons'\n\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { BaseLayoutAction, IBaseLayoutActionButton } from './base-layout-action'\nimport { ITheSeamBaseLayoutNav } from './base-layout-nav'\nimport { ITheSeamBaseLayoutRef } from './base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from './base-layout-tokens'\nimport { BaseLayoutContentFooterDirective } from './directives/base-layout-content-footer.directive'\nimport { BaseLayoutContentHeaderDirective } from './directives/base-layout-content-header.directive'\nimport { BaseLayoutContentDirective } from './directives/base-layout-content.directive'\nimport { BaseLayoutSideBarDirective } from './directives/base-layout-side-bar.directive'\nimport { BaseLayoutTopBarDirective } from './directives/base-layout-top-bar.directive'\n\nexport const THE_SEAM_BASE_LAYOUT: any = {\n provide: THESEAM_BASE_LAYOUT_REF,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => TheSeamBaseLayoutComponent),\n multi: false,\n}\n\n@Component({\n selector: 'seam-base-layout',\n templateUrl: './base-layout.component.html',\n styleUrls: ['./base-layout.component.scss'],\n providers: [ THE_SEAM_BASE_LAYOUT ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TheSeamBaseLayoutComponent implements OnInit, ITheSeamBaseLayoutRef {\n\n faAngleDoubleRight = faAngleDoubleRight\n faAngleDoubleLeft = faAngleDoubleLeft\n\n @Input() overlayNav = false\n\n // TODO: Consider making the template queries not be dynamic. I can see this\n // potentially causing confusion or issues with potential layouts built with\n // this component.\n @ContentChild(BaseLayoutTopBarDirective, { static: true, read: TemplateRef }) _topBarTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutSideBarDirective, { static: true, read: TemplateRef }) _sideBarTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentDirective, { static: true, read: TemplateRef }) _contentTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentHeaderDirective, { static: true, read: TemplateRef }) _contentHeaderTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentFooterDirective, { static: true, read: TemplateRef }) _contentFooterTpl?: TemplateRef<any> | null\n\n _topBarPortal?: TemplatePortal\n _sideBarPortal?: TemplatePortal\n _contentPortal?: TemplatePortal\n _contentHeaderPortal?: TemplatePortal\n _contentFooterPortal?: TemplatePortal\n\n private _hasSideBar = new BehaviorSubject<boolean>(false)\n\n public hasSideBar$: Observable<boolean>\n public isMobile$: Observable<boolean>\n\n get registeredNav() { return this._registeredNav.value }\n private _registeredNav = new BehaviorSubject<ITheSeamBaseLayoutNav | undefined>(undefined)\n public registeredNav$ = this._registeredNav.asObservable()\n\n get registeredActions() { return this._registeredActions.value }\n private _registeredActions = new BehaviorSubject<BaseLayoutAction[]>([])\n public registeredActions$: Observable<BaseLayoutAction[]>\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _layout: TheSeamLayoutService\n ) {\n this.registeredActions$ = this._registeredActions.asObservable()\n\n this.isMobile$ = this._layout.isMobile$\n this.hasSideBar$ = this._hasSideBar.asObservable()\n }\n\n ngOnInit() {\n if (this._topBarTpl) {\n this._topBarPortal = new TemplatePortal(this._topBarTpl, this._viewContainerRef)\n }\n\n if (this._sideBarTpl) {\n this._sideBarPortal = new TemplatePortal(this._sideBarTpl, this._viewContainerRef)\n this._hasSideBar.next(true)\n }\n\n if (this._contentTpl) {\n this._contentPortal = new TemplatePortal(this._contentTpl, this._viewContainerRef)\n }\n\n if (this._contentHeaderTpl) {\n this._contentHeaderPortal = new TemplatePortal(this._contentHeaderTpl, this._viewContainerRef)\n }\n\n if (this._contentFooterTpl) {\n this._contentFooterPortal = new TemplatePortal(this._contentFooterTpl, this._viewContainerRef)\n }\n }\n\n public registerNav(nav: ITheSeamBaseLayoutNav): void {\n // TODO: Allow multiple registered navs\n // if (this.registeredNav) {\n // throw new Error('[TheSeamBaseLayoutComponent] A nav is already registered.')\n // }\n // console.log('register nav', nav)\n this._registeredNav.next(nav)\n }\n\n public unregisterNav(nav: ITheSeamBaseLayoutNav): void {\n if (this.registeredNav === nav) {\n this._registeredNav.next(undefined)\n }\n }\n\n public registerAction(action: BaseLayoutAction): void {\n const actions = this._registeredActions.value\n if (actions.findIndex(a => a.name === action.name) !== -1) {\n if (isDevMode()) {\n console.warn(\n `[TheSeamBaseLayoutComponent] registerAction(): Action ${action.name} not ` +\n 'registered, because another action by that name is already registered.'\n )\n }\n return\n }\n actions.push(action)\n }\n\n public unregisterAction(action: BaseLayoutAction | string): void {\n const actionName = typeof action === 'string' ? action : action.name\n const actions = this._registeredActions.value\n this._registeredActions.next(actions.filter(f => f.name !== actionName))\n }\n\n public isActionRegistered(actionName: string): boolean {\n const actions = this._registeredActions.value\n const action = actions.find(f => f.name === actionName)\n return !!action\n }\n\n _handleButtonAction(action: IBaseLayoutActionButton): void {\n this._execButtonAction(action).subscribe()\n }\n\n _execButtonAction(action: IBaseLayoutActionButton): Observable<void> {\n const fnRes = action.exec()\n return isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes))\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar'\n\nimport { TheSeamBaseLayoutComponent } from './base-layout.component'\nimport { BaseLayoutContentFooterDirective } from './directives/base-layout-content-footer.directive'\nimport { BaseLayoutContentHeaderDirective } from './directives/base-layout-content-header.directive'\nimport { BaseLayoutContentDirective } from './directives/base-layout-content.directive'\nimport { BaseLayoutNavToggleDirective } from './directives/base-layout-nav-toggle.directive'\nimport { BaseLayoutSideBarDirective } from './directives/base-layout-side-bar.directive'\nimport { BaseLayoutTopBarDirective } from './directives/base-layout-top-bar.directive'\n\n\n\n@NgModule({\n declarations: [\n TheSeamBaseLayoutComponent,\n BaseLayoutContentDirective,\n BaseLayoutSideBarDirective,\n BaseLayoutTopBarDirective,\n BaseLayoutNavToggleDirective,\n BaseLayoutContentHeaderDirective,\n BaseLayoutContentFooterDirective\n ],\n imports: [\n CommonModule,\n PortalModule,\n TheSeamScrollbarModule,\n TheSeamIconModule,\n TheSeamButtonsModule\n ],\n exports: [\n TheSeamBaseLayoutComponent,\n BaseLayoutContentDirective,\n BaseLayoutSideBarDirective,\n BaseLayoutTopBarDirective,\n BaseLayoutNavToggleDirective,\n BaseLayoutContentHeaderDirective,\n BaseLayoutContentFooterDirective\n ]\n})\nexport class TheSeamBaseLayoutModule { }\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core'\n\nimport type { IDashboardWidgetsItemDef } from '../dashboard-widgets/dashboard-widgets-item'\n\n@Component({\n selector: 'seam-dashboard-widget-container',\n templateUrl: './dashboard-widget-container.component.html',\n styleUrls: ['./dashboard-widget-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardWidgetContainerComponent implements OnInit {\n\n @Input() def: IDashboardWidgetsItemDef | undefined | null\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n constructor() { }\n\n ngOnInit() { }\n\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamDashboardWidgetsPreferencesAccessor } from './dashboard-widgets-preferences-accessor'\n\nexport const THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR = new InjectionToken<ITheSeamDashboardWidgetsPreferencesAccessor>(\n 'ITheSeamDashboardWidgetsPreferencesAccessor'\n)\n","import { Inject, Injectable, isDevMode, Optional } from '@angular/core'\nimport { Observable, of, Subject } from 'rxjs'\nimport { auditTime, map, mapTo, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport {\n IDashboardWidgetItemLayout,\n IDashboardWidgetItemLayoutPreference,\n IDashboardWidgetsItem,\n IDashboardWidgetsItemDef,\n IDashboardWidgetsItemSerialized,\n IDashboardWidgetsPreferences\n} from './dashboard-widgets-item'\nimport type { ITheSeamDashboardWidgetsPreferencesAccessor } from './dashboard-widgets-preferences-accessor'\nimport { THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR } from './dashboard-widgets-preferences-accessor-token'\n\nexport interface IDashboardWidgetsPreferencesMapRecord {\n observable: Observable<IDashboardWidgetsPreferences>\n refresh: Subject<void>\n}\n\n// TODO: This needs a unit test to make sure it will not cause a race condition\n// if update is called faster than the previous can respond.\n//\n// The ideal approach I am thinking, without steping through the process too\n// thoroughly is to hold the new data emit until all pending updates are done.\n// Any pending updates other than the most recently requested will be ignored\n// and just wait on the most recent, and if already running it should be\n// canceled if possible. Also, incase something happens that causes the new data\n// emissions to get held up too long, there could be a threshold time that the\n// new data can be held up.\n\n\n/**\n * Manages anything dealing with retrieving and updating dashboard widget\n * preference data from the provided accessor.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardWidgetsPreferencesService {\n\n private readonly _tablePrefsMap = new Map<string, IDashboardWidgetsPreferencesMapRecord>()\n // private _pending = false\n\n // public get pending() { return this._pending }\n\n constructor(\n @Optional() @Inject(THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR) private _prefsAccessor?: ITheSeamDashboardWidgetsPreferencesAccessor\n ) { }\n\n public preferences(preferenceKey: string): Observable<IDashboardWidgetsPreferences> {\n let prefs = this._tablePrefsMap.get(preferenceKey)\n if (!prefs) {\n const refreshSubject = new Subject<void>()\n prefs = {\n observable: this._createObservable(refreshSubject, preferenceKey),\n refresh: refreshSubject\n }\n this._tablePrefsMap.set(preferenceKey, prefs)\n }\n return prefs.observable\n }\n\n private _createObservable(refreshSubject: Subject<void>, prefKey: string): Observable<IDashboardWidgetsPreferences> {\n if (!this._prefsAccessor) {\n return of({})\n }\n\n const accessor = (key: string): Observable<string> =>\n this._prefsAccessor ? this._prefsAccessor.get(key) : of('{}')\n\n return refreshSubject.pipe(\n startWith({}),\n // tap(() => console.log('Start requesting: ', prefKey)),\n switchMap(() => accessor(prefKey).pipe(\n map(v => {\n if (!v) {\n return null\n }\n\n // TODO: Add a schema validator and migration tool to avoid parsing issues.\n try {\n return JSON.parse(v) as IDashboardWidgetsPreferences\n } catch (error) {\n if (isDevMode()) {\n console.error(error)\n }\n return null\n }\n }),\n map(v => !!v ? v : {}),\n // tap(v => console.log('preferences$', v))\n // tap(v => this._pending = false)\n )),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n public refresh(preferenceKey: string): Observable<void> {\n const prefs = this._tablePrefsMap.get(preferenceKey)\n if (prefs) {\n // this._pending = true\n // prefs.refresh.next()\n return prefs.observable.pipe(\n // tap(() => prefs.refresh.next()),\n tap(() => setTimeout(() => { prefs.refresh.next() }, 0)),\n mapTo(undefined),\n take(1),\n // tap(() => console.log('Done refreshing: ', preferenceKey)),\n )\n }\n\n return of(undefined)\n }\n\n public selectLayout(preferenceKey: string, layoutName: string): Observable<IDashboardWidgetItemLayoutPreference | undefined> {\n return this.preferences(preferenceKey).pipe(\n map(prefs => (prefs.layouts || []).find(l => l.name === layoutName))\n )\n }\n\n // TODO: Improve this updating to not be more generic, so we can quickly add\n // edits for different preference schema's.\n //\n // TODO: Decide if a send queue/merging of pending queue is needed to avoid\n // out of order updates. This shouldn't be an issue, with how fast preferences\n // will most likely be changing, but it could happen in situations, such as\n // network issues.\n public updateLayout(preferenceKey: string, layout: IDashboardWidgetItemLayout): Observable<void> {\n if (!this._prefsAccessor) {\n return of(undefined)\n }\n\n if (!hasProperty(layout, 'name')) {\n throw Error(`Unable to save layout preference. 'name' is required for a layout preference.`)\n }\n\n const _layout = this.toSerializeableLayout(layout)\n\n // this._pending = true\n return this.preferences(preferenceKey).pipe(\n map(prefs => {\n // Making the preferences immutable may not be necessary, but for now\n // this obj->str->obj will work as a naive clone.\n const layouts = JSON.parse(JSON.stringify(prefs.layouts || []))\n const _layoutPref = layouts.find((c: any) => c.name === _layout.name)\n // console.log('has', _layoutPref)\n if (_layoutPref) {\n if (hasProperty(_layout, 'name')) { _layoutPref.name = _layout.name }\n if (hasProperty(_layout, 'label')) { _layoutPref.label = _layout.label }\n if (hasProperty(_layout, 'items')) { _layoutPref.items = _layout.items }\n } else {\n layouts.push({ ..._layout })\n }\n const newPrefs: IDashboardWidgetsPreferences = { ...prefs, layouts }\n return newPrefs\n }),\n // tap(v => console.log('newPrefs', v)),\n take(1),\n switchMap(newPrefs => this._prefsAccessor\n ? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))\n : of(newPrefs)\n ),\n switchMap(() => this.refresh(preferenceKey).pipe(mapTo(undefined)))\n )\n // .subscribe()\n }\n\n public toSerializeableLayout(layout: IDashboardWidgetItemLayout): IDashboardWidgetItemLayoutPreference {\n const serialized: IDashboardWidgetItemLayoutPreference = {\n name: layout.name,\n label: layout.label,\n items: this.toSerializeableItems(layout.items as any) || []\n }\n return serialized\n }\n\n // public toDeserializedLayout(layout: IDashboardWidgetItemLayoutSerialized): IDashboardWidgetItemLayoutDef {\n // // For now there is nothing to do. Eventually this should have at least\n // // validation on the deserialized object.\n // return layout\n // }\n\n /**\n * Returns the serializable widget items as objects that can be serialized to\n * a JSON string for storage.\n */\n public toSerializeableItems(widgets: IDashboardWidgetsItem[]): IDashboardWidgetsItemSerialized[] {\n const serialized: IDashboardWidgetsItemSerialized[] = []\n for (const w of widgets) {\n // if (!w.__itemDef.component || typeof w.__itemDef.component !== 'string') {\n // console.warn(`[DashboardWidgetsService] Widget item def must have a string 'component' property to be serialized.`, w)\n // continue\n // }\n // serialized.push({\n // widgetId: w.widgetId,\n // col: w.col,\n // order: w.order,\n // component: w.__itemDef.component\n // })\n\n // TODO: Remove this, it is only here for initial dev debugging.\n serialized.push({\n widgetId: w.widgetId,\n col: w.col,\n order: w.order,\n // component: w.__itemDef.component as string\n })\n }\n return serialized\n }\n\n // public toDeserializedItems(widgets: IDashboardWidgetsItemSerialized[]): IDashboardWidgetsItemDef[] {\n // const items: IDashboardWidgetsItemDef[] = []\n // for (const w of widgets) {\n // items.push({\n // widgetId: w.widgetId,\n // col: w.col,\n // order: w.order,\n // // component: w.component\n // })\n // }\n // return items\n // }\n\n}\n","import { ComponentPortal } from '@angular/cdk/portal'\nimport { Injectable, isDevMode, ViewContainerRef } from '@angular/core'\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs'\nimport { auditTime, map, mapTo, shareReplay, switchMap, take, tap } from 'rxjs/operators'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport {\n IDashboardWidgetItemLayoutPreference,\n IDashboardWidgetsColumnRecord,\n IDashboardWidgetsItem,\n IDashboardWidgetsItemDef\n} from './dashboard-widgets-item'\nimport { DashboardWidgetsPreferencesService } from './dashboard-widgets-preferences.service'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardWidgetsService {\n\n public readonly preferenceKey: string = 'datatable-widgets'\n\n public readonly defaultNumColumns: number = 3\n\n /** Used for operations, such as 'addWidget', if the column is not specified. */\n public readonly defaultColumn: number = 0\n\n get widgets(): IDashboardWidgetsItemDef[] { return this._widgets.value }\n set widgets(value: IDashboardWidgetsItemDef[]) { this._widgets.next(value) }\n private _widgets = new BehaviorSubject<IDashboardWidgetsItemDef[]>([])\n\n get numColumns(): number { return this._numColumns.value }\n set numColumns(value: number) {\n if (value !== this._numColumns.value) {\n this._numColumns.next(value)\n }\n }\n private _numColumns = new BehaviorSubject<number>(this.defaultNumColumns)\n\n public readonly numColumns$: Observable<number>\n public readonly widgetItems$: Observable<IDashboardWidgetsItem[]>\n public readonly widgetColumns$: Observable<IDashboardWidgetsColumnRecord[]>\n\n private readonly _viewContainerRefSubject = new BehaviorSubject<ViewContainerRef | undefined>(undefined)\n\n constructor(\n private readonly _dynamicComponentLoaderModule: TheSeamDynamicComponentLoader,\n private readonly _preferences: DashboardWidgetsPreferencesService\n ) {\n this.numColumns$ = this._numColumns.asObservable()\n\n // Widget items without preferences\n const _widgetItems$ = combineLatest([ this._widgets, this._viewContainerRefSubject ])\n .pipe(switchMap(([ defs, vcr ]) => this.createWidgetItems(defs, vcr)))\n\n // Widget items with preferences\n this.widgetItems$ = combineLatest([ _widgetItems$, this.numColumns$ ])\n .pipe(\n // Wait until the current tick is done, incase both the widgets and\n // number of columns are set durring the same tick. Without the audit,\n // this would get called twice when the component is initialized with\n // both inputs set one after the other individually.\n auditTime(0),\n switchMap(([ items, numColumns ]) =>\n this._preferences.selectLayout(this.preferenceKey, this._layoutName(numColumns)).pipe(\n map(layout => layout ? this.withLayoutPreferences(items, layout) : items)\n )\n ),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.widgetColumns$ = this.widgetItems$\n .pipe(\n map(items => this.toColumnRecords(items)),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n private _layoutName(numColumns: number): string {\n return `columns-${numColumns}`\n }\n\n public setViewContainerRef(vcr: ViewContainerRef | undefined) {\n this._viewContainerRefSubject.next(vcr)\n }\n\n public createWidgetItems(defs: IDashboardWidgetsItemDef[], vcr?: ViewContainerRef): Observable<IDashboardWidgetsItem[]> {\n const _createObservables = (defs || []).map(d => this.createWidgetItem(d, vcr))\n const items$ = _createObservables.length > 0 ? combineLatest(_createObservables) : of([])\n return items$.pipe(\n map(items => items.filter(notNullOrUndefined)),\n tap(items => {\n if (isDevMode()) {\n const ids: string[] = items.map(v => v.widgetId)\n if ((new Set(ids)).size !== ids.length) {\n console.warn(`[DashboardWidgetsService] Duplicate widget's with the same 'widgetId' found.`)\n }\n }\n })\n )\n }\n\n public createWidgetItem(def: IDashboardWidgetsItemDef, vcr?: ViewContainerRef): Observable<IDashboardWidgetsItem | undefined> {\n if (!def.widgetId || typeof def.widgetId !== 'string' || def.widgetId.length < 1) {\n if (isDevMode()) {\n console.warn(`[DashboardWidgetsService] Widget ignored. All widgets must have a 'widgetId'.`, def)\n }\n return of(undefined)\n }\n\n return this.createWidgetPortal(def, vcr).pipe(\n map(portal => ({\n ...def,\n col: def.col || this.defaultColumn,\n order: def.order || 0,\n portal,\n __itemDef: def\n }))\n )\n }\n\n public createWidgetPortal(def: IDashboardWidgetsItemDef, vcr?: ViewContainerRef): Observable<ComponentPortal<any>> {\n if (typeof def.component === 'string') {\n return this._dynamicComponentLoaderModule\n .getComponentFactory(def.component)\n .pipe(\n map(componentFactory => {\n return new ComponentPortal(\n componentFactory.componentType,\n vcr,\n undefined,\n (<any /* ComponentFactoryBoundToModule */>componentFactory).ngModule.componentFactoryResolver\n )\n }),\n take(1)\n )\n }\n\n return def.componentFactoryResolver\n ? of(new ComponentPortal(def.component, vcr, undefined, def.componentFactoryResolver))\n : of(new ComponentPortal(def.component, vcr))\n }\n\n public updateOrder(): Observable<void> {\n return this.widgetColumns$\n .pipe(\n take(1),\n tap(columns => columns.forEach(col => {\n let i = 0\n col.items.forEach(itm => itm.order = i++)\n })),\n mapTo(undefined)\n )\n }\n\n public toColumnRecords(items: IDashboardWidgetsItem[]): IDashboardWidgetsColumnRecord[] {\n let columns: IDashboardWidgetsColumnRecord[] = []\n\n for (let i = 0; i < this.numColumns; i++) {\n columns.push({ column: i, items: [] })\n }\n\n const colNotFound: IDashboardWidgetsItem[] = []\n\n // Distribute items into columns\n for (const item of items) {\n const col: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === item.col)\n if (!col) {\n // columns.push({ column: item.col, items: [ item ] })\n // if (item.col < 0) {\n // const col0: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === 0)\n // if (col0) {\n // col0.items.push(item)\n // }\n // } else if (item.col > this.numColumns - 1) {\n // const colMax: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === this.numColumns - 1)\n // if (colMax) {\n // colMax.items.push(item)\n // }\n // }\n colNotFound.push(item)\n } else {\n col.items.push(item)\n }\n }\n\n for (let i = 0; i < colNotFound.length; i++) {\n const item = colNotFound[i]\n\n const col: IDashboardWidgetsColumnRecord | undefined = columns\n .find(c => c.column === i % this.numColumns)\n\n if (col) {\n col.items.push(item)\n }\n }\n\n // Sort columns\n columns = columns.sort((a, b) => a.column - b.column)\n\n // Sort columns items\n columns.forEach(col => col.items.sort((a, b) => a.order - b.order))\n\n return columns\n }\n\n public withLayoutPreferences(items: IDashboardWidgetsItem[], layout: IDashboardWidgetItemLayoutPreference): IDashboardWidgetsItem[] {\n const _items: IDashboardWidgetsItem[] = []\n\n for (const item of items) {\n const itemPref = layout.items.find(x => x.widgetId === item.widgetId)\n _items.push({\n ...item,\n ...(itemPref || {})\n })\n }\n\n return _items\n }\n\n public savePreferences(): Observable<void> {\n // Right now the items are moved between the column record arrays, but the\n // 'col' prop is not updated, so it is mapped to corrected items here from\n // the column records.\n const items$ = this.widgetColumns$.pipe(\n map(columns => ([] as IDashboardWidgetsItem[])\n .concat(...(columns.map(c => c.items.map(itm => ({ ...itm, col: c.column })))))\n ),\n )\n\n return combineLatest([ items$, this.numColumns$ ]).pipe(\n auditTime(0),\n take(1),\n switchMap(([ items, numColumns ]) => {\n return this._preferences.updateLayout(this.preferenceKey, {\n name: this._layoutName(numColumns),\n items\n })\n }),\n mapTo(undefined)\n )\n }\n\n}\n","import { BooleanInput, coerceBooleanProperty, coerceNumberProperty, NumberInput } from '@angular/cdk/coercion'\nimport { CdkDrag, CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop'\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { auditTime, debounceTime, distinctUntilChanged, finalize, map, shareReplay, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\nimport { faLock, faUnlock } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { IElementResizedEvent } from '@theseam/ui-common/shared'\nimport { THESEAM_WIDGET_ACCESSOR } from '@theseam/ui-common/widget'\n\nimport type { ITheSeamBaseLayoutRef } from '../../base-layout/base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from '../../base-layout/base-layout-tokens'\nimport { DashboardWidgetContainerComponent } from '../dashboard-widget-container/dashboard-widget-container.component'\n\nimport type { IDashboardWidgetsColumnRecord, IDashboardWidgetsItem, IDashboardWidgetsItemDef } from './dashboard-widgets-item'\nimport { DashboardWidgetsService } from './dashboard-widgets.service'\n\n@Component({\n selector: 'seam-dashboard-widgets',\n templateUrl: './dashboard-widgets.component.html',\n styleUrls: ['./dashboard-widgets.component.scss'],\n providers: [\n {\n provide: THESEAM_WIDGET_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DashboardWidgetsComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class DashboardWidgetsComponent implements OnInit, OnDestroy, AfterViewInit {\n static ngAcceptInputType_gapSize: NumberInput\n static ngAcceptInputType_numColumns: NumberInput\n static ngAcceptInputType_widgetsDraggable: BooleanInput\n static ngAcceptInputType_dragToggleVisible: BooleanInput\n static ngAcceptInputType_widgets: IDashboardWidgetsItemDef[] | undefined | null\n\n faLock = faLock\n faUnlock = faUnlock\n\n public readonly _actionWidgetDragToggleName = 'widget-drag-toggle'\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get gapSize(): number { return this._gapSize.value }\n set gapSize(val: number) {\n this._gapSize.next(coerceNumberProperty(val))\n }\n private readonly _gapSize = new BehaviorSubject<number>(30)\n\n @Input() @InputBoolean() widgetsDraggable: boolean = false\n\n @Input()\n get dragToggleVisible(): boolean { return this._dragToggleVisible.value }\n set dragToggleVisible(val: boolean) {\n this._dragToggleVisible.next(coerceBooleanProperty(val))\n }\n private _dragToggleVisible = new BehaviorSubject<boolean>(true)\n\n @Input()\n get numColumns(): number { return this._dashboardWidgets.numColumns }\n set numColumns(val: number) {\n this._dashboardWidgets.numColumns = coerceNumberProperty(val)\n }\n\n @Input()\n set widgets(value: IDashboardWidgetsItemDef[]) { this._dashboardWidgets.widgets = value || [] }\n get widgets(): IDashboardWidgetsItemDef[] { return this._dashboardWidgets.widgets }\n\n public widgetItems$: Observable<IDashboardWidgetsItem[]>\n public widgetColumns$: Observable<IDashboardWidgetsColumnRecord[]>\n public containers$: Observable<DashboardWidgetContainerComponent[]>\n\n readonly _gapStyleSize$: Observable<number>\n\n @ViewChildren(DashboardWidgetContainerComponent) containers?: QueryList<DashboardWidgetContainerComponent>\n @ViewChildren(CdkDrag) cdkDragDirectives?: QueryList<CdkDrag>\n\n @ViewChild('toggleBtnTpl', { static: true }) _toggleBtnTpl?: TemplateRef<any>\n\n private _containers = new BehaviorSubject<DashboardWidgetContainerComponent[]>([])\n private _layoutChange = new Subject<void>()\n\n @Output() widgetsChange = new EventEmitter<IDashboardWidgetsItem[]>()\n\n private readonly _widthChange = new Subject<number>()\n\n constructor(\n private _dashboardWidgets: DashboardWidgetsService,\n private _viewContainerRef: ViewContainerRef,\n private _cdr: ChangeDetectorRef,\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) private _baseLayoutRef?: ITheSeamBaseLayoutRef\n ) {\n this.containers$ = this._containers.asObservable()\n\n this._gapStyleSize$ = this._gapSize.pipe(\n auditTime(0),\n map(size => size / 2),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this._widthChange.pipe(\n debounceTime(30),\n tap(width => {\n if (width > 1300) {\n this.numColumns = 3\n } else if (width > 800) {\n this.numColumns = 2\n } else {\n this.numColumns = 1\n }\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n\n this.widgetItems$ = this._dashboardWidgets.widgetItems$\n this.widgetColumns$ = this._dashboardWidgets.widgetColumns$\n }\n\n ngOnInit() {\n // this._dashboardWidgets.setViewContainerRef(this._viewContainerRef)\n\n this._layoutChange.pipe(\n switchMap(() => this.widgetItems$.pipe(\n take(1),\n tap(widgetItems => this.widgetsChange.emit(widgetItems)),\n // map(widgetItems => this._dashboardWidgets.toSerializeableItems(widgetItems)),\n // tap(v => console.log('serializable', v)),\n switchMap(() => this._dashboardWidgets.savePreferences())\n )),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n }\n\n ngOnDestroy() {\n this._unregisterToggleAction()\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() {\n if (this._baseLayoutRef) {\n this._dragToggleVisible.pipe(\n distinctUntilChanged(),\n tap(visible => {\n const isRegistered = this._isActionToggleActionRegistered()\n if (visible && !isRegistered) {\n this._registerToggleAction()\n } else if (!visible && isRegistered) {\n this._unregisterToggleAction()\n }\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n }\n\n this.containers?.changes.pipe(\n startWith(undefined),\n map(() => this.containers?.toArray() || []),\n takeUntil(this._ngUnsubscribe),\n finalize(() => this._containers.next([]))\n ).subscribe(v => this._containers.next(v))\n }\n\n private _registerToggleAction() {\n if (this._baseLayoutRef) {\n // This should probably use a component dynamically created from the\n // config and return a ref to it, instead of using a template.\n if (this._toggleBtnTpl) {\n this._baseLayoutRef.registerAction({\n // type: 'button',\n type: 'template',\n name: this._actionWidgetDragToggleName,\n label: 'Toggle Widget Dragging',\n // exec: () => {\n // console.log('toggle')\n // },\n template: this._toggleBtnTpl\n })\n }\n }\n }\n\n private _unregisterToggleAction() {\n if (this._baseLayoutRef) {\n this._baseLayoutRef.unregisterAction(this._actionWidgetDragToggleName)\n }\n }\n\n private _isActionToggleActionRegistered() {\n if (!this._baseLayoutRef) {\n return false\n }\n return this._baseLayoutRef.isActionRegistered(this._actionWidgetDragToggleName)\n }\n\n drop(event: CdkDragDrop<string[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex)\n this._dashboardWidgets.updateOrder().subscribe(() => this._layoutChange.next())\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n )\n this._dashboardWidgets.updateOrder().subscribe(() => this._layoutChange.next())\n }\n }\n\n _containerTrackByFn(index: number, item: IDashboardWidgetsItem) {\n return item.widgetId\n }\n\n _columnsTrackByFn(index: number, record: IDashboardWidgetsColumnRecord) {\n return record.column\n }\n\n toggleDragging() {\n this.widgetsDraggable = !this.widgetsDraggable\n this._cdr.detectChanges()\n }\n\n _resized(event: IElementResizedEvent) {\n this._widthChange.next(event.size.width)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport type { IDashboardWidgetsItem } from '../dashboard-widgets/dashboard-widgets-item'\nimport { DashboardWidgetsComponent } from '../dashboard-widgets/dashboard-widgets.component'\n\n@Component({\n selector: 'seam-dashboard-widget-template-container',\n templateUrl: './dashboard-widget-template-container.component.html',\n styleUrls: ['./dashboard-widget-template-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardWidgetTemplateContainerComponent implements OnInit {\n\n @Input() item: IDashboardWidgetsItem | undefined | null\n\n public template$: Observable<TemplateRef<any> | undefined>\n\n constructor(\n private _dashboardWidgetsComponent: DashboardWidgetsComponent\n ) {\n this.template$ = this._dashboardWidgetsComponent.containers$.pipe(\n map(containers => containers.find((c: any) => c.def.widgetId === this.item?.widgetId)),\n map(container => container && container.templateRef)\n )\n }\n\n ngOnInit() { }\n\n}\n","import { BasePortalOutlet, CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal'\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewContainerRef\n} from '@angular/core'\n\n/**\n * Mostly copied from\n * `https://github.com/angular/components/blob/master/src/cdk/portal/portal-directives.ts`\n * until I can figure out how to hold off removing the DOM nodes with the\n * cdkPortalOutlet. When we update to Angular 9 I may be able to do this better\n * with the new DomPortal.\n *\n * Directive version of a PortalOutlet. Because the directive *is* a\n * PortalOutlet, portals can be directly attached to it, enabling declarative\n * use.\n *\n * Usage: `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[seamDashboardWidgetPortalOutlet]',\n exportAs: 'seamDashboardWidgetPortalOutlet',\n inputs: ['portal: seamDashboardWidgetPortalOutlet']\n})\nexport class DashboardWidgetPortalOutletDirective extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef?: CdkPortalOutletAttachedRef\n\n constructor(\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _elementRef: ElementRef\n ) {\n super()\n }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal\n }\n\n set portal(portal: Portal<any> | null) {\n // console.log('[DashboardWidgetPortalOutletDirective] set portal', portal, this.hasAttached())\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return\n }\n\n if (this.hasAttached()) {\n super.detach()\n }\n\n if (portal) {\n super.attach(portal)\n }\n\n this._attachedPortal = portal\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>()\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef | undefined {\n return this._attachedRef\n }\n\n ngOnInit() {\n this._isInitialized = true\n }\n\n ngOnDestroy() {\n // console.log('[DashboardWidgetPortalOutletDirective] ngOnDestroy')\n\n // TODO: Figure out the right way to call dispose without messing up\n // animation. This setTimeout way assumes the transition is 500ms, but that\n // may not always be the case and isn't guaranteed to match the animation ms\n // duration, since setTimeout isn't really meant for accurate timing. It\n // also makes debugging animations difficult, because you can pause an\n // animation, but the timeout will still run.\n setTimeout(() => {\n super.dispose()\n this._attachedPortal = null\n this._attachedRef = null\n }, 500)\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this)\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef\n\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver\n const componentFactory = resolver.resolveComponentFactory(portal.component)\n const ref = viewContainerRef.createComponent(\n componentFactory, viewContainerRef.length,\n portal.injector || viewContainerRef.injector)\n\n super.setDisposeFn(() => ref.destroy())\n this._attachedPortal = portal\n this._attachedRef = ref\n this.attached.emit(ref)\n\n return ref\n }\n\n /**\n * Attach the given TemplatePortal to this PortlHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this)\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context)\n super.setDisposeFn(() => this._viewContainerRef.clear())\n\n this._attachedPortal = portal\n this._attachedRef = viewRef\n this.attached.emit(viewRef)\n\n return viewRef\n }\n\n // static ngAcceptInputType_portal: Portal<any> | null | undefined | '';\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { IDashboardWidgetsItemDef } from './dashboard-widgets/dashboard-widgets-item'\n\n@Component({\n selector: 'seam-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardComponent {\n static ngAcceptInputType_val: BooleanInput\n\n @Input() widgets: IDashboardWidgetsItemDef[] | undefined | null\n @Input() @InputBoolean() widgetsDraggable: boolean = true\n\n constructor() { }\n\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\n\nimport { DashboardWidgetContainerComponent } from './dashboard-widget-container/dashboard-widget-container.component'\nimport {\n DashboardWidgetTemplateContainerComponent\n} from './dashboard-widget-template-container/dashboard-widget-template-container.component'\nimport { DashboardWidgetPortalOutletDirective } from './dashboard-widgets/dashboard-widget-portal-outlet.directive'\nimport { DashboardWidgetsComponent } from './dashboard-widgets/dashboard-widgets.component'\nimport { DashboardComponent } from './dashboard.component'\n\n@NgModule({\n declarations: [\n DashboardComponent,\n DashboardWidgetsComponent,\n DashboardWidgetContainerComponent,\n DashboardWidgetTemplateContainerComponent,\n DashboardWidgetPortalOutletDirective\n ],\n imports: [\n CommonModule,\n PortalModule,\n DragDropModule,\n TheSeamButtonsModule,\n TheSeamIconModule,\n TheSeamSharedModule\n ],\n exports: [\n DashboardComponent,\n DashboardWidgetsComponent,\n DashboardWidgetPortalOutletDirective\n ]\n})\nexport class TheSeamDashboardModule { }\n","import { hasProperty } from '@theseam/ui-common/utils'\n\nimport {\n ISideNavBasic,\n ISideNavButton,\n ISideNavDivider,\n ISideNavItem,\n ISideNavItemState,\n ISideNavLink,\n ISideNavTitle,\n SideNavItemCanHaveChildren,\n SideNavItemCanHaveState\n} from './side-nav.models'\n\nexport function isNavItemType(item: ISideNavItem, type: 'title'): item is ISideNavTitle\nexport function isNavItemType(item: ISideNavItem, type: 'divider'): item is ISideNavDivider\nexport function isNavItemType(item: ISideNavItem, type: 'basic'): item is ISideNavBasic\nexport function isNavItemType(item: ISideNavItem, type: 'link'): item is ISideNavLink\nexport function isNavItemType(item: ISideNavItem, type: 'button'): item is ISideNavButton\nexport function isNavItemType(item: ISideNavItem, type: string): item is ISideNavItem {\n return item.itemType === type\n}\n\nexport function isNavItemActive(item: ISideNavItem): boolean {\n return item.__state?.active ?? false\n}\n\nexport function isExpanded(item: ISideNavItem): boolean {\n return item.__state?.expanded ?? false\n}\n\nexport function hasChildren(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) & Required<SideNavItemCanHaveChildren> {\n return canHaveChildren(item) && hasProperty(item, 'children') && item.children.length > 0\n}\n\nexport function canHaveChildren(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return isNavItemType(item, 'basic') || isNavItemType(item, 'link')\n}\n\nexport function hasActiveChild(item: ISideNavItem): boolean {\n if (!hasChildren(item)) {\n return false\n }\n\n for (const child of item.children) {\n if (getItemStateProp(child, 'active')) {\n return true\n }\n }\n\n return false\n}\n\nexport function hasExpandedChild(item: ISideNavItem): boolean {\n if (!hasChildren(item)) {\n return false\n }\n\n for (const child of item.children) {\n if (getItemStateProp(child, 'expanded')) {\n return true\n }\n }\n\n return false\n}\n\nexport function canBeActive(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return isNavItemType(item, 'basic') || isNavItemType(item, 'link')\n}\n\nexport function canExpand(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return canHaveChildren(item)\n}\n\nexport function findLinkItems(items: ISideNavItem[]): ISideNavLink[] {\n const linkItems: ISideNavLink[] = []\n\n const _fn = (_items: ISideNavItem[]) => {\n for (const item of _items) {\n if (isNavItemType(item, 'link')) {\n linkItems.push(item)\n }\n if (canHaveChildren(item) && hasProperty(item, 'children')) {\n _fn(item.children)\n }\n }\n }\n _fn(items)\n\n return linkItems\n}\n\nexport function setItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K, value: ISideNavItemState[K]): void {\n if (hasProperty(item, '__state')) {\n item.__state[prop] = value\n }\n}\n\nexport function getItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K): ISideNavItemState[K] {\n return setDefaultState(item).__state[prop]\n}\n\nexport function setDefaultState(item: ISideNavItem): ISideNavItem & Required<SideNavItemCanHaveState> {\n if (hasProperty(item, '__state')) {\n return item\n }\n\n item.__state = {\n active: false,\n expanded: false\n }\n\n // TODO: See if there is a nice way to fix the typing for this.\n return item as any\n}\n","import { Injectable } from '@angular/core'\nimport { ActivatedRoute, IsActiveMatchOptions, NavigationEnd, Router, UrlCreationOptions } from '@angular/router'\nimport { BehaviorSubject, combineLatest, defer, Observable, of, Subject, Subscriber } from 'rxjs'\nimport { distinctUntilChanged, filter, map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport {\n canExpand,\n findLinkItems,\n getItemStateProp,\n hasActiveChild,\n hasChildren,\n hasExpandedChild,\n isNavItemType,\n setDefaultState,\n setItemStateProp\n} from './side-nav-utils'\nimport { ISideNavItem, ISideNavItemState, ISideNavLink, SideNavItemStateChanged } from './side-nav.models'\n\n@Injectable()\nexport class TheSeamSideNavService {\n\n private readonly _updatingCount = new BehaviorSubject<number>(0)\n\n public readonly loading$: Observable<boolean>\n\n public readonly itemChanged = new Subject<SideNavItemStateChanged>()\n\n constructor(\n private readonly _router: Router\n ) {\n this.loading$ = this._updatingCount.pipe(\n map(count => count > 0),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n public createItemsObservable(items: ISideNavItem[]): Observable<ISideNavItem[]> {\n return defer(() => {\n this.updateItemsStates(items)\n return new Observable((subscriber: Subscriber<ISideNavItem[]>) => {\n const stateChangeSub = this.itemChanged.pipe(\n switchMap(() => this.loading$.pipe(filter(loading => !loading)))\n ).subscribe(() => {\n subscriber.next(items)\n })\n\n try {\n this.updateItemsStates(items)\n } catch (err) {\n subscriber.error(err)\n }\n\n // const linkItems = findLinkItems(items)\n\n const routeChangeSub = this._router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n // ).subscribe(() => linkItems.forEach(itm => this.updateItemState(itm)))\n ).subscribe(() => {\n try {\n this.updateItemsStates(items)\n } catch (err) {\n subscriber.error(err)\n }\n })\n\n return () => {\n stateChangeSub.unsubscribe()\n routeChangeSub.unsubscribe()\n }\n }).pipe(startWith(items))\n })\n }\n\n private _incUpdatingCount(): void {\n this._updatingCount.next(this._updatingCount.value + 1)\n }\n\n private _decrUpdatingCount(): void {\n this._updatingCount.next(this._updatingCount.value - 1)\n }\n\n public updateItemsStates(items: ISideNavItem[]): void {\n this._incUpdatingCount()\n\n try {\n for (const item of items) {\n if (hasChildren(item)) {\n this.updateItemsStates(item.children)\n }\n\n this.updateItemState(item)\n }\n\n this._decrUpdatingCount()\n } catch (err) {\n this._decrUpdatingCount()\n throw err\n }\n }\n\n public updateItemState(item: ISideNavItem): void {\n this._incUpdatingCount()\n\n try {\n setDefaultState(item)\n\n if (isNavItemType(item, 'link')) {\n const url = this._getUrl(item)\n if (notNullOrUndefined(url)) {\n const opts = this._getMatchOptions(item)\n this.setItemStateProp(item, 'active', this._router.isActive(url, opts))\n }\n }\n\n // TODO: Implement this in a more optimized way. Unless our apps start\n // having large side-navs constantly updating their state, this shouldn't\n // have much impact on performance.\n this._updateItemExpandedState(item)\n\n this._decrUpdatingCount()\n } catch (err) {\n this._decrUpdatingCount()\n throw err\n }\n }\n\n private _updateItemsExpandedState(items: ISideNavItem[]): void {\n for (const item of items) {\n if (hasChildren(item)) {\n this._updateItemsExpandedState(item.children)\n }\n this._updateItemExpandedState(item)\n }\n }\n\n private _updateItemExpandedState(item: ISideNavItem): void {\n if (!canExpand(item)) {\n if (getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', false)\n }\n return\n }\n\n if (hasChildren(item)) {\n this._updateItemsExpandedState(item.children)\n }\n\n if (hasActiveChild(item) || hasExpandedChild(item)) {\n if (!getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', true)\n }\n } else {\n if (getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', false)\n }\n }\n }\n\n private _getNavExtras(item: ISideNavLink): UrlCreationOptions {\n const navigationExtras: UrlCreationOptions = { }\n if (hasProperty(item, 'queryParams')) {\n navigationExtras.queryParams = item.queryParams\n }\n if (hasProperty(item, 'fragment')) {\n navigationExtras.fragment = item.fragment\n }\n if (hasProperty(item, 'queryParamsHandling')) {\n navigationExtras.queryParamsHandling = item.queryParamsHandling\n }\n if (hasProperty(item, 'preserveFragment')) {\n navigationExtras.preserveFragment = item.preserveFragment\n }\n return navigationExtras\n }\n\n private _getUrl(item: ISideNavLink): string | null {\n const link = item.link\n\n if (typeof link === 'string') {\n return this._router.createUrlTree([ link ], this._getNavExtras(item)).toString()\n } else if (Array.isArray(link)) {\n return this._router.createUrlTree(link, this._getNavExtras(item)).toString()\n }\n\n return null\n }\n\n private _getMatchOptions(item: ISideNavLink): IsActiveMatchOptions {\n const defaultMatchOpts: IsActiveMatchOptions = {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n }\n\n if (hasProperty(item, 'matchOptions')) {\n return {\n ...defaultMatchOpts,\n ...item.matchOptions\n }\n }\n\n return defaultMatchOpts\n }\n\n public setItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K, value: ISideNavItemState[K]): void {\n const currentValue = getItemStateProp(item, prop)\n if (currentValue !== value) {\n setItemStateProp(item, prop, value)\n\n const changed: SideNavItemStateChanged = {\n item,\n prop,\n prevValue: currentValue,\n newValue: value\n }\n this.itemChanged.next(changed)\n }\n }\n}\n","import {\n animate,\n animateChild,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations'\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnDestroy, OnInit, Optional, ViewEncapsulation } from '@angular/core'\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router'\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, map, mapTo, pairwise, shareReplay, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { ITheSeamBaseLayoutNav, ITheSeamBaseLayoutRef, THESEAM_BASE_LAYOUT_REF } from '../base-layout/index'\n\nimport { ISideNavItem } from './side-nav.models'\nimport { TheSeamSideNavService } from './side-nav.service'\n\nconst EXPANDED_STATE = 'expanded'\nconst COLLAPSED_STATE = 'collapsed'\n\nconst EXPANDED_OVERLAY_STATE = 'expanded-overlay'\nconst COLLAPSED_OVERLAY_STATE = 'collapsed-overlay'\n\nconst EXPANDED_STATES = [ EXPANDED_STATE, EXPANDED_OVERLAY_STATE ]\nconst COLLAPSED_STATES = [ COLLAPSED_STATE, COLLAPSED_OVERLAY_STATE ]\nconst EXPAND_STATES = [ ...EXPANDED_STATES, ...COLLAPSED_STATES ]\n\nexport function sideNavExpandStateChangeFn(fromState: string, toState: string) {\n // console.log({ fromState, toState })\n return fromState !== toState &&\n (\n // NOTE: The current way the side nav is being used it causes the\n // component to sometimes get placed in the wrong location initially. It\n // is fast enough to not be noticed without an initial animation usually,\n // so it is commented out below until the initial placement issue it\n // fixed.\n //\n // (\n // fromState === 'void' && EXPAND_STATES.indexOf(toState) !== -1\n // ||\n // toState === 'void' && EXPAND_STATES.indexOf(fromState) !== -1\n // )\n // ||\n (\n (EXPANDED_STATES.indexOf(fromState) !== -1 && COLLAPSED_STATES.indexOf(toState) !== -1)\n ||\n (EXPANDED_STATES.indexOf(toState) !== -1 && COLLAPSED_STATES.indexOf(fromState) !== -1)\n )\n )\n}\n\n@Component({\n selector: 'seam-side-nav',\n templateUrl: './side-nav.component.html',\n styleUrls: ['./side-nav.component.scss'],\n providers: [\n TheSeamSideNavService\n ],\n animations: [\n\n //\n // TODO: This animation code turned into a mess. Clean it up and make it\n // more smooth.\n //\n\n trigger('sideNavAnim', [\n transition(sideNavExpandStateChangeFn, [\n group([\n query('@sideNavBackdrop', animateChild(), { optional: true }),\n query('@sideNavExpand', animateChild(), { optional: true }),\n ]),\n ]),\n ]),\n\n trigger('sideNavBackdrop', [\n state(EXPANDED_OVERLAY_STATE, style({ opacity: '1' })),\n state(COLLAPSED_OVERLAY_STATE, style({ opacity: '0' })),\n\n // transition((fromState, toState, element, params) => {\n // console.log('sideNavBackdrop v', fromState, toState, element, params)\n // return false\n // }, []),\n\n transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),\n ]),\n\n trigger('sideNavExpand', [\n // TODO: Make width configurable.\n state(EXPANDED_STATE, style({ width: '260px' })),\n state(COLLAPSED_STATE, style({ width: '50px', 'overflow-x': 'hidden' })),\n\n state(EXPANDED_OVERLAY_STATE, style({\n position: 'absolute',\n top: 0,\n height: '100%',\n bottom: 0,\n left: 0,\n float: 'left',\n zIndex: '9999',\n width: 'calc(100vw - 50px)',\n transform: 'translateX(0)'\n })),\n state(COLLAPSED_OVERLAY_STATE, style({\n position: 'absolute',\n top: 0,\n height: '100%',\n bottom: 0,\n left: 0,\n float: 'left',\n zIndex: '9999',\n width: 'calc(100vw - 50px)',\n transform: 'translateX(calc(-100vw + 50px))',\n 'overflow-x': 'hidden'\n })),\n\n // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),\n\n transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),\n\n // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, [\n // // query(':leave', animateChild(), { optional: true }),\n // // query(':enter', animateChild(), { optional: true }),\n // group([\n // query(':leave', animateChild(), { optional: true }),\n // query(':enter', animateChild(), { optional: true }),\n // query('@compactAnim', animateChild(), { optional: true }),\n // animate('5.2s ease-in-out')\n // ])\n // ]),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavComponent implements OnInit, OnDestroy, ITheSeamBaseLayoutNav {\n static ngAcceptInputType_hasHeaderToggle: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject()\n\n // @HostBinding('@sideNavExpand') _sideNavExpand = EXPANDED_STATE\n // _sideNavExpand = EXPANDED_STATE\n\n // @HostBinding('@sideNavAnim') _sideNavExpand = EXPANDED_STATE\n @HostBinding('@sideNavAnim') _sideNavExpand = 'initial'\n\n @Input() @InputBoolean() hasHeaderToggle = true\n\n @Input()\n get items(): ISideNavItem[] { return this._items.value }\n set items(value: ISideNavItem[]) { this._items.next(value) }\n private _items = new BehaviorSubject<ISideNavItem[]>([])\n public readonly items$: Observable<ISideNavItem[]>\n\n @Input()\n get expanded(): boolean { return this._expanded.value }\n set expanded(value: boolean) { this._expanded.next(coerceBooleanProperty(value)) }\n private _expanded = new BehaviorSubject<boolean>(true)\n public readonly expanded$ = this._expanded.asObservable()\n\n @Input()\n get overlay(): boolean { return this._overlay.value }\n set overlay(value: boolean) { this._overlay.next(coerceBooleanProperty(value)) }\n private _overlay = new BehaviorSubject<boolean>(false)\n public readonly overlay$ = this._overlay.asObservable()\n\n public readonly isMobile$: Observable<boolean>\n public readonly sideNavExpandedState$: Observable<string>\n public _backdropHidden = new BehaviorSubject<boolean>(true)\n\n constructor(\n private readonly _layout: TheSeamLayoutService,\n private readonly _sideNav: TheSeamSideNavService,\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) private readonly _baseLayoutRef: ITheSeamBaseLayoutRef\n ) {\n this.items$ = this._items.asObservable().pipe(\n switchMap(items => this._sideNav.createItemsObservable(items)),\n shareReplay({ bufferSize: 1, refCount: true }),\n )\n\n this.isMobile$ = this._layout.isMobile$.pipe(\n tap(isMobile => isMobile && this.collapse())\n )\n\n this.sideNavExpandedState$ = combineLatest([ this.expanded$, this.overlay$ ]).pipe(\n map(([ expanded, overlay ]) => expanded\n ? overlay ? EXPANDED_OVERLAY_STATE : EXPANDED_STATE\n : overlay ? COLLAPSED_OVERLAY_STATE : COLLAPSED_STATE\n ),\n distinctUntilChanged()\n )\n }\n\n ngOnInit() {\n if (this._baseLayoutRef) { this._baseLayoutRef.registerNav(this) }\n\n this.isMobile$\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(b => this.overlay = b)\n\n this.sideNavExpandedState$\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => this._sideNavExpand = v)\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n if (this._baseLayoutRef) { this._baseLayoutRef.unregisterNav(this) }\n }\n\n public expand() {\n this.expanded = true\n }\n\n public collapse() {\n this.expanded = false\n }\n\n public toggle() {\n this.expanded = !this.expanded\n }\n\n public animateStart() {\n if (this.expanded) {\n this._backdropHidden.next(false)\n }\n }\n\n public animateEnd() {\n if (!this.expanded) {\n this._backdropHidden.next(true)\n }\n }\n\n}\n","import {\n animate,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations'\nimport { BooleanInput, coerceBooleanProperty, NumberInput } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n Component,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n Optional,\n SkipSelf,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { faAngleLeft } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\nimport type { SeamIcon } from '@theseam/ui-common/icon'\nimport type { ThemeTypes } from '@theseam/ui-common/models'\n\nimport { SideNavComponent } from '../side-nav.component'\nimport { ISideNavItem } from '../side-nav.models'\n\nexport interface SideNavItemBadgeTooltip {\n tooltip?: string\n class?: string\n placement?: string\n container?: string\n disabled?: boolean\n}\n\nconst EXPANDED_STATE = 'expanded'\nconst COLLAPSED_STATE = 'collapsed'\n\nconst FULL_STATE = 'full'\nconst COMPACT_STATE = 'compact'\n\n@Component({\n selector: 'seam-side-nav-item',\n templateUrl: './side-nav-item.component.html',\n styleUrls: ['./side-nav-item.component.scss'],\n exportAs: 'seamSideNavItem',\n animations: [\n trigger('childGroupAnim', [\n state(EXPANDED_STATE, style({ height: '*' })),\n state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),\n transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),\n ]),\n\n\n trigger('compactAnim', [\n // transition('* <=> *', [\n // query(':enter', [\n // style({ opacity: '0' }),\n // animate('5.2s ease-in-out', style({ opacity: '1' }))\n // ], { optional: true }),\n // query(':leave', [\n // style({ opacity: '1' }),\n // animate('5.2s ease-in-out', style({ opacity: '0' }))\n // ], { optional: true })\n // ])\n\n // state(FULL_STATE, style({ opacity: '1' })),\n // state(COMPACT_STATE, style({ opacity: '0' })),\n // transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, animate('5.2s ease-in-out')),\n // transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, [\n // transition('* <=> *', [\n // query(':leave', [\n // style({ opacity: '1' }),\n // animate('5.2s ease-in-out', style({ opacity: '0' }))\n // ], { optional: true })\n // ]),\n\n\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavItemComponent implements OnDestroy {\n static ngAcceptInputType_hierLevel: NumberInput\n static ngAcceptInputType_indentSize: NumberInput\n static ngAcceptInputType_expanded: BooleanInput\n static ngAcceptInputType_compact: BooleanInput\n static ngAcceptInputType_active: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject()\n\n readonly faAngleLeft = faAngleLeft\n\n @Input() itemType: 'divider' | 'basic' | 'link' | 'button' | 'title' | undefined | null\n\n @Input() icon: SeamIcon | undefined | null\n\n @Input() label: string | undefined | null\n\n @Input() @InputBoolean() active: boolean = false\n\n @Input()\n set link(value: string | undefined | null) { this._link.next(value) }\n get link() { return this._link.value }\n private readonly _link = new BehaviorSubject<string | undefined | null>(undefined)\n public readonly link$ = this._link.asObservable()\n\n @Input() queryParams: { [k: string]: any } | undefined | null\n\n @Input() children: ISideNavItem[] | undefined | null\n\n @Input() @InputNumber(0) hierLevel: number = 0\n\n @Input() @InputNumber(10) indentSize: number = 10\n\n @Input()\n set expanded(value: boolean) { this._expanded.next(coerceBooleanProperty(value)) }\n get expanded() { return this._expanded.value }\n private readonly _expanded = new BehaviorSubject<boolean>(false)\n public readonly expanded$ = this._expanded.asObservable()\n\n @Input()\n set compact(value: boolean) { this._compact.next(coerceBooleanProperty(value)) }\n get compact() { return this._compact.value }\n private readonly _compact = new BehaviorSubject<boolean>(false)\n public readonly compact$ = this._compact.asObservable()\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: ThemeTypes | undefined | null = 'danger'\n\n /**\n * Content to provide to assistive technology, such as screen readers.\n */\n @Input() badgeSrContent: string | undefined | null\n\n @Input()\n get badgeTooltip() { return this._badgeTooltip }\n set badgeTooltip(value: string | SideNavItemBadgeTooltip | undefined | null) {\n if (value !== null && value !== undefined) {\n if (typeof value === 'string') {\n this._badgeTooltip = {\n tooltip: value,\n placement: 'auto',\n disabled: false\n }\n } else {\n this._badgeTooltip = {\n ...value,\n placement: value.placement || 'auto',\n disabled: typeof value?.disabled === 'boolean'\n ? value.disabled\n : typeof value.tooltip === 'string' ? false : true\n }\n }\n } else {\n this._badgeTooltip = undefined\n }\n }\n private _badgeTooltip: SideNavItemBadgeTooltip | undefined | null\n\n @HostBinding('class.seam-side-nav-item--active') get _isActiveCssClass() { return this.active }\n\n @HostBinding('attr.data-hier-level') get _attrDataHierLevel() { return this.hierLevel }\n\n public readonly childGroupAnimState$: Observable<string>\n public readonly compactAnimState$: Observable<string>\n\n constructor(\n private readonly _sideNav: SideNavComponent,\n @Optional() @SkipSelf() @Host() private readonly _parent?: SideNavItemComponent\n ) {\n this.childGroupAnimState$ = this.expanded$\n .pipe(map(expanded => expanded ? EXPANDED_STATE : COLLAPSED_STATE))\n\n this.compactAnimState$ = this.compact$\n .pipe(map(compact => compact ? COMPACT_STATE : FULL_STATE))\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n get hasChildren() {\n return Array.isArray(this.children) && this.children.length > 0\n }\n\n public toggleChildren(): void {\n this.expanded = !this.expanded\n }\n\n _linkClicked() {\n // Close nav when link is clicked while in overlay state\n if (this._sideNav.overlay) {\n this._sideNav.collapse()\n }\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core'\n\nimport { faBars } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\n@Component({\n selector: 'seam-side-nav-toggle',\n templateUrl: './side-nav-toggle.component.html',\n styleUrls: ['./side-nav-toggle.component.scss'],\n host: {\n '[class.side-nav-toggle--compact]': '!expanded'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavToggleComponent implements OnInit {\n static ngAcceptInputType_expanded: BooleanInput\n\n faBars = faBars\n\n @Input() @InputBoolean() expanded = false\n\n @Output() toggleExpand = new EventEmitter<void>()\n\n constructor() { }\n\n ngOnInit() { }\n\n toggle() {\n this.toggleExpand.emit()\n }\n\n}\n","import { A11yModule } from '@angular/cdk/a11y'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamLayoutModule } from '@theseam/ui-common/layout'\nimport { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar'\n\nimport { SideNavItemComponent } from './side-nav-item/side-nav-item.component'\nimport { SideNavToggleComponent } from './side-nav-toggle/side-nav-toggle.component'\nimport { SideNavComponent } from './side-nav.component'\n\n@NgModule({\n declarations: [\n SideNavItemComponent,\n SideNavComponent,\n SideNavToggleComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n TheSeamIconModule,\n A11yModule,\n TheSeamScrollbarModule,\n TheSeamLayoutModule,\n NgbTooltipModule\n ],\n exports: [\n SideNavItemComponent,\n SideNavComponent,\n SideNavToggleComponent\n ]\n})\nexport class TheSeamSideNavModule { }\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnDestroy, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core'\n\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\n\nimport { CanDisableCtor, InputBoolean, mixinDisabled } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nclass TopBarMenuButtonBase {}\n\nconst _TopBarMenuButtonMixinBase: CanDisableCtor & typeof TopBarMenuButtonBase =\n mixinDisabled(TopBarMenuButtonBase)\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'button[seamTopBarMenuButton]',\n templateUrl: './top-bar-menu-button.component.html',\n styleUrls: ['./top-bar-menu-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'seamButton',\n // tslint:disable-next-line:use-input-property-decorator\n inputs: [ 'disabled' ],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'attr.type': 'button',\n 'class': 'btn border text-decoration-none py-0',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopBarMenuButtonComponent extends _TopBarMenuButtonMixinBase implements OnInit, OnDestroy {\n static ngAcceptInputType_compact: BooleanInput\n\n faAngleDown = faAngleDown\n\n @Input() detailTpl: TemplateRef<{}> | undefined | null\n\n @Input() @InputBoolean() compact: boolean = false\n\n /** Icon to display on mobile to activate profile dropdown. Defaults to faUserCircle. */\n @Input() profileIcon: SeamIcon | undefined | null\n\n @HostBinding('class.top-bar-menu-button--compact') get _hasCompactClass() { return this.compact }\n @HostBinding('class.p-0') get _hasPadding0Class() { return this.compact }\n @HostBinding('class.rounded') get _hasRoundedClass() { return this.compact }\n @HostBinding('class.btn-link') get _hasBtnLinkClass() { return !this.compact }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core'\n\n@Component({\n selector: 'seam-top-bar-title',\n templateUrl: './top-bar-title.component.html',\n styleUrls: ['./top-bar-title.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopBarTitleComponent implements OnInit {\n\n @Input() titleText: string | undefined | null\n @Input() subTitleText: string | undefined | null\n\n constructor() { }\n\n ngOnInit() { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTopBarItem]'\n})\nexport class TopBarItemDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTopBarMenuBtnDetail]'\n})\nexport class TopBarMenuBtnDetailDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, Self } from '@angular/core'\n\nimport { MenuComponent } from '@theseam/ui-common/menu'\n\n@Directive({\n selector: 'seam-menu[seamTopBarMenu]'\n})\nexport class TopBarMenuDirective {\n\n constructor(\n @Self() public menu: MenuComponent\n ) { }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n ViewEncapsulation\n} from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\nimport { map, shareReplay, startWith, takeUntil } from 'rxjs/operators'\n\nimport { faBars } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { TopBarItemDirective } from './top-bar-item.directive'\nimport { TopBarMenuBtnDetailDirective } from './top-bar-menu-btn-detail.directive'\nimport { TopBarMenuDirective } from './top-bar-menu.directive'\nimport { SeamIcon } from '@theseam/ui-common/icon'\nimport { faUserCircle } from '@fortawesome/free-regular-svg-icons'\n\n/**\n * Top bar of an app.\n *\n * The top bar is fairly opinionated, so most parts are not intended to be\n * customized unless there is an input.\n *\n * > If you have to make a change and apply it externally with a css class or js\n * > make sure there is an issue to get the feature changed, so we don't have\n * > different modifications across our apps. Also, this will help make sure\n * > your change should have even been done.\n */\n@Component({\n selector: 'seam-top-bar',\n templateUrl: './top-bar.component.html',\n styleUrls: ['./top-bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'seamTopBar',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamTopBarComponent implements OnInit, OnDestroy, AfterContentInit {\n static ngAcceptInputType_hasTitle: BooleanInput\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n /** @ignore */\n faBars = faBars\n\n /** @ignore */\n @ContentChild(TopBarMenuDirective, { static: true }) _topBarMenu?: TopBarMenuDirective | null\n /** @ignore */\n @ContentChildren(TopBarItemDirective) _topBarItems?: QueryList<TopBarItemDirective>\n /** @ignore */\n @ContentChild(TopBarMenuBtnDetailDirective) _topBarMenuBtnDetailTpl?: TopBarMenuBtnDetailDirective | null\n\n /** Logo displayed on the top bar. */\n @Input() logo: string | undefined | null\n /** Logo displayed on the top bar when a smaller logo is needed. */\n @Input() logoSm: string | undefined | null\n\n /** External url to link to when `logo` is clicked. */\n @Input() logoHref?: string | null\n\n /** Link target used when `logoHref` is specified. Defaults to `\"_blank\"` */\n @Input() logoHrefTarget: string = '_blank'\n\n /** Route to link to when `logo` is clicked. Defaults to `/`. */\n @Input() logoRoute: string = '/'\n\n /** Determines if the title should be displayed. */\n @Input() @InputBoolean() hasTitle: boolean = false\n\n /** Title text displayed when `hasTitle` is true. */\n @Input() titleText: string | undefined | null\n\n /** Sub Title text displayed when `hasTitle` is true. The sub title will be less prominent. */\n @Input() subTitleText: string | undefined | null\n\n /** Icon to display on mobile to activate profile dropdown. Defaults to faUserCircle. */\n @Input() profileIcon: SeamIcon | undefined | null = faUserCircle\n\n /** @ignore */\n _items$?: Observable<TopBarItemDirective[]>\n\n /** @ignore */\n isMobile$: Observable<boolean>\n\n constructor(\n private _layout: TheSeamLayoutService\n ) {\n this.isMobile$ = this._layout.isMobile$\n }\n\n /** @ignore */\n ngOnInit() { }\n\n /** @ignore */\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n /** @ignore */\n ngAfterContentInit() {\n if (this._topBarItems) {\n this._items$ = this._topBarItems.changes.pipe(\n startWith(undefined),\n takeUntil(this._ngUnsubscribe),\n map(() => this._topBarItems?.toArray() || []),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamLayoutModule } from '@theseam/ui-common/layout'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\nimport { TheSeamBaseLayoutModule } from '../base-layout/index'\n\nimport { TopBarItemDirective } from './top-bar-item.directive'\nimport { TopBarMenuBtnDetailDirective } from './top-bar-menu-btn-detail.directive'\nimport { TopBarMenuButtonComponent } from './top-bar-menu-button/top-bar-menu-button.component'\nimport { TopBarMenuDirective } from './top-bar-menu.directive'\nimport { TopBarTitleComponent } from './top-bar-title/top-bar-title.component'\nimport { TheSeamTopBarComponent } from './top-bar.component'\n\n@NgModule({\n declarations: [\n TheSeamTopBarComponent,\n TopBarTitleComponent,\n TopBarMenuButtonComponent,\n TopBarMenuDirective,\n TopBarItemDirective,\n TopBarMenuBtnDetailDirective\n ],\n imports: [\n CommonModule,\n TheSeamLayoutModule,\n TheSeamButtonsModule,\n TheSeamIconModule,\n TheSeamMenuModule,\n TheSeamBaseLayoutModule,\n RouterModule\n ],\n exports: [\n TheSeamTopBarComponent,\n TopBarMenuButtonComponent,\n TopBarMenuDirective,\n TheSeamMenuModule,\n TopBarItemDirective,\n TopBarMenuBtnDetailDirective\n ]\n})\nexport class TheSeamTopBarModule { }\n","import {\n animate,\n animateChild,\n group,\n keyframes,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations'\n\n\nexport const fader =\n trigger('routeAnimations', [\n transition('* <=> *', [\n // Set a default style for enter and leave\n query(':enter, :leave', [\n style({\n position: 'absolute',\n left: 0,\n width: '100%',\n opacity: 0,\n transform: 'scale(0) translateY(100%)',\n }),\n ], { optional: true }),\n // Animate the new page in\n query(':enter', [\n animate('600ms ease', style({ opacity: 1, transform: 'scale(1) translateY(0)' })),\n ], { optional: true })\n ]),\n ])\n\n\n// function slideTo(direction) {\n// return [\n// query(':enter, :leave', [\n// style({\n// position: 'absolute',\n// top: 0,\n// [direction]: 0,\n// width: '100%'\n// })\n// ], { optional: true }),\n// query(':enter', [\n// style({ [direction]: '-100%'})\n// ], { optional: true }),\n// group([\n// query(':leave', [\n// animate('1000ms ease', style({ [direction]: '100%'}))\n// ], { optional: true }),\n// query(':enter', [\n// animate('1000ms ease', style({ [direction]: '0%'}))\n// ], { optional: true })\n// ]),\n// // Normalize the page style... Might not be necessary\n\n// // Required only if you have child animations on the page\n// query(':leave', animateChild(), { optional: true }),\n// query(':enter', animateChild(), { optional: true }),\n// ]\n// }\n\n// TODO: Refactor the slider animation, because AOT or ng-packagr, I haven't\n// looked into what exactly is preventing it, doesn't allow the function call.\n// export const slider =\n// trigger('routeAnimations', [\n// transition('* => isLeft', slideTo('left') ),\n// transition('* => isRight', slideTo('right') ),\n// transition('isRight => *', slideTo('left') ),\n// transition('isLeft => *', slideTo('right') )\n// ])\n\n// export const contentLeave =\n// trigger('contentLeave', [\n// transition(':leave', [\n\n// ])\n// ])\n\nexport const slider =\n trigger('routeAnimations', [\n transition('* => isLeft', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ left: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ left: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ left: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('* => isRight', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ right: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ right: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ right: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('isRight => *', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ left: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ left: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ left: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('isLeft => *', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ right: '-100%'})\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ right: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ right: '0%'}))\n ], { optional: true })\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ])\n ])\n\n\nexport const transformer =\n trigger('routeAnimations', [\n transition('* => isLeft', transformTo({ x: -100, y: -100, rotate: -720 }) ),\n transition('* => isRight', transformTo({ x: 100, y: -100, rotate: 90 }) ),\n transition('isRight => *', transformTo({ x: -100, y: -100, rotate: 360 }) ),\n transition('isLeft => *', transformTo({ x: 100, y: -100, rotate: -360 }) )\n])\n\nfunction transformTo({x = 100, y = 0, rotate = 0}) {\n const optional = { optional: true }\n return [\n query(':enter, :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], optional),\n query(':enter', [\n style({ transform: `translate(${x}%, ${y}%) rotate(${rotate}deg)`})\n ], { optional: true }),\n group([\n query(':leave', [\n animate('600ms ease-out', style({ transform: `translate(${x}%, ${y}%) rotate(${rotate}deg)`}))\n ], optional),\n query(':enter', [\n animate('600ms ease-out', style({ transform: `translate(0, 0) rotate(0)`}))\n ], { optional: true })\n ]),\n ]\n}\n\n\nexport const stepper =\n trigger('routeAnimations', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n position: 'absolute',\n left: 0,\n width: '100%',\n }),\n ], { optional: true }),\n group([\n query(':enter', [\n animate('2000ms ease', keyframes([\n style({ transform: 'scale(0) translateX(100%)', offset: 0 }),\n style({ transform: 'scale(0.5) translateX(25%)', offset: 0.3 }),\n style({ transform: 'scale(1) translateX(0%)', offset: 1 }),\n ])),\n ], { optional: true }),\n query(':leave', [\n animate('2000ms ease', keyframes([\n style({ transform: 'scale(1)', offset: 0 }),\n style({ transform: 'scale(0.5) translateX(-25%) rotate(0)', offset: 0.35 }),\n style({ opacity: 0, transform: 'translateX(-50%) rotate(-180deg) scale(6)', offset: 1 }),\n ])),\n ], { optional: true })\n ]),\n ])\n ])\n\n\nexport const sideToSide = trigger('routeAnimations', [\n transition('* => *', [\n style({\n position: 'fixed',\n width: '100%',\n transform: 'translateX(-100%)'\n }),\n animate('1000ms ease', style({ transform: 'translateX(0%)' }))\n ]),\n transition(':leave', [\n style({\n position: 'fixed',\n width: '100%',\n transform: 'translateX(0%)'\n }),\n animate('1000ms ease', style({ transform: 'translateX(-100%)' }))\n ])\n])\n","import { ChangeDetectionStrategy, Component, HostBinding, OnDestroy, OnInit } from '@angular/core'\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Router, RouterOutlet } from '@angular/router'\nimport { combineLatest, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { fader, sideToSide, slider, stepper, transformer } from './hierarchy-route-animations'\n\nexport function routeChanges(router: Router) {\n return router.events.pipe(\n filter(event => event instanceof NavigationStart || event instanceof NavigationEnd),\n distinctUntilChanged((x: any, y: any) => x.id === y.id),\n map(event => ({ url: event.url }))\n )\n}\n\n\n//\n// TODO: Animation improvement: Try adding a full component animation that\n// queries the <ng-content> and <router-outlet> blocks. When the outlet\n// activates, set the animation state to a transition that moves both blocks\n// together.\n//\n\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-hierarchy-router-outlet',\n templateUrl: './hierarchy-router-outlet.component.html',\n styleUrls: ['./hierarchy-router-outlet.component.scss'],\n animations: [\n // fader,\n slider,\n // transformer,\n // stepper,\n // sideToSide\n // contentLeave\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HierarchyRouterOutletComponent implements OnInit, OnDestroy {\n\n private _uid = _uid++\n\n private readonly _ngUnsubscribe = new Subject()\n\n animState = 'isRight'\n // animState = ''\n\n outletActive = false\n\n ngContentVisible = true\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router\n ) {\n this._router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n // tap(v => console.log(`_hasChildren()[${this._uid}]`, this._hasChildren())),\n takeUntil(this._ngUnsubscribe)\n )\n .subscribe()\n\n // routeChanges(this._router)\n // .pipe(\n // untilDestroyed(this),\n // tap(() => {\n // // if (this._hasChildren()) {\n // // this.animState = 'isLeft'\n // // } else {\n // // this.animState = 'isRight'\n // // }\n // })\n // )\n // .subscribe(v => console.log(`routeChanges[${this._uid}]`, v))\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _hasChildren() {\n const count = this._route.pathFromRoot.length - 1\n let countFull = 0\n if (this._router.parseUrl(this._router.url).root.children.primary) {\n countFull = this._router.parseUrl(this._router.url).root.children.primary.segments.length\n }\n // console.log(`_hasChildren[${this._uid}]`, { count, countFull })\n return countFull > count\n }\n\n prepareRoute(outlet: RouterOutlet) {\n // console.log(`outlet[${this._uid}]`, outlet, this.animState, this._hasChildren(), this.outletActive)\n if (outlet.isActivated) {\n // console.log(outlet.isActivated)\n // console.log(outlet.component)\n console.log(this.animState)\n return this.animState\n } else {\n return undefined\n }\n // console.log(`prepareRoute[${this._uid}]`, this.animState, this._hasChildren())\n // console.log('activatedRouteData', outlet && outlet.activatedRouteData)\n // if (outlet && outlet.isActivated) {\n // console.log('activatedRoute', outlet.activatedRoute && outlet.activatedRoute.snapshot.url)\n // }\n // return outlet && outlet.activatedRouteData && outlet.activatedRouteData['animation']\n // console.log('')\n // return this.animState\n }\n\n outletActivate(event: any) {\n // console.log(`outletActivate[${this._uid}]`, event)\n this.outletActive = true\n }\n\n outletDeactivate(event: any) {\n // console.log(`outletDeactivate[${this._uid}]`, event)\n this.outletActive = false\n }\n\n routeAnimationsStart(event: any) {\n // console.log('routeAnimationsStart', event)\n this.ngContentVisible = true\n }\n\n routeAnimationsDone(event: any) {\n // console.log('routeAnimationsDone', event)\n this.ngContentVisible = !this.outletActive\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'\nimport { Observable } from 'rxjs'\nimport { map, take } from 'rxjs/operators'\n\n@Injectable({ providedIn: 'root' })\nexport class HierarchyLevelResolver implements Resolve<number> {\n\n constructor() {}\n\n resolve(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<number> | Promise<number> | number {\n // console.log('[HierarchyLevelResolver]', route)\n // console.log('[HierarchyLevelResolver]', state)\n return this._getMaxHierLevel(route)\n }\n\n private _getMaxHierLevel(route: ActivatedRouteSnapshot) {\n let curr = route\n while (curr.parent) {\n curr = curr.parent\n if (curr.data['hierLevel']) {\n return curr.data['hierLevel'] + 1\n }\n }\n\n return 0\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { HierarchyRouterOutletComponent } from './hierarchy-router-outlet/hierarchy-router-outlet.component'\n\n\n\n@NgModule({\n declarations: [\n HierarchyRouterOutletComponent\n ],\n imports: [\n CommonModule,\n RouterModule\n ],\n exports: [\n HierarchyRouterOutletComponent\n ]\n})\nexport class TheSeamDynamicRouterModule { }\n","import { Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-checkbox',\n templateUrl: './schema-form-checkbox.component.html',\n styleUrls: ['./schema-form-checkbox.component.scss']\n})\nexport class TheSeamSchemaFormCheckboxComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n trueValue: any = true\n falseValue: any = false\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n }\n\n updateValue(event: any) {\n event.preventDefault()\n this.jsf.updateValue(this, event.target.checked ? this.trueValue : this.falseValue)\n }\n\n get isChecked() {\n return this.jsf.getFormControlValue(this) === this.trueValue\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-input',\n templateUrl: './schema-form-input.component.html',\n styleUrls: ['./schema-form-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormInputComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue?: string\n controlDisabled = false\n boundControl = false\n options: any\n autoCompleteList: string[] = []\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.target.value)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-number',\n templateUrl: './schema-form-number.component.html',\n styleUrls: ['./schema-form-number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormNumberComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n allowNegative = true\n allowDecimal = true\n allowExponents = false\n lastValidNumber = ''\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (this.layoutNode.dataType === 'integer') { this.allowDecimal = false }\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.target.value)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { buildTitleMap, isArray, JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-select',\n templateUrl: './schema-form-select.component.html',\n styleUrls: ['./schema-form-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormSelectComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n selectList: any[] = []\n isArray = isArray\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.selectList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, !!this.options.required, !!this.options.flatList\n )\n\n this.jsf.initializeControl(this)\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.value)\n }\n\n}\n","import { Component, Input, isDevMode, OnDestroy, OnInit } from '@angular/core'\nimport { AbstractControl, FormControl } from '@angular/forms'\nimport { Subject } from 'rxjs'\n\nimport { buildTitleMap, hasOwn, JsonSchemaFormService, TitleMapItem } from '@ajsf/core'\n\nimport { observeControlStatus, observeControlValue } from '@theseam/ui-common/utils'\nimport { takeUntil } from 'rxjs/operators'\n\n// NOTE: This is aliasing TitleMapItem, because we may want to extend it's\n// options. For simplicity, I am letting this work similar to a 'select' widget.\nexport type TheSeamSchemaFormSubmitSplitItem = TitleMapItem\n\n// NOTE: This component is a little hacky, because I am basically creating a\n// data widget that acts like a data and 'submit' widget at the same time.\n//\n// TODO: Try and think of a nicer way to implement this, but still make sense\n// from a schema definition. The library may need to me forked to actually\n// support this in the way I expect, but maybe there is another way.\n@Component({\n selector: 'seam-schema-form-submit-split',\n templateUrl: './schema-form-submit-split.component.html',\n styleUrls: ['./schema-form-submit-split.component.scss'],\n // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormSubmitSplitComponent implements OnInit, OnDestroy {\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n _buttonLabel = ''\n\n _dropdownObj: any\n _dropdownDisabled = false\n _selectList: TheSeamSchemaFormSubmitSplitItem[] = []\n _selectedItem?: TheSeamSchemaFormSubmitSplitItem\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n /** @ignore */\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n\n // NOTE: This is commented out, because there is a bug with submit widgets\n // manually defined in layout. All nodes initialized from the provided\n // layout have their options populated from the defaults and 'disabled' is\n // on of the default properties, so the 'disableInvalidSubmit' condition\n // never gets reached.\n //\n // My initial idea for fixing would be to check if the disabled property\n // exists and is a boolean, or possibly anything defined that can coerce\n // into a boolean. I can't think of a reason disabled should be anything\n // else, so that may be an acceptable fix, but I don't want to enable that\n // yet.\n //\n // if (hasOwn(this.options, 'disabled')) {\n // console.log('[TheSeamSchemaFormSubmitSplitComponent] hasDisabled', this.options.disabled)\n // this.controlDisabled = this.options.disabled\n // } else\n if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid)\n }\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n\n if (hasOwn(this.options, 'title')) {\n this._buttonLabel = this.options.title\n }\n\n this._initDropdown()\n\n // console.log('this', this)\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n updateValue(event: any) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event)\n } else {\n this.jsf.updateValue(this, event.target.value)\n }\n }\n\n private _initDropdown(): void {\n if (!hasOwn(this.layoutNode, 'items') || !(this.layoutNode.items || []).length) {\n return\n }\n\n if (isDevMode()) {\n if (this.layoutNode.items.length > 1) {\n console.warn(\n `TheSeamSchemaFormSubmitSplitComponent only supports one item.` +\n ` items after index 0 will be ignored.`\n )\n }\n }\n\n const idx = 0\n const item = this.layoutNode.items[idx]\n this._dropdownObj = {\n layoutNode: item,\n layoutIndex: (this.layoutIndex || []).concat(idx),\n dataIndex: this.layoutNode?.dataType === 'array' ? (this.dataIndex || []).concat(idx) : this.dataIndex,\n\n options: item.options || {}\n }\n\n this.jsf.initializeControl(this._dropdownObj)\n\n\n const items = buildTitleMap(\n this._dropdownObj.options.titleMap || this._dropdownObj.options.enumNames,\n this._dropdownObj.options.enum,\n !!this._dropdownObj.options.required,\n !!this._dropdownObj.options.flatList\n )\n\n this._selectList = items\n\n // TODO: Should this be checking if the control is bound?\n const dropdownControl = this._getDropdownControl()\n if (!dropdownControl) {\n return\n }\n\n observeControlValue(dropdownControl).pipe(\n takeUntil(this._ngUnsubscribe)\n ).subscribe(value => {\n this._setSelectListCheckedProp(value)\n this._selectedItem = this._getSelectedItem()\n })\n\n observeControlStatus(dropdownControl).pipe(\n takeUntil(this._ngUnsubscribe)\n ).subscribe(value => {\n this._dropdownDisabled = dropdownControl.disabled\n })\n }\n\n private _getDropdownControl(): FormControl | undefined {\n return this._dropdownObj.formControl as FormControl\n }\n\n private _setSelectListCheckedProp(value: any) {\n const items = this._selectList\n for (const item of items) {\n if (item.value === value) {\n item.checked = true\n } else if (item.checked) {\n item.checked = false\n }\n }\n this._selectList = [ ...items ]\n }\n\n private _getSelectedItem(): TheSeamSchemaFormSubmitSplitItem | undefined {\n return (this._selectList || []).find(x => x.checked === true)\n }\n\n _setDropdownValue(value: any) {\n const formControl = this._getDropdownControl()\n formControl?.setValue(value)\n }\n\n}\n","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'seam-schema-form-framework',\n templateUrl: './schema-form-framework.component.html',\n styleUrls: ['./schema-form-framework.component.scss']\n})\nexport class TheSeamSchemaFormFrameworkComponent {\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n}\n","import { Injectable } from '@angular/core'\n\nimport { Framework } from '@ajsf/core'\n\nimport { TheSeamSchemaFormCheckboxComponent } from '../schema-form-controls/schema-form-checkbox/schema-form-checkbox.component'\nimport { TheSeamSchemaFormInputComponent } from '../schema-form-controls/schema-form-input/schema-form-input.component'\nimport { TheSeamSchemaFormNumberComponent } from '../schema-form-controls/schema-form-number/schema-form-number.component'\nimport { TheSeamSchemaFormSelectComponent } from '../schema-form-controls/schema-form-select/schema-form-select.component'\nimport { TheSeamSchemaFormSubmitSplitComponent } from '../schema-form-controls/schema-form-submit-split/schema-form-submit-split.component'\nimport { TheSeamSchemaFormSubmitComponent } from '../schema-form-controls/schema-form-submit/schema-form-submit.component'\n\nimport { TheSeamSchemaFormFrameworkComponent } from './schema-form-framework.component'\n\n@Injectable()\nexport class TheSeamFramework extends Framework {\n name = 'seam-framework'\n\n framework = TheSeamSchemaFormFrameworkComponent\n\n widgets = {\n 'checkbox': TheSeamSchemaFormCheckboxComponent,\n // 'submit': TheSeamSchemaFormSubmitComponent,\n 'submit': TheSeamSchemaFormSubmitSplitComponent,\n 'text': TheSeamSchemaFormInputComponent,\n 'number': TheSeamSchemaFormNumberComponent,\n 'select': TheSeamSchemaFormSelectComponent\n }\n}\n","import { Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { hasOwn, JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-submit',\n templateUrl: './schema-form-submit.component.html',\n styles: []\n})\nexport class TheSeamSchemaFormSubmitComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (hasOwn(this.options, 'disabled')) {\n this.controlDisabled = this.options.disabled\n } else if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid)\n }\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n }\n\n updateValue(event: any) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event)\n } else {\n this.jsf.updateValue(this, event.target.value)\n }\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { JsonSchemaFormModule } from '@ajsf/core'\nimport { NgSelectModule } from '@ng-select/ng-select'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamCheckboxModule } from '@theseam/ui-common/checkbox'\nimport { TheSeamFormFieldModule } from '@theseam/ui-common/form-field'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\n\nimport { TheSeamSchemaFormCheckboxComponent } from './schema-form-checkbox/schema-form-checkbox.component'\nimport { TheSeamSchemaFormInputComponent } from './schema-form-input/schema-form-input.component'\nimport { TheSeamSchemaFormNumberComponent } from './schema-form-number/schema-form-number.component'\nimport { TheSeamSchemaFormSelectComponent } from './schema-form-select/schema-form-select.component'\nimport { TheSeamSchemaFormSubmitSplitComponent } from './schema-form-submit-split/schema-form-submit-split.component'\nimport { TheSeamSchemaFormSubmitComponent } from './schema-form-submit/schema-form-submit.component'\n\nconst controls = [\n TheSeamSchemaFormCheckboxComponent,\n TheSeamSchemaFormSubmitComponent,\n TheSeamSchemaFormSelectComponent,\n TheSeamSchemaFormInputComponent,\n TheSeamSchemaFormNumberComponent,\n TheSeamSchemaFormSubmitSplitComponent\n]\n\n@NgModule({\n declarations: [\n ...controls\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n JsonSchemaFormModule,\n TheSeamFormFieldModule,\n TheSeamCheckboxModule,\n TheSeamMenuModule,\n TheSeamButtonsModule,\n NgSelectModule\n ],\n exports: [\n ...controls,\n JsonSchemaFormModule\n ],\n entryComponents: [\n ...controls\n ]\n})\nexport class TheSeamSchemaFormControlsModule { }\n","import { CommonModule } from '@angular/common'\nimport { Directive, NgModule } from '@angular/core'\n\nimport {\n Framework,\n FrameworkLibraryService,\n JsonSchemaFormModule,\n JsonSchemaFormService,\n WidgetLibraryModule, WidgetLibraryService\n} from '@ajsf/core'\n\nimport { TheSeamSchemaFormControlsModule } from '../schema-form-controls/schema-form-controls.module'\nimport { TheSeamFramework } from './schema-form-framework'\nimport { TheSeamSchemaFormFrameworkComponent } from './schema-form-framework.component'\n\n@NgModule({\n declarations: [\n TheSeamSchemaFormFrameworkComponent\n ],\n imports: [\n CommonModule,\n JsonSchemaFormModule,\n TheSeamSchemaFormControlsModule,\n WidgetLibraryModule,\n ],\n providers: [\n JsonSchemaFormService,\n FrameworkLibraryService,\n WidgetLibraryService,\n { provide: Framework, useClass: TheSeamFramework, multi: true }\n ],\n exports: [\n TheSeamSchemaFormFrameworkComponent,\n JsonSchemaFormModule\n ],\n entryComponents: [\n TheSeamSchemaFormFrameworkComponent\n ]\n})\nexport class TheSeamSchemaFormModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TheSeamSchemaFormCheckboxComponent as ɵc} from './schema-form-controls/schema-form-checkbox/schema-form-checkbox.component';\nexport {TheSeamSchemaFormControlsModule as ɵb} from './schema-form-controls/schema-form-controls.module';\nexport {TheSeamSchemaFormInputComponent as ɵf} from './schema-form-controls/schema-form-input/schema-form-input.component';\nexport {TheSeamSchemaFormNumberComponent as ɵg} from './schema-form-controls/schema-form-number/schema-form-number.component';\nexport {TheSeamSchemaFormSelectComponent as ɵe} from './schema-form-controls/schema-form-select/schema-form-select.component';\nexport {TheSeamSchemaFormSubmitSplitComponent as ɵh} from './schema-form-controls/schema-form-submit-split/schema-form-submit-split.component';\nexport {TheSeamSchemaFormSubmitComponent as ɵd} from './schema-form-controls/schema-form-submit/schema-form-submit.component';\nexport {TheSeamSideNavService as ɵa} from './side-nav/side-nav.service';"],"names":["Directive","ElementRef","InjectionToken","Optional","Inject","HostBinding","Input","HostListener","forwardRef","faAngleDoubleRight","faAngleDoubleLeft","BehaviorSubject","TemplatePortal","isDevMode","isObservable","from","Component","ChangeDetectionStrategy","ViewEncapsulation","ViewContainerRef","TheSeamLayoutService","ContentChild","TemplateRef","NgModule","CommonModule","PortalModule","TheSeamScrollbarModule","TheSeamIconModule","TheSeamButtonsModule","ViewChild","Subject","of","startWith","switchMap","map","shareReplay","tap","mapTo","take","hasProperty","Injectable","combineLatest","auditTime","notNullOrUndefined","ComponentPortal","TheSeamDynamicComponentLoader","faLock","faUnlock","EventEmitter","debounceTime","takeUntil","coerceNumberProperty","coerceBooleanProperty","distinctUntilChanged","finalize","moveItemInArray","transferArrayItem","THESEAM_WIDGET_ACCESSOR","ChangeDetectorRef","ViewChildren","CdkDrag","Output","InputBoolean","BasePortalOutlet","ComponentFactoryResolver","DragDropModule","TheSeamSharedModule","defer","Observable","filter","NavigationEnd","Router","EXPANDED_STATE","COLLAPSED_STATE","trigger","transition","group","query","animateChild","state","style","animate","faAngleLeft","SkipSelf","Host","InputNumber","faBars","RouterModule","A11yModule","TheSeamLayoutModule","NgbTooltipModule","mixinDisabled","faAngleDown","MenuComponent","Self","faUserCircle","ContentChildren","TheSeamMenuModule","keyframes","router","NavigationStart","ActivatedRoute","JsonSchemaFormService","isArray","buildTitleMap","hasOwn","observeControlValue","observeControlStatus","Framework","ReactiveFormsModule","JsonSchemaFormModule","TheSeamFormFieldModule","TheSeamCheckboxModule","NgSelectModule","WidgetLibraryModule","FrameworkLibraryService","WidgetLibraryService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-framework.umd.js","sources":["../../../projects/ui-common/framework/base-layout/directives/base-layout-content-footer.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-content-header.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-content.directive.ts","../../../projects/ui-common/framework/base-layout/base-layout-tokens.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-nav-toggle.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-side-bar.directive.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-top-bar.directive.ts","../../../projects/ui-common/framework/base-layout/base-layout.component.ts","../../../projects/ui-common/framework/base-layout/directives/base-layout-side-bar-footer.directive.ts","../../../projects/ui-common/framework/base-layout/base-layout.module.ts","../../../projects/ui-common/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences-accessor-token.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets.service.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widgets.component.ts","../../../projects/ui-common/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.ts","../../../projects/ui-common/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.ts","../../../projects/ui-common/framework/dashboard/dashboard.component.ts","../../../projects/ui-common/framework/dashboard/dashboard.module.ts","../../../projects/ui-common/framework/side-nav/side-nav-utils.ts","../../../projects/ui-common/framework/side-nav/side-nav.service.ts","../../../projects/ui-common/framework/side-nav/side-nav.component.ts","../../../projects/ui-common/framework/side-nav/side-nav-item/side-nav-item.component.ts","../../../projects/ui-common/framework/side-nav/side-nav-toggle/side-nav-toggle.component.ts","../../../projects/ui-common/framework/side-nav/side-nav.module.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.ts","../../../projects/ui-common/framework/top-bar/top-bar-title/top-bar-title.component.ts","../../../projects/ui-common/framework/top-bar/top-bar-item.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu-btn-detail.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar-menu.directive.ts","../../../projects/ui-common/framework/top-bar/top-bar.component.ts","../../../projects/ui-common/framework/top-bar/top-bar.module.ts","../../../projects/ui-common/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.ts","../../../projects/ui-common/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.ts","../../../projects/ui-common/framework/dynamic-router/resolvers/hierarchy-level.resolver.ts","../../../projects/ui-common/framework/dynamic-router/dynamic-router.module.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-input/schema-form-input.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-number/schema-form-number.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-select/schema-form-select.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.ts","../../../projects/ui-common/framework/schema-form/schema-form-framework.component.ts","../../../projects/ui-common/framework/schema-form/schema-form-framework.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.ts","../../../projects/ui-common/framework/schema-form-controls/schema-form-controls.module.ts","../../../projects/ui-common/framework/schema-form/schema-form.module.ts","../../../projects/ui-common/framework/theseam-ui-common-framework.ts"],"sourcesContent":["import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContentFooter]'\n})\nexport class BaseLayoutContentFooterDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContentHeader]'\n})\nexport class BaseLayoutContentHeaderDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutContent]'\n})\nexport class BaseLayoutContentDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamBaseLayoutRef } from './base-layout-ref'\n\nexport const THESEAM_BASE_LAYOUT_REF = new InjectionToken<ITheSeamBaseLayoutRef>('seamBaseLayoutRef')\n","import { Directive, HostBinding, HostListener, Inject, Input, Optional } from '@angular/core'\n\nimport type { ITheSeamBaseLayoutRef } from '../base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from '../base-layout-tokens'\n\n/**\n * Can be used to toggle the expand state of the registered nav.\n */\n@Directive({\n selector: 'button[seamBaseLayoutNavToggle]',\n exportAs: 'seamBaseLayoutNavToggle'\n})\nexport class BaseLayoutNavToggleDirective {\n\n public baseLayout: ITheSeamBaseLayoutRef | undefined\n\n @HostBinding('attr.type')\n get _attrType() { return this.type }\n\n @Input() type: string | undefined | null = 'button'\n\n @HostBinding('attr.aria-label')\n get _attrAriaLabel() { return this.ariaLabel || null }\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string | undefined | null = 'Navigation toggle'\n\n @HostListener('click')\n _onClick() {\n if (this.baseLayout && this.baseLayout.registeredNav) {\n this.baseLayout.registeredNav.toggle()\n }\n }\n\n constructor(\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) _baseLayout: ITheSeamBaseLayoutRef\n ) {\n this.baseLayout = _baseLayout\n }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutSideBar]'\n})\nexport class BaseLayoutSideBarDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutTopBar]'\n})\nexport class BaseLayoutTopBarDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { TemplatePortal } from '@angular/cdk/portal'\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n forwardRef,\n Input,\n isDevMode,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, from, isObservable, Observable } from 'rxjs'\n\nimport { faAngleDoubleLeft, faAngleDoubleRight } from '@fortawesome/free-solid-svg-icons'\n\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { BaseLayoutAction, IBaseLayoutActionButton } from './base-layout-action'\nimport { ITheSeamBaseLayoutNav } from './base-layout-nav'\nimport { ITheSeamBaseLayoutRef } from './base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from './base-layout-tokens'\nimport { BaseLayoutContentFooterDirective } from './directives/base-layout-content-footer.directive'\nimport { BaseLayoutContentHeaderDirective } from './directives/base-layout-content-header.directive'\nimport { BaseLayoutContentDirective } from './directives/base-layout-content.directive'\nimport { BaseLayoutSideBarDirective } from './directives/base-layout-side-bar.directive'\nimport { BaseLayoutTopBarDirective } from './directives/base-layout-top-bar.directive'\n\nexport const THE_SEAM_BASE_LAYOUT: any = {\n provide: THESEAM_BASE_LAYOUT_REF,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => TheSeamBaseLayoutComponent),\n multi: false,\n}\n\n@Component({\n selector: 'seam-base-layout',\n templateUrl: './base-layout.component.html',\n styleUrls: ['./base-layout.component.scss'],\n providers: [ THE_SEAM_BASE_LAYOUT ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class TheSeamBaseLayoutComponent implements OnInit, ITheSeamBaseLayoutRef {\n\n faAngleDoubleRight = faAngleDoubleRight\n faAngleDoubleLeft = faAngleDoubleLeft\n\n @Input() overlayNav = false\n\n // TODO: Consider making the template queries not be dynamic. I can see this\n // potentially causing confusion or issues with potential layouts built with\n // this component.\n @ContentChild(BaseLayoutTopBarDirective, { static: true, read: TemplateRef }) _topBarTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutSideBarDirective, { static: true, read: TemplateRef }) _sideBarTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentDirective, { static: true, read: TemplateRef }) _contentTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentHeaderDirective, { static: true, read: TemplateRef }) _contentHeaderTpl?: TemplateRef<any> | null\n @ContentChild(BaseLayoutContentFooterDirective, { static: true, read: TemplateRef }) _contentFooterTpl?: TemplateRef<any> | null\n\n _topBarPortal?: TemplatePortal\n _sideBarPortal?: TemplatePortal\n _contentPortal?: TemplatePortal\n _contentHeaderPortal?: TemplatePortal\n _contentFooterPortal?: TemplatePortal\n\n private _hasSideBar = new BehaviorSubject<boolean>(false)\n\n public hasSideBar$: Observable<boolean>\n public isMobile$: Observable<boolean>\n\n get registeredNav() { return this._registeredNav.value }\n private _registeredNav = new BehaviorSubject<ITheSeamBaseLayoutNav | undefined>(undefined)\n public registeredNav$ = this._registeredNav.asObservable()\n\n get registeredActions() { return this._registeredActions.value }\n private _registeredActions = new BehaviorSubject<BaseLayoutAction[]>([])\n public registeredActions$: Observable<BaseLayoutAction[]>\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _layout: TheSeamLayoutService\n ) {\n this.registeredActions$ = this._registeredActions.asObservable()\n\n this.isMobile$ = this._layout.isMobile$\n this.hasSideBar$ = this._hasSideBar.asObservable()\n }\n\n ngOnInit() {\n if (this._topBarTpl) {\n this._topBarPortal = new TemplatePortal(this._topBarTpl, this._viewContainerRef)\n }\n\n if (this._sideBarTpl) {\n this._sideBarPortal = new TemplatePortal(this._sideBarTpl, this._viewContainerRef)\n this._hasSideBar.next(true)\n }\n\n if (this._contentTpl) {\n this._contentPortal = new TemplatePortal(this._contentTpl, this._viewContainerRef)\n }\n\n if (this._contentHeaderTpl) {\n this._contentHeaderPortal = new TemplatePortal(this._contentHeaderTpl, this._viewContainerRef)\n }\n\n if (this._contentFooterTpl) {\n this._contentFooterPortal = new TemplatePortal(this._contentFooterTpl, this._viewContainerRef)\n }\n }\n\n public registerNav(nav: ITheSeamBaseLayoutNav): void {\n // TODO: Allow multiple registered navs\n // if (this.registeredNav) {\n // throw new Error('[TheSeamBaseLayoutComponent] A nav is already registered.')\n // }\n // console.log('register nav', nav)\n this._registeredNav.next(nav)\n }\n\n public unregisterNav(nav: ITheSeamBaseLayoutNav): void {\n if (this.registeredNav === nav) {\n this._registeredNav.next(undefined)\n }\n }\n\n public registerAction(action: BaseLayoutAction): void {\n const actions = this._registeredActions.value\n if (actions.findIndex(a => a.name === action.name) !== -1) {\n if (isDevMode()) {\n console.warn(\n `[TheSeamBaseLayoutComponent] registerAction(): Action ${action.name} not ` +\n 'registered, because another action by that name is already registered.'\n )\n }\n return\n }\n actions.push(action)\n }\n\n public unregisterAction(action: BaseLayoutAction | string): void {\n const actionName = typeof action === 'string' ? action : action.name\n const actions = this._registeredActions.value\n this._registeredActions.next(actions.filter(f => f.name !== actionName))\n }\n\n public isActionRegistered(actionName: string): boolean {\n const actions = this._registeredActions.value\n const action = actions.find(f => f.name === actionName)\n return !!action\n }\n\n _handleButtonAction(action: IBaseLayoutActionButton): void {\n this._execButtonAction(action).subscribe()\n }\n\n _execButtonAction(action: IBaseLayoutActionButton): Observable<void> {\n const fnRes = action.exec()\n return isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes))\n }\n\n}\n","import { Directive, ElementRef } from '@angular/core'\n\nimport { HasElementRef } from '@theseam/ui-common/core'\n\n@Directive({\n selector: '[seamBaseLayoutSideBarFooter]'\n})\nexport class BaseLayoutSideBarFooterDirective implements HasElementRef {\n\n constructor(\n public _elementRef: ElementRef\n ) { }\n\n}\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar'\n\nimport { TheSeamBaseLayoutComponent } from './base-layout.component'\nimport { BaseLayoutContentFooterDirective } from './directives/base-layout-content-footer.directive'\nimport { BaseLayoutContentHeaderDirective } from './directives/base-layout-content-header.directive'\nimport { BaseLayoutContentDirective } from './directives/base-layout-content.directive'\nimport { BaseLayoutNavToggleDirective } from './directives/base-layout-nav-toggle.directive'\nimport { BaseLayoutSideBarFooterDirective } from './directives/base-layout-side-bar-footer.directive'\nimport { BaseLayoutSideBarDirective } from './directives/base-layout-side-bar.directive'\nimport { BaseLayoutTopBarDirective } from './directives/base-layout-top-bar.directive'\n\n\n\n@NgModule({\n declarations: [\n TheSeamBaseLayoutComponent,\n BaseLayoutContentDirective,\n BaseLayoutSideBarDirective,\n BaseLayoutSideBarFooterDirective,\n BaseLayoutTopBarDirective,\n BaseLayoutNavToggleDirective,\n BaseLayoutContentHeaderDirective,\n BaseLayoutContentFooterDirective\n ],\n imports: [\n CommonModule,\n PortalModule,\n TheSeamScrollbarModule,\n TheSeamIconModule,\n TheSeamButtonsModule\n ],\n exports: [\n TheSeamBaseLayoutComponent,\n BaseLayoutContentDirective,\n BaseLayoutSideBarDirective,\n BaseLayoutSideBarFooterDirective,\n BaseLayoutTopBarDirective,\n BaseLayoutNavToggleDirective,\n BaseLayoutContentHeaderDirective,\n BaseLayoutContentFooterDirective\n ]\n})\nexport class TheSeamBaseLayoutModule { }\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core'\n\nimport type { IDashboardWidgetsItemDef } from '../dashboard-widgets/dashboard-widgets-item'\n\n@Component({\n selector: 'seam-dashboard-widget-container',\n templateUrl: './dashboard-widget-container.component.html',\n styleUrls: ['./dashboard-widget-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardWidgetContainerComponent implements OnInit {\n\n @Input() def: IDashboardWidgetsItemDef | undefined | null\n\n @ViewChild(TemplateRef) templateRef?: TemplateRef<any>\n\n constructor() { }\n\n ngOnInit() { }\n\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { InjectionToken } from '@angular/core'\n\nimport { ITheSeamDashboardWidgetsPreferencesAccessor } from './dashboard-widgets-preferences-accessor'\n\nexport const THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR = new InjectionToken<ITheSeamDashboardWidgetsPreferencesAccessor>(\n 'ITheSeamDashboardWidgetsPreferencesAccessor'\n)\n","import { Inject, Injectable, isDevMode, Optional } from '@angular/core'\nimport { Observable, of, Subject } from 'rxjs'\nimport { auditTime, map, mapTo, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators'\n\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport {\n IDashboardWidgetItemLayout,\n IDashboardWidgetItemLayoutPreference,\n IDashboardWidgetsItem,\n IDashboardWidgetsItemDef,\n IDashboardWidgetsItemSerialized,\n IDashboardWidgetsPreferences\n} from './dashboard-widgets-item'\nimport type { ITheSeamDashboardWidgetsPreferencesAccessor } from './dashboard-widgets-preferences-accessor'\nimport { THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR } from './dashboard-widgets-preferences-accessor-token'\n\nexport interface IDashboardWidgetsPreferencesMapRecord {\n observable: Observable<IDashboardWidgetsPreferences>\n refresh: Subject<void>\n}\n\n// TODO: This needs a unit test to make sure it will not cause a race condition\n// if update is called faster than the previous can respond.\n//\n// The ideal approach I am thinking, without steping through the process too\n// thoroughly is to hold the new data emit until all pending updates are done.\n// Any pending updates other than the most recently requested will be ignored\n// and just wait on the most recent, and if already running it should be\n// canceled if possible. Also, incase something happens that causes the new data\n// emissions to get held up too long, there could be a threshold time that the\n// new data can be held up.\n\n\n/**\n * Manages anything dealing with retrieving and updating dashboard widget\n * preference data from the provided accessor.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardWidgetsPreferencesService {\n\n private readonly _tablePrefsMap = new Map<string, IDashboardWidgetsPreferencesMapRecord>()\n // private _pending = false\n\n // public get pending() { return this._pending }\n\n constructor(\n @Optional() @Inject(THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR) private _prefsAccessor?: ITheSeamDashboardWidgetsPreferencesAccessor\n ) { }\n\n public preferences(preferenceKey: string): Observable<IDashboardWidgetsPreferences> {\n let prefs = this._tablePrefsMap.get(preferenceKey)\n if (!prefs) {\n const refreshSubject = new Subject<void>()\n prefs = {\n observable: this._createObservable(refreshSubject, preferenceKey),\n refresh: refreshSubject\n }\n this._tablePrefsMap.set(preferenceKey, prefs)\n }\n return prefs.observable\n }\n\n private _createObservable(refreshSubject: Subject<void>, prefKey: string): Observable<IDashboardWidgetsPreferences> {\n if (!this._prefsAccessor) {\n return of({})\n }\n\n const accessor = (key: string): Observable<string> =>\n this._prefsAccessor ? this._prefsAccessor.get(key) : of('{}')\n\n return refreshSubject.pipe(\n startWith({}),\n // tap(() => console.log('Start requesting: ', prefKey)),\n switchMap(() => accessor(prefKey).pipe(\n map(v => {\n if (!v) {\n return null\n }\n\n // TODO: Add a schema validator and migration tool to avoid parsing issues.\n try {\n return JSON.parse(v) as IDashboardWidgetsPreferences\n } catch (error) {\n if (isDevMode()) {\n console.error(error)\n }\n return null\n }\n }),\n map(v => !!v ? v : {}),\n // tap(v => console.log('preferences$', v))\n // tap(v => this._pending = false)\n )),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n public refresh(preferenceKey: string): Observable<void> {\n const prefs = this._tablePrefsMap.get(preferenceKey)\n if (prefs) {\n // this._pending = true\n // prefs.refresh.next()\n return prefs.observable.pipe(\n // tap(() => prefs.refresh.next()),\n tap(() => setTimeout(() => { prefs.refresh.next() }, 0)),\n mapTo(undefined),\n take(1),\n // tap(() => console.log('Done refreshing: ', preferenceKey)),\n )\n }\n\n return of(undefined)\n }\n\n public selectLayout(preferenceKey: string, layoutName: string): Observable<IDashboardWidgetItemLayoutPreference | undefined> {\n return this.preferences(preferenceKey).pipe(\n map(prefs => (prefs.layouts || []).find(l => l.name === layoutName))\n )\n }\n\n // TODO: Improve this updating to not be more generic, so we can quickly add\n // edits for different preference schema's.\n //\n // TODO: Decide if a send queue/merging of pending queue is needed to avoid\n // out of order updates. This shouldn't be an issue, with how fast preferences\n // will most likely be changing, but it could happen in situations, such as\n // network issues.\n public updateLayout(preferenceKey: string, layout: IDashboardWidgetItemLayout): Observable<void> {\n if (!this._prefsAccessor) {\n return of(undefined)\n }\n\n if (!hasProperty(layout, 'name')) {\n throw Error(`Unable to save layout preference. 'name' is required for a layout preference.`)\n }\n\n const _layout = this.toSerializeableLayout(layout)\n\n // this._pending = true\n return this.preferences(preferenceKey).pipe(\n map(prefs => {\n // Making the preferences immutable may not be necessary, but for now\n // this obj->str->obj will work as a naive clone.\n const layouts = JSON.parse(JSON.stringify(prefs.layouts || []))\n const _layoutPref = layouts.find((c: any) => c.name === _layout.name)\n // console.log('has', _layoutPref)\n if (_layoutPref) {\n if (hasProperty(_layout, 'name')) { _layoutPref.name = _layout.name }\n if (hasProperty(_layout, 'label')) { _layoutPref.label = _layout.label }\n if (hasProperty(_layout, 'items')) { _layoutPref.items = _layout.items }\n } else {\n layouts.push({ ..._layout })\n }\n const newPrefs: IDashboardWidgetsPreferences = { ...prefs, layouts }\n return newPrefs\n }),\n // tap(v => console.log('newPrefs', v)),\n take(1),\n switchMap(newPrefs => this._prefsAccessor\n ? this._prefsAccessor.update(preferenceKey, JSON.stringify(newPrefs))\n : of(newPrefs)\n ),\n switchMap(() => this.refresh(preferenceKey).pipe(mapTo(undefined)))\n )\n // .subscribe()\n }\n\n public toSerializeableLayout(layout: IDashboardWidgetItemLayout): IDashboardWidgetItemLayoutPreference {\n const serialized: IDashboardWidgetItemLayoutPreference = {\n name: layout.name,\n label: layout.label,\n items: this.toSerializeableItems(layout.items as any) || []\n }\n return serialized\n }\n\n // public toDeserializedLayout(layout: IDashboardWidgetItemLayoutSerialized): IDashboardWidgetItemLayoutDef {\n // // For now there is nothing to do. Eventually this should have at least\n // // validation on the deserialized object.\n // return layout\n // }\n\n /**\n * Returns the serializable widget items as objects that can be serialized to\n * a JSON string for storage.\n */\n public toSerializeableItems(widgets: IDashboardWidgetsItem[]): IDashboardWidgetsItemSerialized[] {\n const serialized: IDashboardWidgetsItemSerialized[] = []\n for (const w of widgets) {\n // if (!w.__itemDef.component || typeof w.__itemDef.component !== 'string') {\n // console.warn(`[DashboardWidgetsService] Widget item def must have a string 'component' property to be serialized.`, w)\n // continue\n // }\n // serialized.push({\n // widgetId: w.widgetId,\n // col: w.col,\n // order: w.order,\n // component: w.__itemDef.component\n // })\n\n // TODO: Remove this, it is only here for initial dev debugging.\n serialized.push({\n widgetId: w.widgetId,\n col: w.col,\n order: w.order,\n // component: w.__itemDef.component as string\n })\n }\n return serialized\n }\n\n // public toDeserializedItems(widgets: IDashboardWidgetsItemSerialized[]): IDashboardWidgetsItemDef[] {\n // const items: IDashboardWidgetsItemDef[] = []\n // for (const w of widgets) {\n // items.push({\n // widgetId: w.widgetId,\n // col: w.col,\n // order: w.order,\n // // component: w.component\n // })\n // }\n // return items\n // }\n\n}\n","import { ComponentPortal } from '@angular/cdk/portal'\nimport { Injectable, isDevMode, ViewContainerRef } from '@angular/core'\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs'\nimport { auditTime, map, mapTo, shareReplay, switchMap, take, tap } from 'rxjs/operators'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport {\n IDashboardWidgetItemLayoutPreference,\n IDashboardWidgetsColumnRecord,\n IDashboardWidgetsItem,\n IDashboardWidgetsItemDef\n} from './dashboard-widgets-item'\nimport { DashboardWidgetsPreferencesService } from './dashboard-widgets-preferences.service'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardWidgetsService {\n\n public readonly preferenceKey: string = 'datatable-widgets'\n\n public readonly defaultNumColumns: number = 3\n\n /** Used for operations, such as 'addWidget', if the column is not specified. */\n public readonly defaultColumn: number = 0\n\n get widgets(): IDashboardWidgetsItemDef[] { return this._widgets.value }\n set widgets(value: IDashboardWidgetsItemDef[]) { this._widgets.next(value) }\n private _widgets = new BehaviorSubject<IDashboardWidgetsItemDef[]>([])\n\n get numColumns(): number { return this._numColumns.value }\n set numColumns(value: number) {\n if (value !== this._numColumns.value) {\n this._numColumns.next(value)\n }\n }\n private _numColumns = new BehaviorSubject<number>(this.defaultNumColumns)\n\n public readonly numColumns$: Observable<number>\n public readonly widgetItems$: Observable<IDashboardWidgetsItem[]>\n public readonly widgetColumns$: Observable<IDashboardWidgetsColumnRecord[]>\n\n private readonly _viewContainerRefSubject = new BehaviorSubject<ViewContainerRef | undefined>(undefined)\n\n constructor(\n private readonly _dynamicComponentLoaderModule: TheSeamDynamicComponentLoader,\n private readonly _preferences: DashboardWidgetsPreferencesService\n ) {\n this.numColumns$ = this._numColumns.asObservable()\n\n // Widget items without preferences\n const _widgetItems$ = combineLatest([ this._widgets, this._viewContainerRefSubject ])\n .pipe(switchMap(([ defs, vcr ]) => this.createWidgetItems(defs, vcr)))\n\n // Widget items with preferences\n this.widgetItems$ = combineLatest([ _widgetItems$, this.numColumns$ ])\n .pipe(\n // Wait until the current tick is done, incase both the widgets and\n // number of columns are set durring the same tick. Without the audit,\n // this would get called twice when the component is initialized with\n // both inputs set one after the other individually.\n auditTime(0),\n switchMap(([ items, numColumns ]) =>\n this._preferences.selectLayout(this.preferenceKey, this._layoutName(numColumns)).pipe(\n map(layout => layout ? this.withLayoutPreferences(items, layout) : items)\n )\n ),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this.widgetColumns$ = this.widgetItems$\n .pipe(\n map(items => this.toColumnRecords(items)),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n private _layoutName(numColumns: number): string {\n return `columns-${numColumns}`\n }\n\n public setViewContainerRef(vcr: ViewContainerRef | undefined) {\n this._viewContainerRefSubject.next(vcr)\n }\n\n public createWidgetItems(defs: IDashboardWidgetsItemDef[], vcr?: ViewContainerRef): Observable<IDashboardWidgetsItem[]> {\n const _createObservables = (defs || []).map(d => this.createWidgetItem(d, vcr))\n const items$ = _createObservables.length > 0 ? combineLatest(_createObservables) : of([])\n return items$.pipe(\n map(items => items.filter(notNullOrUndefined)),\n tap(items => {\n if (isDevMode()) {\n const ids: string[] = items.map(v => v.widgetId)\n if ((new Set(ids)).size !== ids.length) {\n console.warn(`[DashboardWidgetsService] Duplicate widget's with the same 'widgetId' found.`)\n }\n }\n })\n )\n }\n\n public createWidgetItem(def: IDashboardWidgetsItemDef, vcr?: ViewContainerRef): Observable<IDashboardWidgetsItem | undefined> {\n if (!def.widgetId || typeof def.widgetId !== 'string' || def.widgetId.length < 1) {\n if (isDevMode()) {\n console.warn(`[DashboardWidgetsService] Widget ignored. All widgets must have a 'widgetId'.`, def)\n }\n return of(undefined)\n }\n\n return this.createWidgetPortal(def, vcr).pipe(\n map(portal => ({\n ...def,\n col: def.col || this.defaultColumn,\n order: def.order || 0,\n portal,\n __itemDef: def\n }))\n )\n }\n\n public createWidgetPortal(def: IDashboardWidgetsItemDef, vcr?: ViewContainerRef): Observable<ComponentPortal<any>> {\n if (typeof def.component === 'string') {\n return this._dynamicComponentLoaderModule\n .getComponentFactory(def.component)\n .pipe(\n map(componentFactory => {\n return new ComponentPortal(\n componentFactory.componentType,\n vcr,\n undefined,\n (<any /* ComponentFactoryBoundToModule */>componentFactory).ngModule.componentFactoryResolver\n )\n }),\n take(1)\n )\n }\n\n return def.componentFactoryResolver\n ? of(new ComponentPortal(def.component, vcr, undefined, def.componentFactoryResolver))\n : of(new ComponentPortal(def.component, vcr))\n }\n\n public updateOrder(): Observable<void> {\n return this.widgetColumns$\n .pipe(\n take(1),\n tap(columns => columns.forEach(col => {\n let i = 0\n col.items.forEach(itm => itm.order = i++)\n })),\n mapTo(undefined)\n )\n }\n\n public toColumnRecords(items: IDashboardWidgetsItem[]): IDashboardWidgetsColumnRecord[] {\n let columns: IDashboardWidgetsColumnRecord[] = []\n\n for (let i = 0; i < this.numColumns; i++) {\n columns.push({ column: i, items: [] })\n }\n\n const colNotFound: IDashboardWidgetsItem[] = []\n\n // Distribute items into columns\n for (const item of items) {\n const col: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === item.col)\n if (!col) {\n // columns.push({ column: item.col, items: [ item ] })\n // if (item.col < 0) {\n // const col0: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === 0)\n // if (col0) {\n // col0.items.push(item)\n // }\n // } else if (item.col > this.numColumns - 1) {\n // const colMax: IDashboardWidgetsColumnRecord | undefined = columns.find(c => c.column === this.numColumns - 1)\n // if (colMax) {\n // colMax.items.push(item)\n // }\n // }\n colNotFound.push(item)\n } else {\n col.items.push(item)\n }\n }\n\n for (let i = 0; i < colNotFound.length; i++) {\n const item = colNotFound[i]\n\n const col: IDashboardWidgetsColumnRecord | undefined = columns\n .find(c => c.column === i % this.numColumns)\n\n if (col) {\n col.items.push(item)\n }\n }\n\n // Sort columns\n columns = columns.sort((a, b) => a.column - b.column)\n\n // Sort columns items\n columns.forEach(col => col.items.sort((a, b) => a.order - b.order))\n\n return columns\n }\n\n public withLayoutPreferences(items: IDashboardWidgetsItem[], layout: IDashboardWidgetItemLayoutPreference): IDashboardWidgetsItem[] {\n const _items: IDashboardWidgetsItem[] = []\n\n for (const item of items) {\n const itemPref = layout.items.find(x => x.widgetId === item.widgetId)\n _items.push({\n ...item,\n ...(itemPref || {})\n })\n }\n\n return _items\n }\n\n public savePreferences(): Observable<void> {\n // Right now the items are moved between the column record arrays, but the\n // 'col' prop is not updated, so it is mapped to corrected items here from\n // the column records.\n const items$ = this.widgetColumns$.pipe(\n map(columns => ([] as IDashboardWidgetsItem[])\n .concat(...(columns.map(c => c.items.map(itm => ({ ...itm, col: c.column })))))\n ),\n )\n\n return combineLatest([ items$, this.numColumns$ ]).pipe(\n auditTime(0),\n take(1),\n switchMap(([ items, numColumns ]) => {\n return this._preferences.updateLayout(this.preferenceKey, {\n name: this._layoutName(numColumns),\n items\n })\n }),\n mapTo(undefined)\n )\n }\n\n}\n","import { BooleanInput, coerceBooleanProperty, coerceNumberProperty, NumberInput } from '@angular/cdk/coercion'\nimport { CdkDrag, CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop'\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { auditTime, debounceTime, distinctUntilChanged, finalize, map, shareReplay, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators'\n\nimport { faLock, faUnlock } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { IElementResizedEvent } from '@theseam/ui-common/shared'\nimport { THESEAM_WIDGET_ACCESSOR } from '@theseam/ui-common/widget'\n\nimport type { ITheSeamBaseLayoutRef } from '../../base-layout/base-layout-ref'\nimport { THESEAM_BASE_LAYOUT_REF } from '../../base-layout/base-layout-tokens'\nimport { DashboardWidgetContainerComponent } from '../dashboard-widget-container/dashboard-widget-container.component'\n\nimport type { IDashboardWidgetsColumnRecord, IDashboardWidgetsItem, IDashboardWidgetsItemDef } from './dashboard-widgets-item'\nimport { DashboardWidgetsService } from './dashboard-widgets.service'\n\n@Component({\n selector: 'seam-dashboard-widgets',\n templateUrl: './dashboard-widgets.component.html',\n styleUrls: ['./dashboard-widgets.component.scss'],\n providers: [\n {\n provide: THESEAM_WIDGET_ACCESSOR,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => DashboardWidgetsComponent)\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class DashboardWidgetsComponent implements OnInit, OnDestroy, AfterViewInit {\n static ngAcceptInputType_gapSize: NumberInput\n static ngAcceptInputType_numColumns: NumberInput\n static ngAcceptInputType_widgetsDraggable: BooleanInput\n static ngAcceptInputType_dragToggleVisible: BooleanInput\n static ngAcceptInputType_widgets: IDashboardWidgetsItemDef[] | undefined | null\n\n faLock = faLock\n faUnlock = faUnlock\n\n public readonly _actionWidgetDragToggleName = 'widget-drag-toggle'\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get gapSize(): number { return this._gapSize.value }\n set gapSize(val: number) {\n this._gapSize.next(coerceNumberProperty(val))\n }\n private readonly _gapSize = new BehaviorSubject<number>(30)\n\n @Input() @InputBoolean() widgetsDraggable: boolean = false\n\n @Input()\n get dragToggleVisible(): boolean { return this._dragToggleVisible.value }\n set dragToggleVisible(val: boolean) {\n this._dragToggleVisible.next(coerceBooleanProperty(val))\n }\n private _dragToggleVisible = new BehaviorSubject<boolean>(true)\n\n @Input()\n get numColumns(): number { return this._dashboardWidgets.numColumns }\n set numColumns(val: number) {\n this._dashboardWidgets.numColumns = coerceNumberProperty(val)\n }\n\n @Input()\n set widgets(value: IDashboardWidgetsItemDef[]) { this._dashboardWidgets.widgets = value || [] }\n get widgets(): IDashboardWidgetsItemDef[] { return this._dashboardWidgets.widgets }\n\n public widgetItems$: Observable<IDashboardWidgetsItem[]>\n public widgetColumns$: Observable<IDashboardWidgetsColumnRecord[]>\n public containers$: Observable<DashboardWidgetContainerComponent[]>\n\n readonly _gapStyleSize$: Observable<number>\n\n @ViewChildren(DashboardWidgetContainerComponent) containers?: QueryList<DashboardWidgetContainerComponent>\n @ViewChildren(CdkDrag) cdkDragDirectives?: QueryList<CdkDrag>\n\n @ViewChild('toggleBtnTpl', { static: true }) _toggleBtnTpl?: TemplateRef<any>\n\n private _containers = new BehaviorSubject<DashboardWidgetContainerComponent[]>([])\n private _layoutChange = new Subject<void>()\n\n @Output() widgetsChange = new EventEmitter<IDashboardWidgetsItem[]>()\n\n private readonly _widthChange = new Subject<number>()\n\n constructor(\n private _dashboardWidgets: DashboardWidgetsService,\n private _viewContainerRef: ViewContainerRef,\n private _cdr: ChangeDetectorRef,\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) private _baseLayoutRef?: ITheSeamBaseLayoutRef\n ) {\n this.containers$ = this._containers.asObservable()\n\n this._gapStyleSize$ = this._gapSize.pipe(\n auditTime(0),\n map(size => size / 2),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n this._widthChange.pipe(\n debounceTime(30),\n tap(width => {\n if (width > 1300) {\n this.numColumns = 3\n } else if (width > 800) {\n this.numColumns = 2\n } else {\n this.numColumns = 1\n }\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n\n this.widgetItems$ = this._dashboardWidgets.widgetItems$\n this.widgetColumns$ = this._dashboardWidgets.widgetColumns$\n }\n\n ngOnInit() {\n // this._dashboardWidgets.setViewContainerRef(this._viewContainerRef)\n\n this._layoutChange.pipe(\n switchMap(() => this.widgetItems$.pipe(\n take(1),\n tap(widgetItems => this.widgetsChange.emit(widgetItems)),\n // map(widgetItems => this._dashboardWidgets.toSerializeableItems(widgetItems)),\n // tap(v => console.log('serializable', v)),\n switchMap(() => this._dashboardWidgets.savePreferences())\n )),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n }\n\n ngOnDestroy() {\n this._unregisterToggleAction()\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() {\n if (this._baseLayoutRef) {\n this._dragToggleVisible.pipe(\n distinctUntilChanged(),\n tap(visible => {\n const isRegistered = this._isActionToggleActionRegistered()\n if (visible && !isRegistered) {\n this._registerToggleAction()\n } else if (!visible && isRegistered) {\n this._unregisterToggleAction()\n }\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe()\n }\n\n this.containers?.changes.pipe(\n startWith(undefined),\n map(() => this.containers?.toArray() || []),\n takeUntil(this._ngUnsubscribe),\n finalize(() => this._containers.next([]))\n ).subscribe(v => this._containers.next(v))\n }\n\n private _registerToggleAction() {\n if (this._baseLayoutRef) {\n // This should probably use a component dynamically created from the\n // config and return a ref to it, instead of using a template.\n if (this._toggleBtnTpl) {\n this._baseLayoutRef.registerAction({\n // type: 'button',\n type: 'template',\n name: this._actionWidgetDragToggleName,\n label: 'Toggle Widget Dragging',\n // exec: () => {\n // console.log('toggle')\n // },\n template: this._toggleBtnTpl\n })\n }\n }\n }\n\n private _unregisterToggleAction() {\n if (this._baseLayoutRef) {\n this._baseLayoutRef.unregisterAction(this._actionWidgetDragToggleName)\n }\n }\n\n private _isActionToggleActionRegistered() {\n if (!this._baseLayoutRef) {\n return false\n }\n return this._baseLayoutRef.isActionRegistered(this._actionWidgetDragToggleName)\n }\n\n drop(event: CdkDragDrop<string[]>) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex)\n this._dashboardWidgets.updateOrder().subscribe(() => this._layoutChange.next())\n } else {\n transferArrayItem(\n event.previousContainer.data,\n event.container.data,\n event.previousIndex,\n event.currentIndex\n )\n this._dashboardWidgets.updateOrder().subscribe(() => this._layoutChange.next())\n }\n }\n\n _containerTrackByFn(index: number, item: IDashboardWidgetsItem) {\n return item.widgetId\n }\n\n _columnsTrackByFn(index: number, record: IDashboardWidgetsColumnRecord) {\n return record.column\n }\n\n toggleDragging() {\n this.widgetsDraggable = !this.widgetsDraggable\n this._cdr.detectChanges()\n }\n\n _resized(event: IElementResizedEvent) {\n this._widthChange.next(event.size.width)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, TemplateRef } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport type { IDashboardWidgetsItem } from '../dashboard-widgets/dashboard-widgets-item'\nimport { DashboardWidgetsComponent } from '../dashboard-widgets/dashboard-widgets.component'\n\n@Component({\n selector: 'seam-dashboard-widget-template-container',\n templateUrl: './dashboard-widget-template-container.component.html',\n styleUrls: ['./dashboard-widget-template-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardWidgetTemplateContainerComponent implements OnInit {\n\n @Input() item: IDashboardWidgetsItem | undefined | null\n\n public template$: Observable<TemplateRef<any> | undefined>\n\n constructor(\n private _dashboardWidgetsComponent: DashboardWidgetsComponent\n ) {\n this.template$ = this._dashboardWidgetsComponent.containers$.pipe(\n map(containers => containers.find((c: any) => c.def.widgetId === this.item?.widgetId)),\n map(container => container && container.templateRef)\n )\n }\n\n ngOnInit() { }\n\n}\n","import { BasePortalOutlet, CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal'\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n ViewContainerRef\n} from '@angular/core'\n\n/**\n * Mostly copied from\n * `https://github.com/angular/components/blob/master/src/cdk/portal/portal-directives.ts`\n * until I can figure out how to hold off removing the DOM nodes with the\n * cdkPortalOutlet. When we update to Angular 9 I may be able to do this better\n * with the new DomPortal.\n *\n * Directive version of a PortalOutlet. Because the directive *is* a\n * PortalOutlet, portals can be directly attached to it, enabling declarative\n * use.\n *\n * Usage: `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[seamDashboardWidgetPortalOutlet]',\n exportAs: 'seamDashboardWidgetPortalOutlet',\n inputs: ['portal: seamDashboardWidgetPortalOutlet']\n})\nexport class DashboardWidgetPortalOutletDirective extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef?: CdkPortalOutletAttachedRef\n\n constructor(\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _elementRef: ElementRef\n ) {\n super()\n }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal\n }\n\n set portal(portal: Portal<any> | null) {\n // console.log('[DashboardWidgetPortalOutletDirective] set portal', portal, this.hasAttached())\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return\n }\n\n if (this.hasAttached()) {\n super.detach()\n }\n\n if (portal) {\n super.attach(portal)\n }\n\n this._attachedPortal = portal\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>()\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef | undefined {\n return this._attachedRef\n }\n\n ngOnInit() {\n this._isInitialized = true\n }\n\n ngOnDestroy() {\n // console.log('[DashboardWidgetPortalOutletDirective] ngOnDestroy')\n\n // TODO: Figure out the right way to call dispose without messing up\n // animation. This setTimeout way assumes the transition is 500ms, but that\n // may not always be the case and isn't guaranteed to match the animation ms\n // duration, since setTimeout isn't really meant for accurate timing. It\n // also makes debugging animations difficult, because you can pause an\n // animation, but the timeout will still run.\n setTimeout(() => {\n super.dispose()\n this._attachedPortal = null\n this._attachedRef = null\n }, 500)\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this)\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef\n\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver\n const componentFactory = resolver.resolveComponentFactory(portal.component)\n const ref = viewContainerRef.createComponent(\n componentFactory, viewContainerRef.length,\n portal.injector || viewContainerRef.injector)\n\n super.setDisposeFn(() => ref.destroy())\n this._attachedPortal = portal\n this._attachedRef = ref\n this.attached.emit(ref)\n\n return ref\n }\n\n /**\n * Attach the given TemplatePortal to this PortlHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this)\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context)\n super.setDisposeFn(() => this._viewContainerRef.clear())\n\n this._attachedPortal = portal\n this._attachedRef = viewRef\n this.attached.emit(viewRef)\n\n return viewRef\n }\n\n // static ngAcceptInputType_portal: Portal<any> | null | undefined | '';\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { IDashboardWidgetsItemDef } from './dashboard-widgets/dashboard-widgets-item'\n\n@Component({\n selector: 'seam-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardComponent {\n static ngAcceptInputType_val: BooleanInput\n\n @Input() widgets: IDashboardWidgetsItemDef[] | undefined | null\n @Input() @InputBoolean() widgetsDraggable: boolean = true\n\n constructor() { }\n\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\n\nimport { DashboardWidgetContainerComponent } from './dashboard-widget-container/dashboard-widget-container.component'\nimport {\n DashboardWidgetTemplateContainerComponent\n} from './dashboard-widget-template-container/dashboard-widget-template-container.component'\nimport { DashboardWidgetPortalOutletDirective } from './dashboard-widgets/dashboard-widget-portal-outlet.directive'\nimport { DashboardWidgetsComponent } from './dashboard-widgets/dashboard-widgets.component'\nimport { DashboardComponent } from './dashboard.component'\n\n@NgModule({\n declarations: [\n DashboardComponent,\n DashboardWidgetsComponent,\n DashboardWidgetContainerComponent,\n DashboardWidgetTemplateContainerComponent,\n DashboardWidgetPortalOutletDirective\n ],\n imports: [\n CommonModule,\n PortalModule,\n DragDropModule,\n TheSeamButtonsModule,\n TheSeamIconModule,\n TheSeamSharedModule\n ],\n exports: [\n DashboardComponent,\n DashboardWidgetsComponent,\n DashboardWidgetPortalOutletDirective\n ]\n})\nexport class TheSeamDashboardModule { }\n","import { hasProperty } from '@theseam/ui-common/utils'\n\nimport {\n ISideNavBasic,\n ISideNavButton,\n ISideNavDivider,\n ISideNavItem,\n ISideNavItemState,\n ISideNavLink,\n ISideNavTitle,\n SideNavItemCanHaveChildren,\n SideNavItemCanHaveState\n} from './side-nav.models'\n\nexport function isNavItemType(item: ISideNavItem, type: 'title'): item is ISideNavTitle\nexport function isNavItemType(item: ISideNavItem, type: 'divider'): item is ISideNavDivider\nexport function isNavItemType(item: ISideNavItem, type: 'basic'): item is ISideNavBasic\nexport function isNavItemType(item: ISideNavItem, type: 'link'): item is ISideNavLink\nexport function isNavItemType(item: ISideNavItem, type: 'button'): item is ISideNavButton\nexport function isNavItemType(item: ISideNavItem, type: string): item is ISideNavItem {\n return item.itemType === type\n}\n\nexport function isNavItemActive(item: ISideNavItem): boolean {\n return item.__state?.active ?? false\n}\n\nexport function isExpanded(item: ISideNavItem): boolean {\n return item.__state?.expanded ?? false\n}\n\nexport function hasChildren(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) & Required<SideNavItemCanHaveChildren> {\n return canHaveChildren(item) && hasProperty(item, 'children') && item.children.length > 0\n}\n\nexport function canHaveChildren(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return isNavItemType(item, 'basic') || isNavItemType(item, 'link')\n}\n\nexport function hasActiveChild(item: ISideNavItem): boolean {\n if (!hasChildren(item)) {\n return false\n }\n\n for (const child of item.children) {\n if (getItemStateProp(child, 'active')) {\n return true\n }\n }\n\n return false\n}\n\nexport function hasExpandedChild(item: ISideNavItem): boolean {\n if (!hasChildren(item)) {\n return false\n }\n\n for (const child of item.children) {\n if (getItemStateProp(child, 'expanded')) {\n return true\n }\n }\n\n return false\n}\n\nexport function canBeActive(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return isNavItemType(item, 'basic') || isNavItemType(item, 'link')\n}\n\nexport function canExpand(item: ISideNavItem): item is (ISideNavBasic | ISideNavLink) {\n return canHaveChildren(item)\n}\n\nexport function findLinkItems(items: ISideNavItem[]): ISideNavLink[] {\n const linkItems: ISideNavLink[] = []\n\n const _fn = (_items: ISideNavItem[]) => {\n for (const item of _items) {\n if (isNavItemType(item, 'link')) {\n linkItems.push(item)\n }\n if (canHaveChildren(item) && hasProperty(item, 'children')) {\n _fn(item.children)\n }\n }\n }\n _fn(items)\n\n return linkItems\n}\n\nexport function setItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K, value: ISideNavItemState[K]): void {\n if (hasProperty(item, '__state')) {\n item.__state[prop] = value\n }\n}\n\nexport function getItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K): ISideNavItemState[K] {\n return setDefaultState(item).__state[prop]\n}\n\nexport function setDefaultState(item: ISideNavItem): ISideNavItem & Required<SideNavItemCanHaveState> {\n if (hasProperty(item, '__state')) {\n return item\n }\n\n item.__state = {\n active: false,\n expanded: false\n }\n\n // TODO: See if there is a nice way to fix the typing for this.\n return item as any\n}\n","import { Injectable } from '@angular/core'\nimport { ActivatedRoute, IsActiveMatchOptions, NavigationEnd, Router, UrlCreationOptions } from '@angular/router'\nimport { BehaviorSubject, combineLatest, defer, Observable, of, Subject, Subscriber } from 'rxjs'\nimport { distinctUntilChanged, filter, map, shareReplay, startWith, switchMap, tap } from 'rxjs/operators'\n\nimport { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport {\n canExpand,\n findLinkItems,\n getItemStateProp,\n hasActiveChild,\n hasChildren,\n hasExpandedChild,\n isNavItemType,\n setDefaultState,\n setItemStateProp\n} from './side-nav-utils'\nimport { ISideNavItem, ISideNavItemState, ISideNavLink, SideNavItemStateChanged } from './side-nav.models'\n\n@Injectable()\nexport class TheSeamSideNavService {\n\n private readonly _updatingCount = new BehaviorSubject<number>(0)\n\n public readonly loading$: Observable<boolean>\n\n public readonly itemChanged = new Subject<SideNavItemStateChanged>()\n\n constructor(\n private readonly _router: Router\n ) {\n this.loading$ = this._updatingCount.pipe(\n map(count => count > 0),\n distinctUntilChanged(),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n\n public createItemsObservable(items: ISideNavItem[]): Observable<ISideNavItem[]> {\n return defer(() => {\n this.updateItemsStates(items)\n return new Observable((subscriber: Subscriber<ISideNavItem[]>) => {\n const stateChangeSub = this.itemChanged.pipe(\n switchMap(() => this.loading$.pipe(filter(loading => !loading)))\n ).subscribe(() => {\n subscriber.next(items)\n })\n\n try {\n this.updateItemsStates(items)\n } catch (err) {\n subscriber.error(err)\n }\n\n // const linkItems = findLinkItems(items)\n\n const routeChangeSub = this._router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n // ).subscribe(() => linkItems.forEach(itm => this.updateItemState(itm)))\n ).subscribe(() => {\n try {\n this.updateItemsStates(items)\n } catch (err) {\n subscriber.error(err)\n }\n })\n\n return () => {\n stateChangeSub.unsubscribe()\n routeChangeSub.unsubscribe()\n }\n }).pipe(startWith(items))\n })\n }\n\n private _incUpdatingCount(): void {\n this._updatingCount.next(this._updatingCount.value + 1)\n }\n\n private _decrUpdatingCount(): void {\n this._updatingCount.next(this._updatingCount.value - 1)\n }\n\n public updateItemsStates(items: ISideNavItem[]): void {\n this._incUpdatingCount()\n\n try {\n for (const item of items) {\n if (hasChildren(item)) {\n this.updateItemsStates(item.children)\n }\n\n this.updateItemState(item)\n }\n\n this._decrUpdatingCount()\n } catch (err) {\n this._decrUpdatingCount()\n throw err\n }\n }\n\n public updateItemState(item: ISideNavItem): void {\n this._incUpdatingCount()\n\n try {\n setDefaultState(item)\n\n if (isNavItemType(item, 'link')) {\n const url = this._getUrl(item)\n if (notNullOrUndefined(url)) {\n const opts = this._getMatchOptions(item)\n this.setItemStateProp(item, 'active', this._router.isActive(url, opts))\n }\n }\n\n // TODO: Implement this in a more optimized way. Unless our apps start\n // having large side-navs constantly updating their state, this shouldn't\n // have much impact on performance.\n this._updateItemExpandedState(item)\n\n this._decrUpdatingCount()\n } catch (err) {\n this._decrUpdatingCount()\n throw err\n }\n }\n\n private _updateItemsExpandedState(items: ISideNavItem[]): void {\n for (const item of items) {\n if (hasChildren(item)) {\n this._updateItemsExpandedState(item.children)\n }\n this._updateItemExpandedState(item)\n }\n }\n\n private _updateItemExpandedState(item: ISideNavItem): void {\n if (!canExpand(item)) {\n if (getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', false)\n }\n return\n }\n\n if (hasChildren(item)) {\n this._updateItemsExpandedState(item.children)\n }\n\n if (hasActiveChild(item) || hasExpandedChild(item)) {\n if (!getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', true)\n }\n } else {\n if (getItemStateProp(item, 'expanded')) {\n this.setItemStateProp(item, 'expanded', false)\n }\n }\n }\n\n private _getNavExtras(item: ISideNavLink): UrlCreationOptions {\n const navigationExtras: UrlCreationOptions = { }\n if (hasProperty(item, 'queryParams')) {\n navigationExtras.queryParams = item.queryParams\n }\n if (hasProperty(item, 'fragment')) {\n navigationExtras.fragment = item.fragment\n }\n if (hasProperty(item, 'queryParamsHandling')) {\n navigationExtras.queryParamsHandling = item.queryParamsHandling\n }\n if (hasProperty(item, 'preserveFragment')) {\n navigationExtras.preserveFragment = item.preserveFragment\n }\n return navigationExtras\n }\n\n private _getUrl(item: ISideNavLink): string | null {\n const link = item.link\n\n if (typeof link === 'string') {\n return this._router.createUrlTree([ link ], this._getNavExtras(item)).toString()\n } else if (Array.isArray(link)) {\n return this._router.createUrlTree(link, this._getNavExtras(item)).toString()\n }\n\n return null\n }\n\n private _getMatchOptions(item: ISideNavLink): IsActiveMatchOptions {\n const defaultMatchOpts: IsActiveMatchOptions = {\n paths: 'subset',\n queryParams: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored'\n }\n\n if (hasProperty(item, 'matchOptions')) {\n return {\n ...defaultMatchOpts,\n ...item.matchOptions\n }\n }\n\n return defaultMatchOpts\n }\n\n public setItemStateProp<K extends keyof ISideNavItemState>(item: ISideNavItem, prop: K, value: ISideNavItemState[K]): void {\n const currentValue = getItemStateProp(item, prop)\n if (currentValue !== value) {\n setItemStateProp(item, prop, value)\n\n const changed: SideNavItemStateChanged = {\n item,\n prop,\n prevValue: currentValue,\n newValue: value\n }\n this.itemChanged.next(changed)\n }\n }\n}\n","import {\n animate,\n animateChild,\n group,\n query,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations'\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Inject, Input, OnDestroy, OnInit, Optional, Output, TemplateRef, ViewContainerRef, ViewEncapsulation } from '@angular/core'\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router'\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, map, mapTo, pairwise, shareReplay, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { ITheSeamBaseLayoutNav, ITheSeamBaseLayoutRef, THESEAM_BASE_LAYOUT_REF } from '../base-layout/index'\n\nimport { ISideNavItem } from './side-nav.models'\nimport { TheSeamSideNavService } from './side-nav.service'\nimport { BaseLayoutSideBarFooterDirective } from '../base-layout/directives/base-layout-side-bar-footer.directive'\nimport { TemplatePortal } from '@angular/cdk/portal'\n\nconst EXPANDED_STATE = 'expanded'\nconst COLLAPSED_STATE = 'collapsed'\n\nconst EXPANDED_OVERLAY_STATE = 'expanded-overlay'\nconst COLLAPSED_OVERLAY_STATE = 'collapsed-overlay'\n\nconst EXPANDED_STATES = [ EXPANDED_STATE, EXPANDED_OVERLAY_STATE ]\nconst COLLAPSED_STATES = [ COLLAPSED_STATE, COLLAPSED_OVERLAY_STATE ]\nconst EXPAND_STATES = [ ...EXPANDED_STATES, ...COLLAPSED_STATES ]\n\nexport function sideNavExpandStateChangeFn(fromState: string, toState: string) {\n // console.log({ fromState, toState })\n return fromState !== toState &&\n (\n // NOTE: The current way the side nav is being used it causes the\n // component to sometimes get placed in the wrong location initially. It\n // is fast enough to not be noticed without an initial animation usually,\n // so it is commented out below until the initial placement issue it\n // fixed.\n //\n // (\n // fromState === 'void' && EXPAND_STATES.indexOf(toState) !== -1\n // ||\n // toState === 'void' && EXPAND_STATES.indexOf(fromState) !== -1\n // )\n // ||\n (\n (EXPANDED_STATES.indexOf(fromState) !== -1 && COLLAPSED_STATES.indexOf(toState) !== -1)\n ||\n (EXPANDED_STATES.indexOf(toState) !== -1 && COLLAPSED_STATES.indexOf(fromState) !== -1)\n )\n )\n}\n\n@Component({\n selector: 'seam-side-nav',\n templateUrl: './side-nav.component.html',\n styleUrls: ['./side-nav.component.scss'],\n providers: [\n TheSeamSideNavService\n ],\n animations: [\n\n //\n // TODO: This animation code turned into a mess. Clean it up and make it\n // more smooth.\n //\n\n trigger('sideNavAnim', [\n transition(sideNavExpandStateChangeFn, [\n group([\n query('@sideNavBackdrop', animateChild(), { optional: true }),\n query('@sideNavExpand', animateChild(), { optional: true }),\n ]),\n ]),\n ]),\n\n trigger('sideNavBackdrop', [\n state(EXPANDED_OVERLAY_STATE, style({ opacity: '1' })),\n state(COLLAPSED_OVERLAY_STATE, style({ opacity: '0' })),\n\n // transition((fromState, toState, element, params) => {\n // console.log('sideNavBackdrop v', fromState, toState, element, params)\n // return false\n // }, []),\n\n transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),\n ]),\n\n trigger('sideNavExpand', [\n // TODO: Make width configurable.\n state(EXPANDED_STATE, style({ width: '260px' })),\n state(COLLAPSED_STATE, style({ width: '50px', 'overflow-x': 'hidden' })),\n\n state(EXPANDED_OVERLAY_STATE, style({\n position: 'absolute',\n top: 0,\n height: '100%',\n bottom: 0,\n left: 0,\n float: 'left',\n zIndex: '9999',\n width: 'calc(100vw - 50px)',\n transform: 'translateX(0)'\n })),\n state(COLLAPSED_OVERLAY_STATE, style({\n position: 'absolute',\n top: 0,\n height: '100%',\n bottom: 0,\n left: 0,\n float: 'left',\n zIndex: '9999',\n width: 'calc(100vw - 50px)',\n transform: 'translateX(calc(-100vw + 50px))',\n 'overflow-x': 'hidden'\n })),\n\n // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),\n\n transition(sideNavExpandStateChangeFn, animate('0.2s ease-in-out')),\n\n // transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, [\n // // query(':leave', animateChild(), { optional: true }),\n // // query(':enter', animateChild(), { optional: true }),\n // group([\n // query(':leave', animateChild(), { optional: true }),\n // query(':enter', animateChild(), { optional: true }),\n // query('@compactAnim', animateChild(), { optional: true }),\n // animate('5.2s ease-in-out')\n // ])\n // ]),\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavComponent implements OnInit, OnDestroy, ITheSeamBaseLayoutNav {\n static ngAcceptInputType_hasHeaderToggle: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject()\n\n // @HostBinding('@sideNavExpand') _sideNavExpand = EXPANDED_STATE\n // _sideNavExpand = EXPANDED_STATE\n\n // @HostBinding('@sideNavAnim') _sideNavExpand = EXPANDED_STATE\n @HostBinding('@sideNavAnim') _sideNavExpand = 'initial'\n\n @Input() @InputBoolean() hasHeaderToggle = true\n\n @Input()\n get items(): ISideNavItem[] { return this._items.value }\n set items(value: ISideNavItem[]) { this._items.next(value) }\n private _items = new BehaviorSubject<ISideNavItem[]>([])\n public readonly items$: Observable<ISideNavItem[]>\n\n @Input()\n get expanded(): boolean { return this._expanded.value }\n set expanded(value: boolean) { this._expanded.next(coerceBooleanProperty(value)) }\n private _expanded = new BehaviorSubject<boolean>(true)\n public readonly expanded$ = this._expanded.asObservable().pipe(\n tap(expanded => this.toggleExpand.emit(expanded))\n )\n\n @Input()\n get overlay(): boolean { return this._overlay.value }\n set overlay(value: boolean) { this._overlay.next(coerceBooleanProperty(value)) }\n private _overlay = new BehaviorSubject<boolean>(false)\n public readonly overlay$ = this._overlay.asObservable()\n\n @Output() toggleExpand = new EventEmitter<boolean>()\n\n public readonly isMobile$: Observable<boolean>\n public readonly sideNavExpandedState$: Observable<string>\n public _backdropHidden = new BehaviorSubject<boolean>(true)\n\n @ContentChild(BaseLayoutSideBarFooterDirective, { static: true, read: TemplateRef }) _sideBarFooterTpl?: TemplateRef<any> | null\n _sideBarFooterPortal?: TemplatePortal\n\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _layout: TheSeamLayoutService,\n private readonly _sideNav: TheSeamSideNavService,\n @Optional() @Inject(THESEAM_BASE_LAYOUT_REF) private readonly _baseLayoutRef: ITheSeamBaseLayoutRef\n ) {\n this.items$ = this._items.asObservable().pipe(\n switchMap(items => this._sideNav.createItemsObservable(items)),\n shareReplay({ bufferSize: 1, refCount: true }),\n )\n\n this.isMobile$ = this._layout.isMobile$.pipe(\n tap(isMobile => isMobile && this.collapse())\n )\n\n this.sideNavExpandedState$ = combineLatest([ this.expanded$, this.overlay$ ]).pipe(\n map(([ expanded, overlay ]) => expanded\n ? overlay ? EXPANDED_OVERLAY_STATE : EXPANDED_STATE\n : overlay ? COLLAPSED_OVERLAY_STATE : COLLAPSED_STATE\n ),\n distinctUntilChanged()\n )\n }\n\n ngOnInit() {\n if (this._baseLayoutRef) { this._baseLayoutRef.registerNav(this) }\n\n this.isMobile$\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(b => this.overlay = b)\n\n this.sideNavExpandedState$\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => this._sideNavExpand = v)\n\n if (this._sideBarFooterTpl) {\n this._sideBarFooterPortal = new TemplatePortal(this._sideBarFooterTpl, this._viewContainerRef)\n }\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n if (this._baseLayoutRef) { this._baseLayoutRef.unregisterNav(this) }\n }\n\n public expand() {\n this.expanded = true\n }\n\n public collapse() {\n this.expanded = false\n }\n\n public toggle() {\n this.expanded = !this.expanded\n }\n\n public animateStart() {\n if (this.expanded) {\n this._backdropHidden.next(false)\n }\n }\n\n public animateEnd() {\n if (!this.expanded) {\n this._backdropHidden.next(true)\n }\n }\n\n}\n","import {\n animate,\n query,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations'\nimport { BooleanInput, coerceBooleanProperty, NumberInput } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n Component,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n Optional,\n SkipSelf,\n ViewEncapsulation\n} from '@angular/core'\nimport { BehaviorSubject, Observable, Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { faAngleLeft } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean, InputNumber } from '@theseam/ui-common/core'\nimport type { SeamIcon } from '@theseam/ui-common/icon'\nimport type { ThemeTypes } from '@theseam/ui-common/models'\n\nimport { SideNavComponent } from '../side-nav.component'\nimport { ISideNavItem } from '../side-nav.models'\n\nexport interface SideNavItemBadgeTooltip {\n tooltip?: string\n class?: string\n placement?: string\n container?: string\n disabled?: boolean\n}\n\nconst EXPANDED_STATE = 'expanded'\nconst COLLAPSED_STATE = 'collapsed'\n\nconst FULL_STATE = 'full'\nconst COMPACT_STATE = 'compact'\n\n@Component({\n selector: 'seam-side-nav-item',\n templateUrl: './side-nav-item.component.html',\n styleUrls: ['./side-nav-item.component.scss'],\n exportAs: 'seamSideNavItem',\n animations: [\n trigger('childGroupAnim', [\n state(EXPANDED_STATE, style({ height: '*' })),\n state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),\n transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),\n ]),\n\n\n trigger('compactAnim', [\n // transition('* <=> *', [\n // query(':enter', [\n // style({ opacity: '0' }),\n // animate('5.2s ease-in-out', style({ opacity: '1' }))\n // ], { optional: true }),\n // query(':leave', [\n // style({ opacity: '1' }),\n // animate('5.2s ease-in-out', style({ opacity: '0' }))\n // ], { optional: true })\n // ])\n\n // state(FULL_STATE, style({ opacity: '1' })),\n // state(COMPACT_STATE, style({ opacity: '0' })),\n // transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, animate('5.2s ease-in-out')),\n // transition(`${FULL_STATE} <=> ${COMPACT_STATE}`, [\n // transition('* <=> *', [\n // query(':leave', [\n // style({ opacity: '1' }),\n // animate('5.2s ease-in-out', style({ opacity: '0' }))\n // ], { optional: true })\n // ]),\n\n\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavItemComponent implements OnDestroy {\n static ngAcceptInputType_hierLevel: NumberInput\n static ngAcceptInputType_indentSize: NumberInput\n static ngAcceptInputType_expanded: BooleanInput\n static ngAcceptInputType_compact: BooleanInput\n static ngAcceptInputType_active: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject()\n\n readonly faAngleLeft = faAngleLeft\n\n @Input() itemType: 'divider' | 'basic' | 'link' | 'button' | 'title' | undefined | null\n\n @Input() icon: SeamIcon | undefined | null\n\n @Input() label: string | undefined | null\n\n @Input() @InputBoolean() active: boolean = false\n\n @Input()\n set link(value: string | undefined | null) { this._link.next(value) }\n get link() { return this._link.value }\n private readonly _link = new BehaviorSubject<string | undefined | null>(undefined)\n public readonly link$ = this._link.asObservable()\n\n @Input() queryParams: { [k: string]: any } | undefined | null\n\n @Input() children: ISideNavItem[] | undefined | null\n\n @Input() @InputNumber(0) hierLevel: number = 0\n\n @Input() @InputNumber(10) indentSize: number = 10\n\n @Input()\n set expanded(value: boolean) { this._expanded.next(coerceBooleanProperty(value)) }\n get expanded() { return this._expanded.value }\n private readonly _expanded = new BehaviorSubject<boolean>(false)\n public readonly expanded$ = this._expanded.asObservable()\n\n @Input()\n set compact(value: boolean) { this._compact.next(coerceBooleanProperty(value)) }\n get compact() { return this._compact.value }\n private readonly _compact = new BehaviorSubject<boolean>(false)\n public readonly compact$ = this._compact.asObservable()\n\n @Input() badgeText: string | undefined | null\n @Input() badgeTheme: ThemeTypes | undefined | null = 'danger'\n\n /**\n * Content to provide to assistive technology, such as screen readers.\n */\n @Input() badgeSrContent: string | undefined | null\n\n @Input()\n get badgeTooltip() { return this._badgeTooltip }\n set badgeTooltip(value: string | SideNavItemBadgeTooltip | undefined | null) {\n if (value !== null && value !== undefined) {\n if (typeof value === 'string') {\n this._badgeTooltip = {\n tooltip: value,\n placement: 'auto',\n disabled: false\n }\n } else {\n this._badgeTooltip = {\n ...value,\n placement: value.placement || 'auto',\n disabled: typeof value?.disabled === 'boolean'\n ? value.disabled\n : typeof value.tooltip === 'string' ? false : true\n }\n }\n } else {\n this._badgeTooltip = undefined\n }\n }\n private _badgeTooltip: SideNavItemBadgeTooltip | undefined | null\n\n @HostBinding('class.seam-side-nav-item--active') get _isActiveCssClass() { return this.active }\n\n @HostBinding('attr.data-hier-level') get _attrDataHierLevel() { return this.hierLevel }\n\n public readonly childGroupAnimState$: Observable<string>\n public readonly compactAnimState$: Observable<string>\n\n constructor(\n private readonly _sideNav: SideNavComponent,\n @Optional() @SkipSelf() @Host() private readonly _parent?: SideNavItemComponent\n ) {\n this.childGroupAnimState$ = this.expanded$\n .pipe(map(expanded => expanded ? EXPANDED_STATE : COLLAPSED_STATE))\n\n this.compactAnimState$ = this.compact$\n .pipe(map(compact => compact ? COMPACT_STATE : FULL_STATE))\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n get hasChildren() {\n return Array.isArray(this.children) && this.children.length > 0\n }\n\n public toggleChildren(): void {\n this.expanded = !this.expanded\n }\n\n _linkClicked() {\n // Close nav when link is clicked while in overlay state\n if (this._sideNav.overlay) {\n this._sideNav.collapse()\n }\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core'\n\nimport { faBars } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\n@Component({\n selector: 'seam-side-nav-toggle',\n templateUrl: './side-nav-toggle.component.html',\n styleUrls: ['./side-nav-toggle.component.scss'],\n host: {\n '[class.side-nav-toggle--compact]': '!expanded'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class SideNavToggleComponent implements OnInit {\n static ngAcceptInputType_expanded: BooleanInput\n\n faBars = faBars\n\n @Input() @InputBoolean() expanded = false\n\n @Output() toggleExpand = new EventEmitter<void>()\n\n constructor() { }\n\n ngOnInit() { }\n\n toggle() {\n this.toggleExpand.emit()\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal'\nimport { A11yModule } from '@angular/cdk/a11y'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'\n\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamLayoutModule } from '@theseam/ui-common/layout'\nimport { TheSeamScrollbarModule } from '@theseam/ui-common/scrollbar'\n\nimport { SideNavItemComponent } from './side-nav-item/side-nav-item.component'\nimport { SideNavToggleComponent } from './side-nav-toggle/side-nav-toggle.component'\nimport { SideNavComponent } from './side-nav.component'\n\n@NgModule({\n declarations: [\n SideNavItemComponent,\n SideNavComponent,\n SideNavToggleComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n TheSeamIconModule,\n A11yModule,\n TheSeamScrollbarModule,\n TheSeamLayoutModule,\n NgbTooltipModule,\n PortalModule\n ],\n exports: [\n SideNavItemComponent,\n SideNavComponent,\n SideNavToggleComponent\n ]\n})\nexport class TheSeamSideNavModule { }\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnDestroy, OnInit, TemplateRef, ViewEncapsulation } from '@angular/core'\n\nimport { faAngleDown } from '@fortawesome/free-solid-svg-icons'\n\nimport { CanDisableCtor, InputBoolean, mixinDisabled } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nclass TopBarMenuButtonBase {}\n\nconst _TopBarMenuButtonMixinBase: CanDisableCtor & typeof TopBarMenuButtonBase =\n mixinDisabled(TopBarMenuButtonBase)\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'button[seamTopBarMenuButton]',\n templateUrl: './top-bar-menu-button.component.html',\n styleUrls: ['./top-bar-menu-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'seamButton',\n // tslint:disable-next-line:use-input-property-decorator\n inputs: [ 'disabled' ],\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'attr.type': 'button',\n 'class': 'btn border text-decoration-none py-0',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopBarMenuButtonComponent extends _TopBarMenuButtonMixinBase implements OnInit, OnDestroy {\n static ngAcceptInputType_compact: BooleanInput\n\n faAngleDown = faAngleDown\n\n @Input() detailTpl: TemplateRef<{}> | undefined | null\n\n @Input() @InputBoolean() compact: boolean = false\n\n /** Icon to display on mobile to activate profile dropdown. Defaults to faUserCircle. */\n @Input() profileIcon: SeamIcon | undefined | null\n\n @HostBinding('class.top-bar-menu-button--compact') get _hasCompactClass() { return this.compact }\n @HostBinding('class.p-0') get _hasPadding0Class() { return this.compact }\n @HostBinding('class.rounded') get _hasRoundedClass() { return this.compact }\n @HostBinding('class.btn-link') get _hasBtnLinkClass() { return !this.compact }\n\n ngOnInit() { }\n\n ngOnDestroy() { }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core'\n\n@Component({\n selector: 'seam-top-bar-title',\n templateUrl: './top-bar-title.component.html',\n styleUrls: ['./top-bar-title.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopBarTitleComponent implements OnInit {\n\n @Input() titleText: string | undefined | null\n @Input() subTitleText: string | undefined | null\n\n constructor() { }\n\n ngOnInit() { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTopBarItem]'\n})\nexport class TopBarItemDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamTopBarMenuBtnDetail]'\n})\nexport class TopBarMenuBtnDetailDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, Self } from '@angular/core'\n\nimport { MenuComponent } from '@theseam/ui-common/menu'\n\n@Directive({\n selector: 'seam-menu[seamTopBarMenu]'\n})\nexport class TopBarMenuDirective {\n\n constructor(\n @Self() public menu: MenuComponent\n ) { }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n ViewEncapsulation\n} from '@angular/core'\nimport { Observable, Subject } from 'rxjs'\nimport { map, shareReplay, startWith, takeUntil } from 'rxjs/operators'\n\nimport { faBars } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { TheSeamLayoutService } from '@theseam/ui-common/layout'\n\nimport { TopBarItemDirective } from './top-bar-item.directive'\nimport { TopBarMenuBtnDetailDirective } from './top-bar-menu-btn-detail.directive'\nimport { TopBarMenuDirective } from './top-bar-menu.directive'\nimport { SeamIcon } from '@theseam/ui-common/icon'\nimport { faUserCircle } from '@fortawesome/free-regular-svg-icons'\n\n/**\n * Top bar of an app.\n *\n * The top bar is fairly opinionated, so most parts are not intended to be\n * customized unless there is an input.\n *\n * > If you have to make a change and apply it externally with a css class or js\n * > make sure there is an issue to get the feature changed, so we don't have\n * > different modifications across our apps. Also, this will help make sure\n * > your change should have even been done.\n */\n@Component({\n selector: 'seam-top-bar',\n templateUrl: './top-bar.component.html',\n styleUrls: ['./top-bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'seamTopBar',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamTopBarComponent implements OnInit, OnDestroy, AfterContentInit {\n static ngAcceptInputType_hasTitle: BooleanInput\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n /** @ignore */\n faBars = faBars\n\n /** @ignore */\n @ContentChild(TopBarMenuDirective, { static: true }) _topBarMenu?: TopBarMenuDirective | null\n /** @ignore */\n @ContentChildren(TopBarItemDirective) _topBarItems?: QueryList<TopBarItemDirective>\n /** @ignore */\n @ContentChild(TopBarMenuBtnDetailDirective) _topBarMenuBtnDetailTpl?: TopBarMenuBtnDetailDirective | null\n\n /** Logo displayed on the top bar. */\n @Input() logo: string | undefined | null\n /** Logo displayed on the top bar when a smaller logo is needed. */\n @Input() logoSm: string | undefined | null\n\n /** External url to link to when `logo` is clicked. */\n @Input() logoHref?: string | null\n\n /** Link target used when `logoHref` is specified. Defaults to `\"_blank\"` */\n @Input() logoHrefTarget: string = '_blank'\n\n /** Route to link to when `logo` is clicked. Defaults to `/`. */\n @Input() logoRoute: string = '/'\n\n /** Determines if the title should be displayed. */\n @Input() @InputBoolean() hasTitle: boolean = false\n\n /** Title text displayed when `hasTitle` is true. */\n @Input() titleText: string | undefined | null\n\n /** Sub Title text displayed when `hasTitle` is true. The sub title will be less prominent. */\n @Input() subTitleText: string | undefined | null\n\n /** Icon to display on mobile to activate profile dropdown. Defaults to faUserCircle. */\n @Input() profileIcon: SeamIcon | undefined | null = faUserCircle\n\n /** @ignore */\n _items$?: Observable<TopBarItemDirective[]>\n\n /** @ignore */\n isMobile$: Observable<boolean>\n\n constructor(\n private _layout: TheSeamLayoutService\n ) {\n this.isMobile$ = this._layout.isMobile$\n }\n\n /** @ignore */\n ngOnInit() { }\n\n /** @ignore */\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n /** @ignore */\n ngAfterContentInit() {\n if (this._topBarItems) {\n this._items$ = this._topBarItems.changes.pipe(\n startWith(undefined),\n takeUntil(this._ngUnsubscribe),\n map(() => this._topBarItems?.toArray() || []),\n shareReplay({ bufferSize: 1, refCount: true })\n )\n }\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamLayoutModule } from '@theseam/ui-common/layout'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\nimport { TheSeamBaseLayoutModule } from '../base-layout/index'\n\nimport { TopBarItemDirective } from './top-bar-item.directive'\nimport { TopBarMenuBtnDetailDirective } from './top-bar-menu-btn-detail.directive'\nimport { TopBarMenuButtonComponent } from './top-bar-menu-button/top-bar-menu-button.component'\nimport { TopBarMenuDirective } from './top-bar-menu.directive'\nimport { TopBarTitleComponent } from './top-bar-title/top-bar-title.component'\nimport { TheSeamTopBarComponent } from './top-bar.component'\n\n@NgModule({\n declarations: [\n TheSeamTopBarComponent,\n TopBarTitleComponent,\n TopBarMenuButtonComponent,\n TopBarMenuDirective,\n TopBarItemDirective,\n TopBarMenuBtnDetailDirective\n ],\n imports: [\n CommonModule,\n TheSeamLayoutModule,\n TheSeamButtonsModule,\n TheSeamIconModule,\n TheSeamMenuModule,\n TheSeamBaseLayoutModule,\n RouterModule\n ],\n exports: [\n TheSeamTopBarComponent,\n TopBarMenuButtonComponent,\n TopBarMenuDirective,\n TheSeamMenuModule,\n TopBarItemDirective,\n TopBarMenuBtnDetailDirective\n ]\n})\nexport class TheSeamTopBarModule { }\n","import {\n animate,\n animateChild,\n group,\n keyframes,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations'\n\n\nexport const fader =\n trigger('routeAnimations', [\n transition('* <=> *', [\n // Set a default style for enter and leave\n query(':enter, :leave', [\n style({\n position: 'absolute',\n left: 0,\n width: '100%',\n opacity: 0,\n transform: 'scale(0) translateY(100%)',\n }),\n ], { optional: true }),\n // Animate the new page in\n query(':enter', [\n animate('600ms ease', style({ opacity: 1, transform: 'scale(1) translateY(0)' })),\n ], { optional: true })\n ]),\n ])\n\n\n// function slideTo(direction) {\n// return [\n// query(':enter, :leave', [\n// style({\n// position: 'absolute',\n// top: 0,\n// [direction]: 0,\n// width: '100%'\n// })\n// ], { optional: true }),\n// query(':enter', [\n// style({ [direction]: '-100%'})\n// ], { optional: true }),\n// group([\n// query(':leave', [\n// animate('1000ms ease', style({ [direction]: '100%'}))\n// ], { optional: true }),\n// query(':enter', [\n// animate('1000ms ease', style({ [direction]: '0%'}))\n// ], { optional: true })\n// ]),\n// // Normalize the page style... Might not be necessary\n\n// // Required only if you have child animations on the page\n// query(':leave', animateChild(), { optional: true }),\n// query(':enter', animateChild(), { optional: true }),\n// ]\n// }\n\n// TODO: Refactor the slider animation, because AOT or ng-packagr, I haven't\n// looked into what exactly is preventing it, doesn't allow the function call.\n// export const slider =\n// trigger('routeAnimations', [\n// transition('* => isLeft', slideTo('left') ),\n// transition('* => isRight', slideTo('right') ),\n// transition('isRight => *', slideTo('left') ),\n// transition('isLeft => *', slideTo('right') )\n// ])\n\n// export const contentLeave =\n// trigger('contentLeave', [\n// transition(':leave', [\n\n// ])\n// ])\n\nexport const slider =\n trigger('routeAnimations', [\n transition('* => isLeft', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ left: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ left: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ left: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('* => isRight', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ right: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ right: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ right: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('isRight => *', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ left: '-100%'})\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n style({ left: '0%', position: 'absolute' })\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ left: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ left: '0%'}))\n ], { optional: true }),\n query('.hierarchy-router-outlet--content', [\n animate('1000ms ease', style({ left: '-100%'}))\n ], { optional: true }),\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ]),\n transition('isLeft => *', [\n query('.router-container :enter, .router-container :leave', [\n style({\n position: 'absolute',\n top: 0,\n right: 0,\n width: '100%'\n })\n ], { optional: true }),\n query('.router-container :enter', [\n style({ right: '-100%'})\n ], { optional: true }),\n group([\n query('.router-container :leave', [\n animate('1000ms ease', style({ right: '100%'}))\n ], { optional: true }),\n query('.router-container :enter', [\n animate('1000ms ease', style({ right: '0%'}))\n ], { optional: true })\n ]),\n // Normalize the page style... Might not be necessary\n\n // Required only if you have child animations on the page\n query('.router-container :leave', animateChild(), { optional: true }),\n query('.router-container :enter', animateChild(), { optional: true }),\n ])\n ])\n\n\nexport const transformer =\n trigger('routeAnimations', [\n transition('* => isLeft', transformTo({ x: -100, y: -100, rotate: -720 }) ),\n transition('* => isRight', transformTo({ x: 100, y: -100, rotate: 90 }) ),\n transition('isRight => *', transformTo({ x: -100, y: -100, rotate: 360 }) ),\n transition('isLeft => *', transformTo({ x: 100, y: -100, rotate: -360 }) )\n])\n\nfunction transformTo({x = 100, y = 0, rotate = 0}) {\n const optional = { optional: true }\n return [\n query(':enter, :leave', [\n style({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%'\n })\n ], optional),\n query(':enter', [\n style({ transform: `translate(${x}%, ${y}%) rotate(${rotate}deg)`})\n ], { optional: true }),\n group([\n query(':leave', [\n animate('600ms ease-out', style({ transform: `translate(${x}%, ${y}%) rotate(${rotate}deg)`}))\n ], optional),\n query(':enter', [\n animate('600ms ease-out', style({ transform: `translate(0, 0) rotate(0)`}))\n ], { optional: true })\n ]),\n ]\n}\n\n\nexport const stepper =\n trigger('routeAnimations', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n position: 'absolute',\n left: 0,\n width: '100%',\n }),\n ], { optional: true }),\n group([\n query(':enter', [\n animate('2000ms ease', keyframes([\n style({ transform: 'scale(0) translateX(100%)', offset: 0 }),\n style({ transform: 'scale(0.5) translateX(25%)', offset: 0.3 }),\n style({ transform: 'scale(1) translateX(0%)', offset: 1 }),\n ])),\n ], { optional: true }),\n query(':leave', [\n animate('2000ms ease', keyframes([\n style({ transform: 'scale(1)', offset: 0 }),\n style({ transform: 'scale(0.5) translateX(-25%) rotate(0)', offset: 0.35 }),\n style({ opacity: 0, transform: 'translateX(-50%) rotate(-180deg) scale(6)', offset: 1 }),\n ])),\n ], { optional: true })\n ]),\n ])\n ])\n\n\nexport const sideToSide = trigger('routeAnimations', [\n transition('* => *', [\n style({\n position: 'fixed',\n width: '100%',\n transform: 'translateX(-100%)'\n }),\n animate('1000ms ease', style({ transform: 'translateX(0%)' }))\n ]),\n transition(':leave', [\n style({\n position: 'fixed',\n width: '100%',\n transform: 'translateX(0%)'\n }),\n animate('1000ms ease', style({ transform: 'translateX(-100%)' }))\n ])\n])\n","import { ChangeDetectionStrategy, Component, HostBinding, OnDestroy, OnInit } from '@angular/core'\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Router, RouterOutlet } from '@angular/router'\nimport { combineLatest, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { fader, sideToSide, slider, stepper, transformer } from './hierarchy-route-animations'\n\nexport function routeChanges(router: Router) {\n return router.events.pipe(\n filter(event => event instanceof NavigationStart || event instanceof NavigationEnd),\n distinctUntilChanged((x: any, y: any) => x.id === y.id),\n map(event => ({ url: event.url }))\n )\n}\n\n\n//\n// TODO: Animation improvement: Try adding a full component animation that\n// queries the <ng-content> and <router-outlet> blocks. When the outlet\n// activates, set the animation state to a transition that moves both blocks\n// together.\n//\n\n\nlet _uid = 0\n\n@Component({\n selector: 'seam-hierarchy-router-outlet',\n templateUrl: './hierarchy-router-outlet.component.html',\n styleUrls: ['./hierarchy-router-outlet.component.scss'],\n animations: [\n // fader,\n slider,\n // transformer,\n // stepper,\n // sideToSide\n // contentLeave\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HierarchyRouterOutletComponent implements OnInit, OnDestroy {\n\n private _uid = _uid++\n\n private readonly _ngUnsubscribe = new Subject()\n\n animState = 'isRight'\n // animState = ''\n\n outletActive = false\n\n ngContentVisible = true\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router\n ) {\n this._router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n // tap(v => console.log(`_hasChildren()[${this._uid}]`, this._hasChildren())),\n takeUntil(this._ngUnsubscribe)\n )\n .subscribe()\n\n // routeChanges(this._router)\n // .pipe(\n // untilDestroyed(this),\n // tap(() => {\n // // if (this._hasChildren()) {\n // // this.animState = 'isLeft'\n // // } else {\n // // this.animState = 'isRight'\n // // }\n // })\n // )\n // .subscribe(v => console.log(`routeChanges[${this._uid}]`, v))\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _hasChildren() {\n const count = this._route.pathFromRoot.length - 1\n let countFull = 0\n if (this._router.parseUrl(this._router.url).root.children.primary) {\n countFull = this._router.parseUrl(this._router.url).root.children.primary.segments.length\n }\n // console.log(`_hasChildren[${this._uid}]`, { count, countFull })\n return countFull > count\n }\n\n prepareRoute(outlet: RouterOutlet) {\n // console.log(`outlet[${this._uid}]`, outlet, this.animState, this._hasChildren(), this.outletActive)\n if (outlet.isActivated) {\n // console.log(outlet.isActivated)\n // console.log(outlet.component)\n console.log(this.animState)\n return this.animState\n } else {\n return undefined\n }\n // console.log(`prepareRoute[${this._uid}]`, this.animState, this._hasChildren())\n // console.log('activatedRouteData', outlet && outlet.activatedRouteData)\n // if (outlet && outlet.isActivated) {\n // console.log('activatedRoute', outlet.activatedRoute && outlet.activatedRoute.snapshot.url)\n // }\n // return outlet && outlet.activatedRouteData && outlet.activatedRouteData['animation']\n // console.log('')\n // return this.animState\n }\n\n outletActivate(event: any) {\n // console.log(`outletActivate[${this._uid}]`, event)\n this.outletActive = true\n }\n\n outletDeactivate(event: any) {\n // console.log(`outletDeactivate[${this._uid}]`, event)\n this.outletActive = false\n }\n\n routeAnimationsStart(event: any) {\n // console.log('routeAnimationsStart', event)\n this.ngContentVisible = true\n }\n\n routeAnimationsDone(event: any) {\n // console.log('routeAnimationsDone', event)\n this.ngContentVisible = !this.outletActive\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'\nimport { Observable } from 'rxjs'\nimport { map, take } from 'rxjs/operators'\n\n@Injectable({ providedIn: 'root' })\nexport class HierarchyLevelResolver implements Resolve<number> {\n\n constructor() {}\n\n resolve(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<number> | Promise<number> | number {\n // console.log('[HierarchyLevelResolver]', route)\n // console.log('[HierarchyLevelResolver]', state)\n return this._getMaxHierLevel(route)\n }\n\n private _getMaxHierLevel(route: ActivatedRouteSnapshot) {\n let curr = route\n while (curr.parent) {\n curr = curr.parent\n if (curr.data['hierLevel']) {\n return curr.data['hierLevel'] + 1\n }\n }\n\n return 0\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { HierarchyRouterOutletComponent } from './hierarchy-router-outlet/hierarchy-router-outlet.component'\n\n\n\n@NgModule({\n declarations: [\n HierarchyRouterOutletComponent\n ],\n imports: [\n CommonModule,\n RouterModule\n ],\n exports: [\n HierarchyRouterOutletComponent\n ]\n})\nexport class TheSeamDynamicRouterModule { }\n","import { Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-checkbox',\n templateUrl: './schema-form-checkbox.component.html',\n styleUrls: ['./schema-form-checkbox.component.scss']\n})\nexport class TheSeamSchemaFormCheckboxComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n trueValue: any = true\n falseValue: any = false\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n }\n\n updateValue(event: any) {\n event.preventDefault()\n this.jsf.updateValue(this, event.target.checked ? this.trueValue : this.falseValue)\n }\n\n get isChecked() {\n return this.jsf.getFormControlValue(this) === this.trueValue\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-input',\n templateUrl: './schema-form-input.component.html',\n styleUrls: ['./schema-form-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormInputComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue?: string\n controlDisabled = false\n boundControl = false\n options: any\n autoCompleteList: string[] = []\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.target.value)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-number',\n templateUrl: './schema-form-number.component.html',\n styleUrls: ['./schema-form-number.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormNumberComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n allowNegative = true\n allowDecimal = true\n allowExponents = false\n lastValidNumber = ''\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (this.layoutNode.dataType === 'integer') { this.allowDecimal = false }\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.target.value)\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { buildTitleMap, isArray, JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-select',\n templateUrl: './schema-form-select.component.html',\n styleUrls: ['./schema-form-select.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormSelectComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n selectList: any[] = []\n isArray = isArray\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.selectList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, !!this.options.required, !!this.options.flatList\n )\n\n this.jsf.initializeControl(this)\n }\n\n updateValue(event: any) {\n this.jsf.updateValue(this, event.value)\n }\n\n}\n","import { Component, Input, isDevMode, OnDestroy, OnInit } from '@angular/core'\nimport { AbstractControl, FormControl } from '@angular/forms'\nimport { Subject } from 'rxjs'\n\nimport { buildTitleMap, hasOwn, JsonSchemaFormService, TitleMapItem } from '@ajsf/core'\n\nimport { observeControlStatus, observeControlValue } from '@theseam/ui-common/utils'\nimport { takeUntil } from 'rxjs/operators'\n\n// NOTE: This is aliasing TitleMapItem, because we may want to extend it's\n// options. For simplicity, I am letting this work similar to a 'select' widget.\nexport type TheSeamSchemaFormSubmitSplitItem = TitleMapItem\n\n// NOTE: This component is a little hacky, because I am basically creating a\n// data widget that acts like a data and 'submit' widget at the same time.\n//\n// TODO: Try and think of a nicer way to implement this, but still make sense\n// from a schema definition. The library may need to me forked to actually\n// support this in the way I expect, but maybe there is another way.\n@Component({\n selector: 'seam-schema-form-submit-split',\n templateUrl: './schema-form-submit-split.component.html',\n styleUrls: ['./schema-form-submit-split.component.scss'],\n // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TheSeamSchemaFormSubmitSplitComponent implements OnInit, OnDestroy {\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n _buttonLabel = ''\n\n _dropdownObj: any\n _dropdownDisabled = false\n _selectList: TheSeamSchemaFormSubmitSplitItem[] = []\n _selectedItem?: TheSeamSchemaFormSubmitSplitItem\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n /** @ignore */\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n\n // NOTE: This is commented out, because there is a bug with submit widgets\n // manually defined in layout. All nodes initialized from the provided\n // layout have their options populated from the defaults and 'disabled' is\n // on of the default properties, so the 'disableInvalidSubmit' condition\n // never gets reached.\n //\n // My initial idea for fixing would be to check if the disabled property\n // exists and is a boolean, or possibly anything defined that can coerce\n // into a boolean. I can't think of a reason disabled should be anything\n // else, so that may be an acceptable fix, but I don't want to enable that\n // yet.\n //\n // if (hasOwn(this.options, 'disabled')) {\n // console.log('[TheSeamSchemaFormSubmitSplitComponent] hasDisabled', this.options.disabled)\n // this.controlDisabled = this.options.disabled\n // } else\n if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid)\n }\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n\n if (hasOwn(this.options, 'title')) {\n this._buttonLabel = this.options.title\n }\n\n this._initDropdown()\n\n // console.log('this', this)\n }\n\n /** @ignore */\n ngOnDestroy(): void {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n updateValue(event: any) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event)\n } else {\n this.jsf.updateValue(this, event.target.value)\n }\n }\n\n private _initDropdown(): void {\n if (!hasOwn(this.layoutNode, 'items') || !(this.layoutNode.items || []).length) {\n return\n }\n\n if (isDevMode()) {\n if (this.layoutNode.items.length > 1) {\n console.warn(\n `TheSeamSchemaFormSubmitSplitComponent only supports one item.` +\n ` items after index 0 will be ignored.`\n )\n }\n }\n\n const idx = 0\n const item = this.layoutNode.items[idx]\n this._dropdownObj = {\n layoutNode: item,\n layoutIndex: (this.layoutIndex || []).concat(idx),\n dataIndex: this.layoutNode?.dataType === 'array' ? (this.dataIndex || []).concat(idx) : this.dataIndex,\n\n options: item.options || {}\n }\n\n this.jsf.initializeControl(this._dropdownObj)\n\n\n const items = buildTitleMap(\n this._dropdownObj.options.titleMap || this._dropdownObj.options.enumNames,\n this._dropdownObj.options.enum,\n !!this._dropdownObj.options.required,\n !!this._dropdownObj.options.flatList\n )\n\n this._selectList = items\n\n // TODO: Should this be checking if the control is bound?\n const dropdownControl = this._getDropdownControl()\n if (!dropdownControl) {\n return\n }\n\n observeControlValue(dropdownControl).pipe(\n takeUntil(this._ngUnsubscribe)\n ).subscribe(value => {\n this._setSelectListCheckedProp(value)\n this._selectedItem = this._getSelectedItem()\n })\n\n observeControlStatus(dropdownControl).pipe(\n takeUntil(this._ngUnsubscribe)\n ).subscribe(value => {\n this._dropdownDisabled = dropdownControl.disabled\n })\n }\n\n private _getDropdownControl(): FormControl | undefined {\n return this._dropdownObj.formControl as FormControl\n }\n\n private _setSelectListCheckedProp(value: any) {\n const items = this._selectList\n for (const item of items) {\n if (item.value === value) {\n item.checked = true\n } else if (item.checked) {\n item.checked = false\n }\n }\n this._selectList = [ ...items ]\n }\n\n private _getSelectedItem(): TheSeamSchemaFormSubmitSplitItem | undefined {\n return (this._selectList || []).find(x => x.checked === true)\n }\n\n _setDropdownValue(value: any) {\n const formControl = this._getDropdownControl()\n formControl?.setValue(value)\n }\n\n}\n","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'seam-schema-form-framework',\n templateUrl: './schema-form-framework.component.html',\n styleUrls: ['./schema-form-framework.component.scss']\n})\nexport class TheSeamSchemaFormFrameworkComponent {\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n}\n","import { Injectable } from '@angular/core'\n\nimport { Framework } from '@ajsf/core'\n\nimport { TheSeamSchemaFormCheckboxComponent } from '../schema-form-controls/schema-form-checkbox/schema-form-checkbox.component'\nimport { TheSeamSchemaFormInputComponent } from '../schema-form-controls/schema-form-input/schema-form-input.component'\nimport { TheSeamSchemaFormNumberComponent } from '../schema-form-controls/schema-form-number/schema-form-number.component'\nimport { TheSeamSchemaFormSelectComponent } from '../schema-form-controls/schema-form-select/schema-form-select.component'\nimport { TheSeamSchemaFormSubmitSplitComponent } from '../schema-form-controls/schema-form-submit-split/schema-form-submit-split.component'\nimport { TheSeamSchemaFormSubmitComponent } from '../schema-form-controls/schema-form-submit/schema-form-submit.component'\n\nimport { TheSeamSchemaFormFrameworkComponent } from './schema-form-framework.component'\n\n@Injectable()\nexport class TheSeamFramework extends Framework {\n name = 'seam-framework'\n\n framework = TheSeamSchemaFormFrameworkComponent\n\n widgets = {\n 'checkbox': TheSeamSchemaFormCheckboxComponent,\n // 'submit': TheSeamSchemaFormSubmitComponent,\n 'submit': TheSeamSchemaFormSubmitSplitComponent,\n 'text': TheSeamSchemaFormInputComponent,\n 'number': TheSeamSchemaFormNumberComponent,\n 'select': TheSeamSchemaFormSelectComponent\n }\n}\n","import { Component, Input, OnInit } from '@angular/core'\nimport { AbstractControl } from '@angular/forms'\n\nimport { hasOwn, JsonSchemaFormService } from '@ajsf/core'\n\n@Component({\n selector: 'seam-schema-form-submit',\n templateUrl: './schema-form-submit.component.html',\n styles: []\n})\nexport class TheSeamSchemaFormSubmitComponent implements OnInit {\n\n formControl?: AbstractControl\n controlName?: string\n controlValue: any\n controlDisabled = false\n boundControl = false\n options: any\n\n @Input() layoutNode: any\n @Input() layoutIndex: number[] | undefined | null\n @Input() dataIndex: number[] | undefined | null\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {}\n this.jsf.initializeControl(this)\n if (hasOwn(this.options, 'disabled')) {\n this.controlDisabled = this.options.disabled\n } else if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid)\n }\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = this.options.title\n }\n }\n\n updateValue(event: any) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event)\n } else {\n this.jsf.updateValue(this, event.target.value)\n }\n }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { JsonSchemaFormModule } from '@ajsf/core'\nimport { NgSelectModule } from '@ng-select/ng-select'\n\nimport { TheSeamButtonsModule } from '@theseam/ui-common/buttons'\nimport { TheSeamCheckboxModule } from '@theseam/ui-common/checkbox'\nimport { TheSeamFormFieldModule } from '@theseam/ui-common/form-field'\nimport { TheSeamMenuModule } from '@theseam/ui-common/menu'\n\nimport { TheSeamSchemaFormCheckboxComponent } from './schema-form-checkbox/schema-form-checkbox.component'\nimport { TheSeamSchemaFormInputComponent } from './schema-form-input/schema-form-input.component'\nimport { TheSeamSchemaFormNumberComponent } from './schema-form-number/schema-form-number.component'\nimport { TheSeamSchemaFormSelectComponent } from './schema-form-select/schema-form-select.component'\nimport { TheSeamSchemaFormSubmitSplitComponent } from './schema-form-submit-split/schema-form-submit-split.component'\nimport { TheSeamSchemaFormSubmitComponent } from './schema-form-submit/schema-form-submit.component'\n\nconst controls = [\n TheSeamSchemaFormCheckboxComponent,\n TheSeamSchemaFormSubmitComponent,\n TheSeamSchemaFormSelectComponent,\n TheSeamSchemaFormInputComponent,\n TheSeamSchemaFormNumberComponent,\n TheSeamSchemaFormSubmitSplitComponent\n]\n\n@NgModule({\n declarations: [\n ...controls\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n JsonSchemaFormModule,\n TheSeamFormFieldModule,\n TheSeamCheckboxModule,\n TheSeamMenuModule,\n TheSeamButtonsModule,\n NgSelectModule\n ],\n exports: [\n ...controls,\n JsonSchemaFormModule\n ],\n entryComponents: [\n ...controls\n ]\n})\nexport class TheSeamSchemaFormControlsModule { }\n","import { CommonModule } from '@angular/common'\nimport { Directive, NgModule } from '@angular/core'\n\nimport {\n Framework,\n FrameworkLibraryService,\n JsonSchemaFormModule,\n JsonSchemaFormService,\n WidgetLibraryModule, WidgetLibraryService\n} from '@ajsf/core'\n\nimport { TheSeamSchemaFormControlsModule } from '../schema-form-controls/schema-form-controls.module'\nimport { TheSeamFramework } from './schema-form-framework'\nimport { TheSeamSchemaFormFrameworkComponent } from './schema-form-framework.component'\n\n@NgModule({\n declarations: [\n TheSeamSchemaFormFrameworkComponent\n ],\n imports: [\n CommonModule,\n JsonSchemaFormModule,\n TheSeamSchemaFormControlsModule,\n WidgetLibraryModule,\n ],\n providers: [\n JsonSchemaFormService,\n FrameworkLibraryService,\n WidgetLibraryService,\n { provide: Framework, useClass: TheSeamFramework, multi: true }\n ],\n exports: [\n TheSeamSchemaFormFrameworkComponent,\n JsonSchemaFormModule\n ],\n entryComponents: [\n TheSeamSchemaFormFrameworkComponent\n ]\n})\nexport class TheSeamSchemaFormModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {BaseLayoutSideBarFooterDirective as ɵa} from './base-layout/directives/base-layout-side-bar-footer.directive';\nexport {TheSeamSchemaFormCheckboxComponent as ɵd} from './schema-form-controls/schema-form-checkbox/schema-form-checkbox.component';\nexport {TheSeamSchemaFormControlsModule as ɵc} from './schema-form-controls/schema-form-controls.module';\nexport {TheSeamSchemaFormInputComponent as ɵg} from './schema-form-controls/schema-form-input/schema-form-input.component';\nexport {TheSeamSchemaFormNumberComponent as ɵh} from './schema-form-controls/schema-form-number/schema-form-number.component';\nexport {TheSeamSchemaFormSelectComponent as ɵf} from './schema-form-controls/schema-form-select/schema-form-select.component';\nexport {TheSeamSchemaFormSubmitSplitComponent as ɵi} from './schema-form-controls/schema-form-submit-split/schema-form-submit-split.component';\nexport {TheSeamSchemaFormSubmitComponent as ɵe} from './schema-form-controls/schema-form-submit/schema-form-submit.component';\nexport {TheSeamSideNavService as ɵb} from './side-nav/side-nav.service';"],"names":["Directive","ElementRef","InjectionToken","Optional","Inject","HostBinding","Input","HostListener","forwardRef","faAngleDoubleRight","faAngleDoubleLeft","BehaviorSubject","TemplatePortal","isDevMode","isObservable","from","Component","ChangeDetectionStrategy","ViewEncapsulation","ViewContainerRef","TheSeamLayoutService","ContentChild","TemplateRef","NgModule","CommonModule","PortalModule","TheSeamScrollbarModule","TheSeamIconModule","TheSeamButtonsModule","ViewChild","Subject","of","startWith","switchMap","map","shareReplay","tap","mapTo","take","hasProperty","Injectable","combineLatest","auditTime","notNullOrUndefined","ComponentPortal","TheSeamDynamicComponentLoader","faLock","faUnlock","EventEmitter","debounceTime","takeUntil","coerceNumberProperty","coerceBooleanProperty","distinctUntilChanged","finalize","moveItemInArray","transferArrayItem","THESEAM_WIDGET_ACCESSOR","ChangeDetectorRef","ViewChildren","CdkDrag","Output","InputBoolean","BasePortalOutlet","ComponentFactoryResolver","DragDropModule","TheSeamSharedModule","defer","Observable","filter","NavigationEnd","Router","EXPANDED_STATE","COLLAPSED_STATE","trigger","transition","group","query","animateChild","state","style","animate","faAngleLeft","SkipSelf","Host","InputNumber","faBars","RouterModule","A11yModule","TheSeamLayoutModule","NgbTooltipModule","mixinDisabled","faAngleDown","MenuComponent","Self","faUserCircle","ContentChildren","TheSeamMenuModule","keyframes","router","NavigationStart","ActivatedRoute","JsonSchemaFormService","isArray","buildTitleMap","hasOwn","observeControlValue","observeControlStatus","Framework","ReactiveFormsModule","JsonSchemaFormModule","TheSeamFormFieldModule","TheSeamCheckboxModule","NgSelectModule","WidgetLibraryModule","FrameworkLibraryService","WidgetLibraryService"],"mappings":"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"}
|