import { HashiDatePickerController } from './datePicker/HashiDatePickerController'; import { HashiEmailEditorViewController } from './email-editor/HashiEmailEditorViewController'; import { HashiCoreInputTextViewController } from './controls/HashiCoreInputTextViewController'; import { GlobalSiteFooterViewController } from './global-site-footer/GlobalSiteFooterViewController'; import { GlobalSiteHeaderViewController } from './global-site-header/GlobalSiteHeaderViewController'; declare var angular: ng.IAngularStatic; /* Contains core angular directives used across Hashidev sites */ (() => { var core = angular.module("hashidev.dashboardcore", ["TMDConfig"]); core.directive("globalSiteHeader", (): ng.IDirective => { return { restrict: "E", scope: { site: "@?", user: "=?", practiceId: "=?", stateForLogout: "@?", productFolderName: "@?", rootDomain: "@?" }, // Gulp replaces these with the actual HTML. template: `./src/global-site-header/GlobalSiteHeaderView.html`, controller: GlobalSiteHeaderViewController.NAME_AS }; }); core.controller(GlobalSiteHeaderViewController.NAME, GlobalSiteHeaderViewController as ng.Injectable); core.directive("globalSiteFooter", (): ng.IDirective => { return { restrict: "E", // Gulp replaces these with the actual HTML. template: `./src/global-site-footer/GlobalSiteFooterView.html`, scope: { productFolderName: "@?", rootDomain: "@?" }, controller: GlobalSiteFooterViewController.NAME_AS }; }); core.controller(GlobalSiteFooterViewController.NAME, GlobalSiteFooterViewController as ng.Injectable); core.directive("thisYear", () => ({ link: ($scope, $element) => { $element.text(new Date().getFullYear()); }, restrict: "E" })); core.directive("hashiCoreInputText", (): ng.IDirective => { return { scope: { labelText: "@", placeholderText: "@", textValue: "=", debounceDelay: "=", onChange: "&", isLoading: "=", rowCount: "=", cssClassForInput: "@" }, restrict: "E", // Gulp replaces these with the actual HTML. template: `./src/controls/HashiCoreInputTextView.html`, controller: HashiCoreInputTextViewController.NAME_AS } }); core.controller(HashiCoreInputTextViewController.NAME, HashiCoreInputTextViewController as ng.Injectable); core.directive("hashiEmailEditor", (): ng.IDirective => { return { restrict: "E", template: '
', controller: HashiEmailEditorViewController.NAME_AS, scope: { "emailBody": "=" } } }); core.controller(HashiEmailEditorViewController.NAME, HashiEmailEditorViewController as ng.Injectable); core.controller(HashiDatePickerController.NAME, HashiDatePickerController as ng.Injectable); core.directive("hashiDatePicker", (): ng.IDirective => { return { scope: { dateWithParts: "=", onChange: "&", isRequired: "=", label: "@" }, restrict: "E", // Gulp replaces these with the actual HTML. template: `./src/datePicker/HashiDatePickerView.html`, controller: HashiDatePickerController.NAME_AS } }); })();