@sd-angular/core 1.3.6 → 1.3.7
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/sd-angular-core-tab-router.umd.js +1 -1
- package/bundles/sd-angular-core-tab-router.umd.js.map +1 -1
- package/bundles/sd-angular-core-tab-router.umd.min.js +1 -1
- package/bundles/sd-angular-core-tab-router.umd.min.js.map +1 -1
- package/esm2015/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.js +2 -2
- package/fesm2015/sd-angular-core-tab-router.js +1 -1
- package/fesm2015/sd-angular-core-tab-router.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.3.6.tgz → sd-angular-core-1.3.7.tgz} +0 -0
- package/tab-router/sd-angular-core-tab-router.metadata.json +1 -1
|
@@ -553,7 +553,7 @@
|
|
|
553
553
|
SdTabRouterNavComponent.decorators = [
|
|
554
554
|
{ type: i0.Component, args: [{
|
|
555
555
|
selector: 'sd-tab-router-nav',
|
|
556
|
-
template: "<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis=\"x\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap\"
|
|
556
|
+
template: "<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis=\"x\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap\"\r\n [class.d-none]=\"tabs?.length > 1\"\r\n>\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <sd-tab-router-item [tab]=\"tab\" cdkDrag [cdkDragBoundary]=\"elementRef?.nativeElement\"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n",
|
|
557
557
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
558
558
|
styles: [".tab-router__nav{background:#f9f9f9;overflow:hidden}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]
|
|
559
559
|
},] }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-tab-router.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/directives/router-link-mouse-down.directive.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/public-api.ts","../../../../projects/sd-core/tab-router/sd-angular-core-tab-router.ts"],"sourcesContent":["/*! *****************************************************************************\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 { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n currentTabChanges = new BehaviorSubject<SdTab>(null);\r\n newTabs = new BehaviorSubject<SdTab>(null);\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n this.currentTabChanges.next(tab);\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any, data: Record<string, any> }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { SdTab } from \"../../models/tab-router.model\";\r\nimport { SdTabRouterService } from \"../../services/tab-router.service\";\r\n\r\n@Component({\r\n selector: \"sd-tab-router-item\",\r\n templateUrl: \"./tab-router-item.component.html\",\r\n styleUrls: [\"./tab-router-item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterItemComponent implements OnInit, OnDestroy {\r\n @Input() tab: SdTab;\r\n\r\n #subsctiption: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private tabRouterService: SdTabRouterService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.#subsctiption.add(\r\n this.tabRouterService.events.subscribe(() =>\r\n this.cdRef.markForCheck()\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subsctiption.unsubscribe();\r\n }\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor(private cdRef: ChangeDetectorRef,public elementRef: ElementRef<any>) {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 68) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n onDrop = (event: CdkDragDrop<SdTab[]>) => {\r\n moveItemInArray(this.tabs, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n tabTrackBy = (index: number, tab: SdTab) => {\r\n return tab.key;\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n const data = {\r\n ...(route.data || {}),\r\n }\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n console.log(url, queryParams, key);\r\n console.log(this.tabs);\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n if (existedIndex >= 0 && currentNavigation?.extras?.state?.switchTab) {\r\n const existedTab = this.tabs[existedIndex];\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (\r\n activatedIndex >= 0 &&\r\n currentNavigation?.extras?.state?.replaceTab\r\n ) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n if (existedIndex >= 0 && !currentNavigation?.extras?.state?.switchTab) {\r\n this.tabs[existedIndex] = tab;\r\n } else {\r\n this.tabs.push(tab);\r\n }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 15) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) {}\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tabInfo: SdTabInfo, tab: SdTab): Observable<SdTabInfo> {\r\n if (tabInfo) {\r\n return of(tabInfo);\r\n }\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams, data } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams, data }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { RouterLinkWithHref } from \"@angular/router\";\r\n\r\n@Directive({\r\n selector: \"a[routerLink],area[routerLink]\",\r\n})\r\nexport class RouterLinkMouseDownDirective extends RouterLinkWithHref {\r\n @HostListener(\"mousedown\", [\r\n \"$event.button\",\r\n \"$event.ctrlKey\",\r\n \"$event.shiftKey\",\r\n \"$event.altKey\",\r\n \"$event.metaKey\",\r\n ])\r\n onMouseDown(\r\n button: number,\r\n ctrlKey: boolean,\r\n shiftKey: boolean,\r\n altKey: boolean,\r\n metaKey: boolean\r\n ): boolean {\r\n return this.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterLinkMouseDownDirective } from './directives/router-link-mouse-down.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n RouterLinkMouseDownDirective,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\n// Models\r\nexport * from './lib/models/tab-router.model';\r\nexport * from './lib/events/tab-router.event';\r\nexport * from './lib/actions/tab-router.action';\r\n\r\n// Decorators\r\nexport * from './lib/decorators/tab.decorator';\r\n\r\n// Service\r\nexport * from './lib/services/tab-router.service';\r\nexport * from './lib/services/tab-decorator.service';\r\n\r\n// Components\r\nexport * from './lib/components/tab-router-item/tab-router-item.component';\r\nexport * from './lib/components/tab-router-nav/tab-router-nav.component';\r\nexport * from './lib/components/tab-router-outlet/tab-router-outlet.component';\r\n\r\n// Module\r\nexport * from './lib/tab-router.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {RouterLinkMouseDownDirective as ɵb} from './src/lib/directives/router-link-mouse-down.directive';\nexport {SdTabInfoPipe as ɵa} from './src/lib/pipes/tab-info.pipe';"],"names":["BehaviorSubject","Injectable","SdNotifyService","filter","take","Subscription","Component","ChangeDetectionStrategy","ChangeDetectorRef","Input","moveItemInArray","ElementRef","ViewChild","HostListener","router","hash","RoutesRecognized","NavigationEnd","Router","ActivatedRoute","Injector","Compiler","of","map","Pipe","RouterLinkWithHref","Directive","NgModule","RouterModule","CommonModule","MatIconModule","MatTooltipModule","DragDropModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-tab-router.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/directives/router-link-mouse-down.directive.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/public-api.ts","../../../../projects/sd-core/tab-router/sd-angular-core-tab-router.ts"],"sourcesContent":["/*! *****************************************************************************\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 { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n currentTabChanges = new BehaviorSubject<SdTab>(null);\r\n newTabs = new BehaviorSubject<SdTab>(null);\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n this.currentTabChanges.next(tab);\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any, data: Record<string, any> }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { SdTab } from \"../../models/tab-router.model\";\r\nimport { SdTabRouterService } from \"../../services/tab-router.service\";\r\n\r\n@Component({\r\n selector: \"sd-tab-router-item\",\r\n templateUrl: \"./tab-router-item.component.html\",\r\n styleUrls: [\"./tab-router-item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterItemComponent implements OnInit, OnDestroy {\r\n @Input() tab: SdTab;\r\n\r\n #subsctiption: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private tabRouterService: SdTabRouterService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.#subsctiption.add(\r\n this.tabRouterService.events.subscribe(() =>\r\n this.cdRef.markForCheck()\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subsctiption.unsubscribe();\r\n }\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor(private cdRef: ChangeDetectorRef,public elementRef: ElementRef<any>) {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 68) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n onDrop = (event: CdkDragDrop<SdTab[]>) => {\r\n moveItemInArray(this.tabs, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n tabTrackBy = (index: number, tab: SdTab) => {\r\n return tab.key;\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n const data = {\r\n ...(route.data || {}),\r\n }\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n console.log(url, queryParams, key);\r\n console.log(this.tabs);\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n if (existedIndex >= 0 && currentNavigation?.extras?.state?.switchTab) {\r\n const existedTab = this.tabs[existedIndex];\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (\r\n activatedIndex >= 0 &&\r\n currentNavigation?.extras?.state?.replaceTab\r\n ) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n if (existedIndex >= 0 && !currentNavigation?.extras?.state?.switchTab) {\r\n this.tabs[existedIndex] = tab;\r\n } else {\r\n this.tabs.push(tab);\r\n }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 15) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) {}\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tabInfo: SdTabInfo, tab: SdTab): Observable<SdTabInfo> {\r\n if (tabInfo) {\r\n return of(tabInfo);\r\n }\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams, data } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams, data }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { RouterLinkWithHref } from \"@angular/router\";\r\n\r\n@Directive({\r\n selector: \"a[routerLink],area[routerLink]\",\r\n})\r\nexport class RouterLinkMouseDownDirective extends RouterLinkWithHref {\r\n @HostListener(\"mousedown\", [\r\n \"$event.button\",\r\n \"$event.ctrlKey\",\r\n \"$event.shiftKey\",\r\n \"$event.altKey\",\r\n \"$event.metaKey\",\r\n ])\r\n onMouseDown(\r\n button: number,\r\n ctrlKey: boolean,\r\n shiftKey: boolean,\r\n altKey: boolean,\r\n metaKey: boolean\r\n ): boolean {\r\n return this.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterLinkMouseDownDirective } from './directives/router-link-mouse-down.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n RouterLinkMouseDownDirective,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\n// Models\r\nexport * from './lib/models/tab-router.model';\r\nexport * from './lib/events/tab-router.event';\r\nexport * from './lib/actions/tab-router.action';\r\n\r\n// Decorators\r\nexport * from './lib/decorators/tab.decorator';\r\n\r\n// Service\r\nexport * from './lib/services/tab-router.service';\r\nexport * from './lib/services/tab-decorator.service';\r\n\r\n// Components\r\nexport * from './lib/components/tab-router-item/tab-router-item.component';\r\nexport * from './lib/components/tab-router-nav/tab-router-nav.component';\r\nexport * from './lib/components/tab-router-outlet/tab-router-outlet.component';\r\n\r\n// Module\r\nexport * from './lib/tab-router.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {RouterLinkMouseDownDirective as ɵb} from './src/lib/directives/router-link-mouse-down.directive';\nexport {SdTabInfoPipe as ɵa} from './src/lib/pipes/tab-info.pipe';"],"names":["BehaviorSubject","Injectable","SdNotifyService","filter","take","Subscription","Component","ChangeDetectionStrategy","ChangeDetectorRef","Input","moveItemInArray","ElementRef","ViewChild","HostListener","router","hash","RoutesRecognized","NavigationEnd","Router","ActivatedRoute","Injector","Compiler","of","map","Pipe","RouterLinkWithHref","Directive","NgModule","RouterModule","CommonModule","MatIconModule","MatTooltipModule","DragDropModule"],"mappings":"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"}
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}f(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function b(t,e,r,n){return new(r||(r=Promise))((function(o,a){function i(t){try{u(n.next(t))}catch(t){a(t)}}function s(t){try{u(n.throw(t))}catch(t){a(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,s)}u((n=n.apply(t,e||[])).next())}))}function v(t,e){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=e.call(t,i)}catch(t){a=[6,t],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}Object.create;function m(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}var y;Object.create;function g(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}function w(t,e,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(t,r):o?o.value=r:e.set(t,r),r}var _=function(){function t(t){y.set(this,void 0),w(this,y,t)}return Object.defineProperty(t.prototype,"tab",{get:function(){return g(this,y)},enumerable:!1,configurable:!0}),t}();y=new WeakMap;var x,k,S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h(e,t),e}(_),R=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h(e,t),e}(_),j=function(){function t(t){var e=this;this.notifyService=t,this.events=new n.BehaviorSubject(new _(null)),this.actions=new n.BehaviorSubject(null),this.builders=new n.BehaviorSubject([]),this.currentTabChanges=new n.BehaviorSubject(null),this.newTabs=new n.BehaviorSubject(null),x.set(this,null),k.set(this,[]),this.addBuilder=function(t){g(e,k).some((function(e){return e.component===t.component}))||(g(e,k).push(t),e.builders.next(g(e,k)))},this.setCurrentTab=function(t){w(e,x,t),e.currentTabChanges.next(t)},this.pushEvent=function(t,r){e.events.next(new r(t))},this.setOptions=function(){},this.close=function(t){t?e.actions.next({type:"close",tab:t}):g(e,x)&&e.actions.next({type:"close",tab:g(e,x)})}}return Object.defineProperty(t.prototype,"currentTab",{get:function(){return g(this,x)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"key",{get:function(){var t;return(null===(t=g(this,x))||void 0===t?void 0:t.key)||null},enumerable:!1,configurable:!0}),t}();x=new WeakMap,k=new WeakMap,j.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new j(r.ɵɵinject(o.SdNotifyService))},token:j,providedIn:"root"}),j.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],j.ctorParameters=function(){return[{type:o.SdNotifyService}]};var T,C=function t(e){t.tabRouterService.next(e)};C.tabRouterService=new n.BehaviorSubject(void 0),C.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new C(r.ɵɵinject(j))},token:C,providedIn:"root"}),C.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],C.ctorParameters=function(){return[{type:j}]};var I=function(){function t(t,e){var r=this;this.cdRef=t,this.tabRouterService=e,T.set(this,new n.Subscription),this.close=function(t){t.preventDefault(),t.stopPropagation(),r.tabRouterService.close(r.tab)}}return t.prototype.ngOnInit=function(){var t=this;g(this,T).add(this.tabRouterService.events.subscribe((function(){return t.cdRef.markForCheck()})))},t.prototype.ngOnDestroy=function(){g(this,T).unsubscribe()},t}();T=new WeakMap,I.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-item",template:'<a\r\n [routerLink]="[tab.url]"\r\n [queryParams]="tab.queryParams"\r\n [state]="{ switchTab: true }"\r\n class="tab-router__item d-flex align-items-center"\r\n [ngClass]="{\r\n \'tab-router__item--active\': tab.isActive\r\n }">\r\n <ng-container *ngIf="tab.overrideTabInfo | sdTabInfo:tab | async as tabInfo">\r\n <div class="\r\n tab-router__icon\r\n mr-8\r\n " [ngStyle]="{\r\n \'background-color\': tabInfo.color\r\n }" [matTooltip]="tabInfo.tooltip || tabInfo.name" matTooltipPosition="below" matTooltipShowDelay="1000">\r\n {{ tabInfo.initialName || \'SD\' }}\r\n </div>\r\n <div class="flex-1 overflow-hidden">\r\n <div\r\n class="tab-router__name"\r\n [matTooltip]="tabInfo.tooltip || tabInfo.name"\r\n matTooltipPosition="below"\r\n matTooltipShowDelay="1000"\r\n >\r\n {{ tabInfo.name }}\r\n </div>\r\n </div>\r\n <button\r\n type="button"\r\n class="tab-router__close d-flex align-items-center justify-content-center ml-4"\r\n (click)="close($event)"\r\n (mousedown)="$event.stopPropagation()"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n</a>\r\n',changeDetection:r.ChangeDetectionStrategy.OnPush,styles:[':host{display:block;flex:1 1 64px;max-width:240px;overflow:hidden;position:relative}:host:after{background:#dde0e5;bottom:0;content:"";height:16px;margin:auto;position:absolute;right:0;top:0;width:1px}:host:last-child:after{content:none}.flex-1{flex:1}.tab-router__icon{background-color:#5c6bc0;border-radius:2px;color:#fff;font-size:10px;height:16px;line-height:16px;text-align:center;text-transform:uppercase;width:16px}.tab-router__icon .mat-icon{font-size:10px;height:10px;width:10px}.tab-router__close{background:none;border:0;border-radius:50%;color:#757575;height:16px;outline:none;width:16px}.tab-router__close:hover{background-color:rgba(0,0,0,.12)}.tab-router__close .mat-icon{font-size:12px;height:12px;width:12px}.tab-router__item{background:#f2f3f4;color:inherit;font-size:12px;line-height:16px;overflow:hidden;padding:16px 16px 8px;text-decoration:none}.tab-router__item:hover{background-color:#fff}.tab-router__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-router__item--active{background-color:#fff;border-radius:8px 8px 0 0}']}]}],I.ctorParameters=function(){return[{type:r.ChangeDetectorRef},{type:j}]},I.propDecorators={tab:[{type:r.Input}]};var D,P,N,M,O,q,A,E=function(){function t(t,e){var r=this;this.cdRef=t,this.elementRef=e,this.mode="default",this.checkUI=function(){var t=(r.tabRouterNav.nativeElement.clientWidth-68*r.tabs.length)/r.tabs.length;r.mode=t<=20?"compact":"default",r.cdRef.markForCheck()},this.onDrop=function(t){a.moveItemInArray(r.tabs,t.previousIndex,t.currentIndex)}}return t.prototype.onResize=function(t){this.checkUI()},t}();E.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-nav",template:'<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis="x"\r\n cdkDropListOrientation="horizontal"\r\n (cdkDropListDropped)="onDrop($event)"\r\n class="tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap",\r\n>\r\n <ng-container *ngFor="let tab of tabs">\r\n <sd-tab-router-item [tab]="tab" cdkDrag [cdkDragBoundary]="elementRef?.nativeElement"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n',changeDetection:r.ChangeDetectionStrategy.OnPush,styles:[".tab-router__nav{background:#f9f9f9;overflow:hidden}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]}]}],E.ctorParameters=function(){return[{type:r.ChangeDetectorRef},{type:r.ElementRef}]},E.propDecorators={tabRouterNav:[{type:r.ViewChild,args:["tabRouterNav"]}],tabs:[{type:r.Input}],onResize:[{type:r.HostListener,args:["window:resize",["$event"]]}]};var B=function(){function t(t,r,o,a,s,u,c,l){var p=this;this.router=t,this.activatedRoute=r,this.cd=o,this.injector=a,this.compiler=s,this.tabDecoratorService=u,this.tabRouterService=c,this.sdNotifyService=l,this.tabs=[],D.set(this,void 0),P.set(this,new n.Subscription),N.set(this,!0),this.tabTrackBy=function(t,e){return e.key},M.set(this,(function(t){var e,r=t.isActive,n=t.key;if(r){var o=p.tabs.findIndex((function(t){return t.key===n})),a=p.tabs[o+1]||p.tabs[o-1];if(a){var i=a.url,s=Object.assign({},a.queryParams||{});p.tabs=p.tabs.filter((function(t){return t.key!==n})),p.router.navigate([i],{queryParams:s,state:{switchTab:!0}})}else p.tabs=p.tabs.filter((function(t){return t.key!==n})),p.router.navigateByUrl("/",{state:{switchTab:!0}})}else p.tabs=p.tabs.filter((function(e){return e.key!==t.key})),null===(e=p.tabRouterNav)||void 0===e||e.checkUI(),p.cd.markForCheck()})),O.set(this,(function(t,e){return b(p,void 0,void 0,(function(){var r,n,o,a,i,s,u,c,l,p,f,h,b,y,w,_,x,k,j,T,C,I,P,N,M,O=this;return v(this,(function(v){switch(v.label){case 0:return(null==e?void 0:e.component)?(p=e.component,f=Object.assign({},e.queryParams||{}),h=Object.assign({},e.params||{}),b=Object.assign({},e.data||{}),y=m(t.split("?"),1),w=y[0],_=d.default({url:w,queryParams:f}),console.log(w,f,_),console.log(this.tabs),x=-1,k=-1,this.tabs.forEach((function(t,e){t.key===_?(t.isActive=!0,x=e):(t.isActive&&(k=e,O.tabRouterService.pushEvent(t,R)),t.isActive=!1)})),j=this.router.getCurrentNavigation(),x>=0&&(null===(n=null===(r=null==j?void 0:j.extras)||void 0===r?void 0:r.state)||void 0===n?void 0:n.switchTab)?(T=this.tabs[x],this.tabRouterService.setCurrentTab(T),this.tabRouterService.pushEvent(T,S),[3,5]):[3,1]):[2];case 1:return"function"!=typeof(null===(a=null===(o=null==e?void 0:e.parent)||void 0===o?void 0:o.routeConfig)||void 0===a?void 0:a.loadChildren)?[3,4]:[4,e.parent.routeConfig.loadChildren()];case 2:return C=v.sent(),[4,this.compiler.compileModuleAsync(C)];case 3:I=v.sent(),P=I.create(this.injector),N=g(this,A).call(this,g(this,D),p),M={key:_,component:p,injector:new W(N,P),isActive:!0,name:w,url:w,params:h,queryParams:f,data:b},this.tabRouterService.setCurrentTab(M),k>=0&&(null===(s=null===(i=null==j?void 0:j.extras)||void 0===i?void 0:i.state)||void 0===s?void 0:s.replaceTab)&&this.tabs.splice(k,1),x>=0&&!(null===(c=null===(u=null==j?void 0:j.extras)||void 0===u?void 0:u.state)||void 0===c?void 0:c.switchTab)?this.tabs[x]=M:this.tabs.push(M),v.label=4;case 4:null===(l=this.tabRouterNav)||void 0===l||l.checkUI(),this.tabs.length>10&&this.sdNotifyService.notify.warning("Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn."),this.tabs.length>15&&this.tabs.splice(0,this.tabs.length-10),v.label=5;case 5:return this.cd.markForCheck(),[2]}}))}))})),q.set(this,(function(t){if(!t)return null;for(;t.firstChild;)t=t.firstChild;return t})),A.set(this,(function(t,e){if(!t)return null;if(t.component&&t.component===e)return t;for(;t.firstChild;)if((t=t.firstChild).component&&t.component===e)return t;return null})),g(this,P).add(t.events.pipe(e.filter((function(t){return t instanceof i.RoutesRecognized||t instanceof i.NavigationEnd}))).subscribe((function(t){return b(p,void 0,void 0,(function(){var e;return v(this,(function(r){switch(r.label){case 0:return g(this,N)&&t instanceof i.NavigationEnd?(w(this,N,!1),e=g(this,q).call(this,this.activatedRoute.snapshot),w(this,D,this.router.routerState.root),[4,g(this,O).call(this,t.urlAfterRedirects||t.url,e)]):[3,2];case 1:return r.sent(),[2];case 2:return!g(this,N)&&t instanceof i.RoutesRecognized?(e=g(this,q).call(this,t.state.root),w(this,D,this.router.routerState.root),[4,g(this,O).call(this,t.urlAfterRedirects||t.url,e)]):[3,4];case 3:r.sent(),r.label=4;case 4:return[2]}}))}))}))),g(this,P).add(c.actions.subscribe((function(t){t&&"close"===t.type&&g(p,M).call(p,t.tab)})))}return t.prototype.ngOnDestroy=function(){g(this,P).unsubscribe()},t}();D=new WeakMap,P=new WeakMap,N=new WeakMap,M=new WeakMap,O=new WeakMap,q=new WeakMap,A=new WeakMap,B.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-outlet",template:'<sd-tab-router-nav [tabs]="tabs" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class="tab-router__list">\r\n <ng-container *ngFor="let tab of tabs;trackBy:tabTrackBy">\r\n <div class="tab-router__pane" [class.active]="tab.isActive" [id]="tab.key">\r\n <div class="tab-router__content">\r\n <ng-container\r\n *ngComponentOutlet="tab.component; injector: tab.injector"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n',styles:[":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}:host ::ng-deep .sd-loading{max-height:100%;max-width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]}]}],B.ctorParameters=function(){return[{type:i.Router},{type:i.ActivatedRoute},{type:r.ChangeDetectorRef},{type:r.Injector},{type:r.Compiler},{type:C},{type:j},{type:o.SdNotifyService}]},B.propDecorators={tabRouterNav:[{type:r.ViewChild,args:["tabRouterNav"]}]};var W=function(){function t(t,e){this.route=t,this.parent=e}return t.prototype.get=function(t,e){return t===i.ActivatedRoute&&this.route?this.route:this.parent.get(t,e)},t}(),L=function(){function t(t){this.tabRouterService=t}return t.prototype.transform=function(t,r){return t?n.of(t):this.tabRouterService.builders.pipe(e.map((function(t){var e=t.find((function(t){return t.component===r.component}));if(e){var n=r.url,o=r.params,a=r.queryParams,i=r.data;return r.tabInfo={name:"function"==typeof e.name?e.name({url:n,params:o,queryParams:a,data:i}):e.name,initialName:"function"==typeof e.initialName?e.initialName({url:n,params:o,queryParams:a}):e.initialName,tooltip:"function"==typeof e.tooltip?e.tooltip({url:n,params:o,queryParams:a}):e.tooltip,color:"function"==typeof e.color?e.color({url:n,params:o,queryParams:a}):e.color},r.tabInfo}return r.tabInfo={name:r.url,initialName:null},r.tabInfo})))},t}();L.decorators=[{type:r.Pipe,args:[{name:"sdTabInfo"}]}],L.ctorParameters=function(){return[{type:j}]};var z=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h(e,t),e.prototype.onMouseDown=function(t,e,r,n,o){return this.onClick(t,e,r,n,o)},e}(i.RouterLinkWithHref);z.decorators=[{type:r.Directive,args:[{selector:"a[routerLink],area[routerLink]"}]}],z.propDecorators={onMouseDown:[{type:r.HostListener,args:["mousedown",["$event.button","$event.ctrlKey","$event.shiftKey","$event.altKey","$event.metaKey"]]}]};var $=function(){};$.decorators=[{type:r.NgModule,args:[{declarations:[I,E,B,L,z],imports:[i.RouterModule,u.CommonModule,c.MatIconModule,l.MatTooltipModule,a.DragDropModule],exports:[I,E,B],providers:[]}]}],t.SdTabActivated=S,t.SdTabBase=_,t.SdTabComponent=function(t){return function(r){C.tabRouterService.pipe(e.filter((function(t){return null!=t})),e.take(1)).subscribe((function(e){e.addBuilder(t)}))}},t.SdTabDeactivated=R,t.SdTabDecoratorService=C,t.SdTabRouterItemComponent=I,t.SdTabRouterModule=$,t.SdTabRouterNavComponent=E,t.SdTabRouterOutletComponent=B,t.SdTabRouterService=j,t.ɵa=L,t.ɵb=z,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
15
|
+
***************************************************************************** */function h(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}f(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}function b(t,e,r,n){return new(r||(r=Promise))((function(o,a){function i(t){try{u(n.next(t))}catch(t){a(t)}}function s(t){try{u(n.throw(t))}catch(t){a(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,s)}u((n=n.apply(t,e||[])).next())}))}function v(t,e){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=e.call(t,i)}catch(t){a=[6,t],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}Object.create;function m(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}var y;Object.create;function g(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}function w(t,e,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(t,r):o?o.value=r:e.set(t,r),r}var _=function(){function t(t){y.set(this,void 0),w(this,y,t)}return Object.defineProperty(t.prototype,"tab",{get:function(){return g(this,y)},enumerable:!1,configurable:!0}),t}();y=new WeakMap;var x,k,S=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h(e,t),e}(_),R=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h(e,t),e}(_),j=function(){function t(t){var e=this;this.notifyService=t,this.events=new n.BehaviorSubject(new _(null)),this.actions=new n.BehaviorSubject(null),this.builders=new n.BehaviorSubject([]),this.currentTabChanges=new n.BehaviorSubject(null),this.newTabs=new n.BehaviorSubject(null),x.set(this,null),k.set(this,[]),this.addBuilder=function(t){g(e,k).some((function(e){return e.component===t.component}))||(g(e,k).push(t),e.builders.next(g(e,k)))},this.setCurrentTab=function(t){w(e,x,t),e.currentTabChanges.next(t)},this.pushEvent=function(t,r){e.events.next(new r(t))},this.setOptions=function(){},this.close=function(t){t?e.actions.next({type:"close",tab:t}):g(e,x)&&e.actions.next({type:"close",tab:g(e,x)})}}return Object.defineProperty(t.prototype,"currentTab",{get:function(){return g(this,x)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"key",{get:function(){var t;return(null===(t=g(this,x))||void 0===t?void 0:t.key)||null},enumerable:!1,configurable:!0}),t}();x=new WeakMap,k=new WeakMap,j.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new j(r.ɵɵinject(o.SdNotifyService))},token:j,providedIn:"root"}),j.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],j.ctorParameters=function(){return[{type:o.SdNotifyService}]};var T,C=function t(e){t.tabRouterService.next(e)};C.tabRouterService=new n.BehaviorSubject(void 0),C.ɵprov=r.ɵɵdefineInjectable({factory:function(){return new C(r.ɵɵinject(j))},token:C,providedIn:"root"}),C.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],C.ctorParameters=function(){return[{type:j}]};var I=function(){function t(t,e){var r=this;this.cdRef=t,this.tabRouterService=e,T.set(this,new n.Subscription),this.close=function(t){t.preventDefault(),t.stopPropagation(),r.tabRouterService.close(r.tab)}}return t.prototype.ngOnInit=function(){var t=this;g(this,T).add(this.tabRouterService.events.subscribe((function(){return t.cdRef.markForCheck()})))},t.prototype.ngOnDestroy=function(){g(this,T).unsubscribe()},t}();T=new WeakMap,I.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-item",template:'<a\r\n [routerLink]="[tab.url]"\r\n [queryParams]="tab.queryParams"\r\n [state]="{ switchTab: true }"\r\n class="tab-router__item d-flex align-items-center"\r\n [ngClass]="{\r\n \'tab-router__item--active\': tab.isActive\r\n }">\r\n <ng-container *ngIf="tab.overrideTabInfo | sdTabInfo:tab | async as tabInfo">\r\n <div class="\r\n tab-router__icon\r\n mr-8\r\n " [ngStyle]="{\r\n \'background-color\': tabInfo.color\r\n }" [matTooltip]="tabInfo.tooltip || tabInfo.name" matTooltipPosition="below" matTooltipShowDelay="1000">\r\n {{ tabInfo.initialName || \'SD\' }}\r\n </div>\r\n <div class="flex-1 overflow-hidden">\r\n <div\r\n class="tab-router__name"\r\n [matTooltip]="tabInfo.tooltip || tabInfo.name"\r\n matTooltipPosition="below"\r\n matTooltipShowDelay="1000"\r\n >\r\n {{ tabInfo.name }}\r\n </div>\r\n </div>\r\n <button\r\n type="button"\r\n class="tab-router__close d-flex align-items-center justify-content-center ml-4"\r\n (click)="close($event)"\r\n (mousedown)="$event.stopPropagation()"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n</a>\r\n',changeDetection:r.ChangeDetectionStrategy.OnPush,styles:[':host{display:block;flex:1 1 64px;max-width:240px;overflow:hidden;position:relative}:host:after{background:#dde0e5;bottom:0;content:"";height:16px;margin:auto;position:absolute;right:0;top:0;width:1px}:host:last-child:after{content:none}.flex-1{flex:1}.tab-router__icon{background-color:#5c6bc0;border-radius:2px;color:#fff;font-size:10px;height:16px;line-height:16px;text-align:center;text-transform:uppercase;width:16px}.tab-router__icon .mat-icon{font-size:10px;height:10px;width:10px}.tab-router__close{background:none;border:0;border-radius:50%;color:#757575;height:16px;outline:none;width:16px}.tab-router__close:hover{background-color:rgba(0,0,0,.12)}.tab-router__close .mat-icon{font-size:12px;height:12px;width:12px}.tab-router__item{background:#f2f3f4;color:inherit;font-size:12px;line-height:16px;overflow:hidden;padding:16px 16px 8px;text-decoration:none}.tab-router__item:hover{background-color:#fff}.tab-router__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-router__item--active{background-color:#fff;border-radius:8px 8px 0 0}']}]}],I.ctorParameters=function(){return[{type:r.ChangeDetectorRef},{type:j}]},I.propDecorators={tab:[{type:r.Input}]};var D,P,N,M,O,q,A,E=function(){function t(t,e){var r=this;this.cdRef=t,this.elementRef=e,this.mode="default",this.checkUI=function(){var t=(r.tabRouterNav.nativeElement.clientWidth-68*r.tabs.length)/r.tabs.length;r.mode=t<=20?"compact":"default",r.cdRef.markForCheck()},this.onDrop=function(t){a.moveItemInArray(r.tabs,t.previousIndex,t.currentIndex)}}return t.prototype.onResize=function(t){this.checkUI()},t}();E.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-nav",template:'<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis="x"\r\n cdkDropListOrientation="horizontal"\r\n (cdkDropListDropped)="onDrop($event)"\r\n class="tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap"\r\n [class.d-none]="tabs?.length > 1"\r\n>\r\n <ng-container *ngFor="let tab of tabs">\r\n <sd-tab-router-item [tab]="tab" cdkDrag [cdkDragBoundary]="elementRef?.nativeElement"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n',changeDetection:r.ChangeDetectionStrategy.OnPush,styles:[".tab-router__nav{background:#f9f9f9;overflow:hidden}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]}]}],E.ctorParameters=function(){return[{type:r.ChangeDetectorRef},{type:r.ElementRef}]},E.propDecorators={tabRouterNav:[{type:r.ViewChild,args:["tabRouterNav"]}],tabs:[{type:r.Input}],onResize:[{type:r.HostListener,args:["window:resize",["$event"]]}]};var B=function(){function t(t,r,o,a,s,u,c,l){var p=this;this.router=t,this.activatedRoute=r,this.cd=o,this.injector=a,this.compiler=s,this.tabDecoratorService=u,this.tabRouterService=c,this.sdNotifyService=l,this.tabs=[],D.set(this,void 0),P.set(this,new n.Subscription),N.set(this,!0),this.tabTrackBy=function(t,e){return e.key},M.set(this,(function(t){var e,r=t.isActive,n=t.key;if(r){var o=p.tabs.findIndex((function(t){return t.key===n})),a=p.tabs[o+1]||p.tabs[o-1];if(a){var i=a.url,s=Object.assign({},a.queryParams||{});p.tabs=p.tabs.filter((function(t){return t.key!==n})),p.router.navigate([i],{queryParams:s,state:{switchTab:!0}})}else p.tabs=p.tabs.filter((function(t){return t.key!==n})),p.router.navigateByUrl("/",{state:{switchTab:!0}})}else p.tabs=p.tabs.filter((function(e){return e.key!==t.key})),null===(e=p.tabRouterNav)||void 0===e||e.checkUI(),p.cd.markForCheck()})),O.set(this,(function(t,e){return b(p,void 0,void 0,(function(){var r,n,o,a,i,s,u,c,l,p,f,h,b,y,w,_,x,k,j,T,C,I,P,N,M,O=this;return v(this,(function(v){switch(v.label){case 0:return(null==e?void 0:e.component)?(p=e.component,f=Object.assign({},e.queryParams||{}),h=Object.assign({},e.params||{}),b=Object.assign({},e.data||{}),y=m(t.split("?"),1),w=y[0],_=d.default({url:w,queryParams:f}),console.log(w,f,_),console.log(this.tabs),x=-1,k=-1,this.tabs.forEach((function(t,e){t.key===_?(t.isActive=!0,x=e):(t.isActive&&(k=e,O.tabRouterService.pushEvent(t,R)),t.isActive=!1)})),j=this.router.getCurrentNavigation(),x>=0&&(null===(n=null===(r=null==j?void 0:j.extras)||void 0===r?void 0:r.state)||void 0===n?void 0:n.switchTab)?(T=this.tabs[x],this.tabRouterService.setCurrentTab(T),this.tabRouterService.pushEvent(T,S),[3,5]):[3,1]):[2];case 1:return"function"!=typeof(null===(a=null===(o=null==e?void 0:e.parent)||void 0===o?void 0:o.routeConfig)||void 0===a?void 0:a.loadChildren)?[3,4]:[4,e.parent.routeConfig.loadChildren()];case 2:return C=v.sent(),[4,this.compiler.compileModuleAsync(C)];case 3:I=v.sent(),P=I.create(this.injector),N=g(this,A).call(this,g(this,D),p),M={key:_,component:p,injector:new W(N,P),isActive:!0,name:w,url:w,params:h,queryParams:f,data:b},this.tabRouterService.setCurrentTab(M),k>=0&&(null===(s=null===(i=null==j?void 0:j.extras)||void 0===i?void 0:i.state)||void 0===s?void 0:s.replaceTab)&&this.tabs.splice(k,1),x>=0&&!(null===(c=null===(u=null==j?void 0:j.extras)||void 0===u?void 0:u.state)||void 0===c?void 0:c.switchTab)?this.tabs[x]=M:this.tabs.push(M),v.label=4;case 4:null===(l=this.tabRouterNav)||void 0===l||l.checkUI(),this.tabs.length>10&&this.sdNotifyService.notify.warning("Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn."),this.tabs.length>15&&this.tabs.splice(0,this.tabs.length-10),v.label=5;case 5:return this.cd.markForCheck(),[2]}}))}))})),q.set(this,(function(t){if(!t)return null;for(;t.firstChild;)t=t.firstChild;return t})),A.set(this,(function(t,e){if(!t)return null;if(t.component&&t.component===e)return t;for(;t.firstChild;)if((t=t.firstChild).component&&t.component===e)return t;return null})),g(this,P).add(t.events.pipe(e.filter((function(t){return t instanceof i.RoutesRecognized||t instanceof i.NavigationEnd}))).subscribe((function(t){return b(p,void 0,void 0,(function(){var e;return v(this,(function(r){switch(r.label){case 0:return g(this,N)&&t instanceof i.NavigationEnd?(w(this,N,!1),e=g(this,q).call(this,this.activatedRoute.snapshot),w(this,D,this.router.routerState.root),[4,g(this,O).call(this,t.urlAfterRedirects||t.url,e)]):[3,2];case 1:return r.sent(),[2];case 2:return!g(this,N)&&t instanceof i.RoutesRecognized?(e=g(this,q).call(this,t.state.root),w(this,D,this.router.routerState.root),[4,g(this,O).call(this,t.urlAfterRedirects||t.url,e)]):[3,4];case 3:r.sent(),r.label=4;case 4:return[2]}}))}))}))),g(this,P).add(c.actions.subscribe((function(t){t&&"close"===t.type&&g(p,M).call(p,t.tab)})))}return t.prototype.ngOnDestroy=function(){g(this,P).unsubscribe()},t}();D=new WeakMap,P=new WeakMap,N=new WeakMap,M=new WeakMap,O=new WeakMap,q=new WeakMap,A=new WeakMap,B.decorators=[{type:r.Component,args:[{selector:"sd-tab-router-outlet",template:'<sd-tab-router-nav [tabs]="tabs" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class="tab-router__list">\r\n <ng-container *ngFor="let tab of tabs;trackBy:tabTrackBy">\r\n <div class="tab-router__pane" [class.active]="tab.isActive" [id]="tab.key">\r\n <div class="tab-router__content">\r\n <ng-container\r\n *ngComponentOutlet="tab.component; injector: tab.injector"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n',styles:[":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}:host ::ng-deep .sd-loading{max-height:100%;max-width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]}]}],B.ctorParameters=function(){return[{type:i.Router},{type:i.ActivatedRoute},{type:r.ChangeDetectorRef},{type:r.Injector},{type:r.Compiler},{type:C},{type:j},{type:o.SdNotifyService}]},B.propDecorators={tabRouterNav:[{type:r.ViewChild,args:["tabRouterNav"]}]};var W=function(){function t(t,e){this.route=t,this.parent=e}return t.prototype.get=function(t,e){return t===i.ActivatedRoute&&this.route?this.route:this.parent.get(t,e)},t}(),L=function(){function t(t){this.tabRouterService=t}return t.prototype.transform=function(t,r){return t?n.of(t):this.tabRouterService.builders.pipe(e.map((function(t){var e=t.find((function(t){return t.component===r.component}));if(e){var n=r.url,o=r.params,a=r.queryParams,i=r.data;return r.tabInfo={name:"function"==typeof e.name?e.name({url:n,params:o,queryParams:a,data:i}):e.name,initialName:"function"==typeof e.initialName?e.initialName({url:n,params:o,queryParams:a}):e.initialName,tooltip:"function"==typeof e.tooltip?e.tooltip({url:n,params:o,queryParams:a}):e.tooltip,color:"function"==typeof e.color?e.color({url:n,params:o,queryParams:a}):e.color},r.tabInfo}return r.tabInfo={name:r.url,initialName:null},r.tabInfo})))},t}();L.decorators=[{type:r.Pipe,args:[{name:"sdTabInfo"}]}],L.ctorParameters=function(){return[{type:j}]};var z=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h(e,t),e.prototype.onMouseDown=function(t,e,r,n,o){return this.onClick(t,e,r,n,o)},e}(i.RouterLinkWithHref);z.decorators=[{type:r.Directive,args:[{selector:"a[routerLink],area[routerLink]"}]}],z.propDecorators={onMouseDown:[{type:r.HostListener,args:["mousedown",["$event.button","$event.ctrlKey","$event.shiftKey","$event.altKey","$event.metaKey"]]}]};var $=function(){};$.decorators=[{type:r.NgModule,args:[{declarations:[I,E,B,L,z],imports:[i.RouterModule,u.CommonModule,c.MatIconModule,l.MatTooltipModule,a.DragDropModule],exports:[I,E,B],providers:[]}]}],t.SdTabActivated=S,t.SdTabBase=_,t.SdTabComponent=function(t){return function(r){C.tabRouterService.pipe(e.filter((function(t){return null!=t})),e.take(1)).subscribe((function(e){e.addBuilder(t)}))}},t.SdTabDeactivated=R,t.SdTabDecoratorService=C,t.SdTabRouterItemComponent=I,t.SdTabRouterModule=$,t.SdTabRouterNavComponent=E,t.SdTabRouterOutletComponent=B,t.SdTabRouterService=j,t.ɵa=L,t.ɵb=z,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
16
16
|
//# sourceMappingURL=sd-angular-core-tab-router.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/directives/router-link-mouse-down.directive.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","pop","length","push","__read","o","m","r","i","ar","error","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","SdTabBase","tab","_tab","defineProperty","SdTabActivated","_super","SdTabDeactivated","SdTabRouterService","notifyService","_this","events","BehaviorSubject","actions","builders","currentTabChanges","newTabs","_currentTab","_componentBuilders","addBuilder","builder","some","component","setCurrentTab","pushEvent","Event","setOptions","close","type","_a","key","Injectable","args","providedIn","SdNotifyService","SdTabDecoratorService","tabRouterService","undefined","SdTabRouterItemComponent","cdRef","_subsctiption","Subscription","event","preventDefault","stopPropagation","ngOnInit","add","subscribe","markForCheck","ngOnDestroy","unsubscribe","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Input","SdTabRouterNavComponent","elementRef","mode","checkUI","nameWidth","tabRouterNav","nativeElement","clientWidth","tabs","onDrop","moveItemInArray","previousIndex","currentIndex","onResize","ElementRef","ViewChild","HostListener","SdTabRouterOutletComponent","router","activatedRoute","cd","injector","compiler","tabDecoratorService","sdNotifyService","_rootRoute","_subscription","_firstLoad","tabTrackBy","index","_closeTab","isActive","activeKey","activeIndex","findIndex","_k","nextTab","nextUrl","url","nextQueryParams","assign","queryParams","filter","navigate","switchTab","navigateByUrl","_activeRoute","fullUrl","route","params","data","split","hash","console","log","existedIndex","activatedIndex","forEach","currentNavigation","getCurrentNavigation","_b","extras","existedTab","_d","_c","parent","routeConfig","loadChildren","module","_l","compileModuleAsync","factory","injector_1","activatedRoute_1","_getActivatedRoute","SdOutletInjector","name","_f","_e","replaceTab","splice","_h","_g","_j","notify","warning","_getActivatedRouteSnapshot","activatedRouteSnapshot","firstChild","pipe","RoutesRecognized","NavigationEnd","snapshot","routerState","root","urlAfterRedirects","Router","ActivatedRoute","Injector","Compiler","token","notFoundValue","SdTabInfoPipe","transform","tabInfo","of","map","find","initialName","tooltip","color","Pipe","RouterLinkMouseDownDirective","onMouseDown","button","ctrlKey","shiftKey","altKey","metaKey","onClick","RouterLinkWithHref","Directive","NgModule","declarations","imports","RouterModule","CommonModule","MatIconModule","MatTooltipModule","DragDropModule","exports","providers","service","take"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\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 { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n currentTabChanges = new BehaviorSubject<SdTab>(null);\r\n newTabs = new BehaviorSubject<SdTab>(null);\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n this.currentTabChanges.next(tab);\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { SdTab } from \"../../models/tab-router.model\";\r\nimport { SdTabRouterService } from \"../../services/tab-router.service\";\r\n\r\n@Component({\r\n selector: \"sd-tab-router-item\",\r\n templateUrl: \"./tab-router-item.component.html\",\r\n styleUrls: [\"./tab-router-item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterItemComponent implements OnInit, OnDestroy {\r\n @Input() tab: SdTab;\r\n\r\n #subsctiption: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private tabRouterService: SdTabRouterService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.#subsctiption.add(\r\n this.tabRouterService.events.subscribe(() =>\r\n this.cdRef.markForCheck()\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subsctiption.unsubscribe();\r\n }\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor(private cdRef: ChangeDetectorRef,public elementRef: ElementRef<any>) {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 68) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n onDrop = (event: CdkDragDrop<SdTab[]>) => {\r\n moveItemInArray(this.tabs, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n tabTrackBy = (index: number, tab: SdTab) => {\r\n return tab.key;\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n const data = {\r\n ...(route.data || {}),\r\n }\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n console.log(url, queryParams, key);\r\n console.log(this.tabs);\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n if (existedIndex >= 0 && currentNavigation?.extras?.state?.switchTab) {\r\n const existedTab = this.tabs[existedIndex];\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (\r\n activatedIndex >= 0 &&\r\n currentNavigation?.extras?.state?.replaceTab\r\n ) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n if (existedIndex >= 0 && !currentNavigation?.extras?.state?.switchTab) {\r\n this.tabs[existedIndex] = tab;\r\n } else {\r\n this.tabs.push(tab);\r\n }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 15) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) {}\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tabInfo: SdTabInfo, tab: SdTab): Observable<SdTabInfo> {\r\n if (tabInfo) {\r\n return of(tabInfo);\r\n }\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams, data } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams, data }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { RouterLinkWithHref } from \"@angular/router\";\r\n\r\n@Directive({\r\n selector: \"a[routerLink],area[routerLink]\",\r\n})\r\nexport class RouterLinkMouseDownDirective extends RouterLinkWithHref {\r\n @HostListener(\"mousedown\", [\r\n \"$event.button\",\r\n \"$event.ctrlKey\",\r\n \"$event.shiftKey\",\r\n \"$event.altKey\",\r\n \"$event.metaKey\",\r\n ])\r\n onMouseDown(\r\n button: number,\r\n ctrlKey: boolean,\r\n shiftKey: boolean,\r\n altKey: boolean,\r\n metaKey: boolean\r\n ): boolean {\r\n return this.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterLinkMouseDownDirective } from './directives/router-link-mouse-down.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n RouterLinkMouseDownDirective,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any, data: Record<string, any> }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/directives/router-link-mouse-down.directive.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","pop","length","push","__read","o","m","r","i","ar","error","__classPrivateFieldGet","receiver","state","kind","has","get","__classPrivateFieldSet","set","SdTabBase","tab","_tab","defineProperty","SdTabActivated","_super","SdTabDeactivated","SdTabRouterService","notifyService","_this","events","BehaviorSubject","actions","builders","currentTabChanges","newTabs","_currentTab","_componentBuilders","addBuilder","builder","some","component","setCurrentTab","pushEvent","Event","setOptions","close","type","_a","key","Injectable","args","providedIn","SdNotifyService","SdTabDecoratorService","tabRouterService","undefined","SdTabRouterItemComponent","cdRef","_subsctiption","Subscription","event","preventDefault","stopPropagation","ngOnInit","add","subscribe","markForCheck","ngOnDestroy","unsubscribe","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Input","SdTabRouterNavComponent","elementRef","mode","checkUI","nameWidth","tabRouterNav","nativeElement","clientWidth","tabs","onDrop","moveItemInArray","previousIndex","currentIndex","onResize","ElementRef","ViewChild","HostListener","SdTabRouterOutletComponent","router","activatedRoute","cd","injector","compiler","tabDecoratorService","sdNotifyService","_rootRoute","_subscription","_firstLoad","tabTrackBy","index","_closeTab","isActive","activeKey","activeIndex","findIndex","_k","nextTab","nextUrl","url","nextQueryParams","assign","queryParams","filter","navigate","switchTab","navigateByUrl","_activeRoute","fullUrl","route","params","data","split","hash","console","log","existedIndex","activatedIndex","forEach","currentNavigation","getCurrentNavigation","_b","extras","existedTab","_d","_c","parent","routeConfig","loadChildren","module","_l","compileModuleAsync","factory","injector_1","activatedRoute_1","_getActivatedRoute","SdOutletInjector","name","_f","_e","replaceTab","splice","_h","_g","_j","notify","warning","_getActivatedRouteSnapshot","activatedRouteSnapshot","firstChild","pipe","RoutesRecognized","NavigationEnd","snapshot","routerState","root","urlAfterRedirects","Router","ActivatedRoute","Injector","Compiler","token","notFoundValue","SdTabInfoPipe","transform","tabInfo","of","map","find","initialName","tooltip","color","Pipe","RouterLinkMouseDownDirective","onMouseDown","button","ctrlKey","shiftKey","altKey","metaKey","onClick","RouterLinkWithHref","Directive","NgModule","declarations","imports","RouterModule","CommonModule","MatIconModule","MatTooltipModule","DragDropModule","exports","providers","service","take"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\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 { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n currentTabChanges = new BehaviorSubject<SdTab>(null);\r\n newTabs = new BehaviorSubject<SdTab>(null);\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n this.currentTabChanges.next(tab);\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { SdTab } from \"../../models/tab-router.model\";\r\nimport { SdTabRouterService } from \"../../services/tab-router.service\";\r\n\r\n@Component({\r\n selector: \"sd-tab-router-item\",\r\n templateUrl: \"./tab-router-item.component.html\",\r\n styleUrls: [\"./tab-router-item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterItemComponent implements OnInit, OnDestroy {\r\n @Input() tab: SdTab;\r\n\r\n #subsctiption: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private tabRouterService: SdTabRouterService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.#subsctiption.add(\r\n this.tabRouterService.events.subscribe(() =>\r\n this.cdRef.markForCheck()\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subsctiption.unsubscribe();\r\n }\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor(private cdRef: ChangeDetectorRef,public elementRef: ElementRef<any>) {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 68) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n onDrop = (event: CdkDragDrop<SdTab[]>) => {\r\n moveItemInArray(this.tabs, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n tabTrackBy = (index: number, tab: SdTab) => {\r\n return tab.key;\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n const data = {\r\n ...(route.data || {}),\r\n }\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n console.log(url, queryParams, key);\r\n console.log(this.tabs);\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n if (existedIndex >= 0 && currentNavigation?.extras?.state?.switchTab) {\r\n const existedTab = this.tabs[existedIndex];\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (\r\n activatedIndex >= 0 &&\r\n currentNavigation?.extras?.state?.replaceTab\r\n ) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n if (existedIndex >= 0 && !currentNavigation?.extras?.state?.switchTab) {\r\n this.tabs[existedIndex] = tab;\r\n } else {\r\n this.tabs.push(tab);\r\n }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 15) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) {}\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tabInfo: SdTabInfo, tab: SdTab): Observable<SdTabInfo> {\r\n if (tabInfo) {\r\n return of(tabInfo);\r\n }\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams, data } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams, data }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { RouterLinkWithHref } from \"@angular/router\";\r\n\r\n@Directive({\r\n selector: \"a[routerLink],area[routerLink]\",\r\n})\r\nexport class RouterLinkMouseDownDirective extends RouterLinkWithHref {\r\n @HostListener(\"mousedown\", [\r\n \"$event.button\",\r\n \"$event.ctrlKey\",\r\n \"$event.shiftKey\",\r\n \"$event.altKey\",\r\n \"$event.metaKey\",\r\n ])\r\n onMouseDown(\r\n button: number,\r\n ctrlKey: boolean,\r\n shiftKey: boolean,\r\n altKey: boolean,\r\n metaKey: boolean\r\n ): boolean {\r\n return this.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterLinkMouseDownDirective } from './directives/router-link-mouse-down.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n RouterLinkMouseDownDirective,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any, data: Record<string, any> }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n"]}
|
|
@@ -27,7 +27,7 @@ export class SdTabRouterNavComponent {
|
|
|
27
27
|
SdTabRouterNavComponent.decorators = [
|
|
28
28
|
{ type: Component, args: [{
|
|
29
29
|
selector: 'sd-tab-router-nav',
|
|
30
|
-
template: "<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis=\"x\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap\"
|
|
30
|
+
template: "<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis=\"x\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap\"\r\n [class.d-none]=\"tabs?.length > 1\"\r\n>\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <sd-tab-router-item [tab]=\"tab\" cdkDrag [cdkDragBoundary]=\"elementRef?.nativeElement\"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n",
|
|
31
31
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
32
|
styles: [".tab-router__nav{background:#f9f9f9;overflow:hidden}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]
|
|
33
33
|
},] }
|
|
@@ -41,4 +41,4 @@ SdTabRouterNavComponent.propDecorators = {
|
|
|
41
41
|
tabs: [{ type: Input }],
|
|
42
42
|
onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXJvdXRlci1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS90YWItcm91dGVyLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL3RhYi1yb3V0ZXItbmF2L3RhYi1yb3V0ZXItbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQVV2QixNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQW9CLEtBQXdCLEVBQVEsVUFBMkI7UUFBM0QsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBUSxlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUYvRSxTQUFJLEdBQTBCLFNBQVMsQ0FBQztRQVN4QyxZQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBQzFELE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3JFLElBQUksU0FBUyxJQUFJLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7YUFDdkI7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQTtRQUVELFdBQU0sR0FBRyxDQUFDLEtBQTJCLEVBQUUsRUFBRTtZQUN2QyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUE7SUFwQmlGLENBQUM7SUFHbkYsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7O1lBakJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixtZ0JBQThDO2dCQUU5QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQWZDLGlCQUFpQjtZQUVqQixVQUFVOzs7MkJBZVQsU0FBUyxTQUFDLGNBQWM7bUJBRXhCLEtBQUs7dUJBS0wsWUFBWSxTQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2RUYWIgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFiLXJvdXRlci5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLXRhYi1yb3V0ZXItbmF2JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLXJvdXRlci1uYXYuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYi1yb3V0ZXItbmF2LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkVGFiUm91dGVyTmF2Q29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCd0YWJSb3V0ZXJOYXYnKSB0YWJSb3V0ZXJOYXY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIHRhYnM6IFNkVGFiW107XHJcbiAgbW9kZTogJ2RlZmF1bHQnIHwgJ2NvbXBhY3QnID0gJ2RlZmF1bHQnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxhbnk+KSB7fVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGVja1VJKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja1VJID0gKCkgPT4ge1xyXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLnRhYlJvdXRlck5hdi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgY29uc3QgbmFtZVdpZHRoID0gKHdpZHRoIC0gdGhpcy50YWJzLmxlbmd0aCAqIDY4KSAvIHRoaXMudGFicy5sZW5ndGg7XHJcbiAgICBpZiAobmFtZVdpZHRoIDw9IDIwKSB7XHJcbiAgICAgIHRoaXMubW9kZSA9ICdjb21wYWN0JztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubW9kZSA9ICdkZWZhdWx0JztcclxuICAgIH1cclxuICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkRyb3AgPSAoZXZlbnQ6IENka0RyYWdEcm9wPFNkVGFiW10+KSA9PiB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy50YWJzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -206,7 +206,7 @@ class SdTabRouterNavComponent {
|
|
|
206
206
|
SdTabRouterNavComponent.decorators = [
|
|
207
207
|
{ type: Component, args: [{
|
|
208
208
|
selector: 'sd-tab-router-nav',
|
|
209
|
-
template: "<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis=\"x\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap\"
|
|
209
|
+
template: "<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis=\"x\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap\"\r\n [class.d-none]=\"tabs?.length > 1\"\r\n>\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <sd-tab-router-item [tab]=\"tab\" cdkDrag [cdkDragBoundary]=\"elementRef?.nativeElement\"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n",
|
|
210
210
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
211
211
|
styles: [".tab-router__nav{background:#f9f9f9;overflow:hidden}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]
|
|
212
212
|
},] }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-tab-router.js","sources":["../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/directives/router-link-mouse-down.directive.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/public-api.ts","../../../../projects/sd-core/tab-router/sd-angular-core-tab-router.ts"],"sourcesContent":["import { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n currentTabChanges = new BehaviorSubject<SdTab>(null);\r\n newTabs = new BehaviorSubject<SdTab>(null);\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n this.currentTabChanges.next(tab);\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any, data: Record<string, any> }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { SdTab } from \"../../models/tab-router.model\";\r\nimport { SdTabRouterService } from \"../../services/tab-router.service\";\r\n\r\n@Component({\r\n selector: \"sd-tab-router-item\",\r\n templateUrl: \"./tab-router-item.component.html\",\r\n styleUrls: [\"./tab-router-item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterItemComponent implements OnInit, OnDestroy {\r\n @Input() tab: SdTab;\r\n\r\n #subsctiption: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private tabRouterService: SdTabRouterService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.#subsctiption.add(\r\n this.tabRouterService.events.subscribe(() =>\r\n this.cdRef.markForCheck()\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subsctiption.unsubscribe();\r\n }\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor(private cdRef: ChangeDetectorRef,public elementRef: ElementRef<any>) {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 68) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n onDrop = (event: CdkDragDrop<SdTab[]>) => {\r\n moveItemInArray(this.tabs, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n tabTrackBy = (index: number, tab: SdTab) => {\r\n return tab.key;\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n const data = {\r\n ...(route.data || {}),\r\n }\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n console.log(url, queryParams, key);\r\n console.log(this.tabs);\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n if (existedIndex >= 0 && currentNavigation?.extras?.state?.switchTab) {\r\n const existedTab = this.tabs[existedIndex];\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (\r\n activatedIndex >= 0 &&\r\n currentNavigation?.extras?.state?.replaceTab\r\n ) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n if (existedIndex >= 0 && !currentNavigation?.extras?.state?.switchTab) {\r\n this.tabs[existedIndex] = tab;\r\n } else {\r\n this.tabs.push(tab);\r\n }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 15) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) {}\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tabInfo: SdTabInfo, tab: SdTab): Observable<SdTabInfo> {\r\n if (tabInfo) {\r\n return of(tabInfo);\r\n }\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams, data } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams, data }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { RouterLinkWithHref } from \"@angular/router\";\r\n\r\n@Directive({\r\n selector: \"a[routerLink],area[routerLink]\",\r\n})\r\nexport class RouterLinkMouseDownDirective extends RouterLinkWithHref {\r\n @HostListener(\"mousedown\", [\r\n \"$event.button\",\r\n \"$event.ctrlKey\",\r\n \"$event.shiftKey\",\r\n \"$event.altKey\",\r\n \"$event.metaKey\",\r\n ])\r\n onMouseDown(\r\n button: number,\r\n ctrlKey: boolean,\r\n shiftKey: boolean,\r\n altKey: boolean,\r\n metaKey: boolean\r\n ): boolean {\r\n return this.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterLinkMouseDownDirective } from './directives/router-link-mouse-down.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n RouterLinkMouseDownDirective,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\n// Models\r\nexport * from './lib/models/tab-router.model';\r\nexport * from './lib/events/tab-router.event';\r\nexport * from './lib/actions/tab-router.action';\r\n\r\n// Decorators\r\nexport * from './lib/decorators/tab.decorator';\r\n\r\n// Service\r\nexport * from './lib/services/tab-router.service';\r\nexport * from './lib/services/tab-decorator.service';\r\n\r\n// Components\r\nexport * from './lib/components/tab-router-item/tab-router-item.component';\r\nexport * from './lib/components/tab-router-nav/tab-router-nav.component';\r\nexport * from './lib/components/tab-router-outlet/tab-router-outlet.component';\r\n\r\n// Module\r\nexport * from './lib/tab-router.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {RouterLinkMouseDownDirective as ɵb} from './src/lib/directives/router-link-mouse-down.directive';\nexport {SdTabInfoPipe as ɵa} from './src/lib/pipes/tab-info.pipe';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sd-angular-core-tab-router.js","sources":["../../../../projects/sd-core/tab-router/src/lib/events/tab-router.event.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-router.service.ts","../../../../projects/sd-core/tab-router/src/lib/services/tab-decorator.service.ts","../../../../projects/sd-core/tab-router/src/lib/decorators/tab.decorator.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-item/tab-router-item.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.ts","../../../../projects/sd-core/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.ts","../../../../projects/sd-core/tab-router/src/lib/pipes/tab-info.pipe.ts","../../../../projects/sd-core/tab-router/src/lib/directives/router-link-mouse-down.directive.ts","../../../../projects/sd-core/tab-router/src/lib/tab-router.module.ts","../../../../projects/sd-core/tab-router/src/public-api.ts","../../../../projects/sd-core/tab-router/sd-angular-core-tab-router.ts"],"sourcesContent":["import { SdTab } from '../models/tab-router.model';\r\n\r\nexport class SdTabBase {\r\n #tab: SdTab | null;\r\n\r\n constructor(tab: SdTab | null) {\r\n this.#tab = tab;\r\n }\r\n\r\n get tab(): SdTab | null {\r\n return this.#tab;\r\n }\r\n}\r\n\r\nexport class SdTabActivated extends SdTabBase {}\r\n\r\nexport class SdTabDeactivated extends SdTabBase {}\r\n\r\nexport declare type SdTabEvent = SdTabActivated | SdTabDeactivated;\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabAction } from '../actions/tab-router.action';\r\nimport { SdTabEvent, SdTabBase } from '../events/tab-router.event';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport { SdTabComponentBuilder } from '../decorators/tab.decorator';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SdTabRouterService {\r\n events = new BehaviorSubject<SdTabEvent>(new SdTabBase(null));\r\n actions = new BehaviorSubject<SdTabAction | null>(null);\r\n builders = new BehaviorSubject<SdTabComponentBuilder[]>([]);\r\n currentTabChanges = new BehaviorSubject<SdTab>(null);\r\n newTabs = new BehaviorSubject<SdTab>(null);\r\n #currentTab: SdTab | null = null;\r\n #componentBuilders: SdTabComponentBuilder[] = [];\r\n constructor(private notifyService: SdNotifyService) {\r\n }\r\n\r\n addBuilder = (builder: SdTabComponentBuilder) => {\r\n if (!this.#componentBuilders.some(e => e.component === builder.component)) {\r\n this.#componentBuilders.push(builder);\r\n this.builders.next(this.#componentBuilders);\r\n }\r\n }\r\n\r\n get currentTab() {\r\n return this.#currentTab;\r\n }\r\n\r\n get key() {\r\n return this.#currentTab?.key || null;\r\n }\r\n\r\n // select = (tabOrKey: string | SdTab): void => {\r\n // const tab = this.#tabs.find(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key === tabOrKey;\r\n // }\r\n // return e.key === tabOrKey?.key;\r\n // });\r\n // if (tab) {\r\n // this.#currentTab = tab;\r\n // }\r\n // }\r\n\r\n // add = (tab: SdTab): void => {\r\n // if (!tab.key) {\r\n // this.notifyService.notify.warning('Tab key is required');\r\n // }\r\n // if (!tab.component) {\r\n // this.notifyService.notify.warning('Tab component is required');\r\n // }\r\n // const existedTab = this.#tabs.find(e => e.key === tab.key);\r\n // if (!existedTab) {\r\n // this.#tabs.push(tab);\r\n // this.select(tab);\r\n // } else {\r\n // this.select(existedTab);\r\n // }\r\n // }\r\n\r\n // remove = (tabOrKey: string | SdTab): void => {\r\n // this.#tabs = this.#tabs.filter(e => {\r\n // if (typeof (tabOrKey) === 'string') {\r\n // return e.key !== tabOrKey;\r\n // }\r\n // return e.key !== tabOrKey?.key;\r\n // });\r\n // }\r\n\r\n\r\n setCurrentTab = (tab: SdTab): void => {\r\n this.#currentTab = tab;\r\n this.currentTabChanges.next(tab);\r\n }\r\n\r\n pushEvent = (tab: SdTab, Event: Type<SdTabEvent>) => {\r\n this.events.next(new Event(tab));\r\n }\r\n\r\n setOptions = () => { };\r\n\r\n close = (tab?: SdTab) => {\r\n if (tab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab,\r\n });\r\n } else if (this.#currentTab) {\r\n this.actions.next({\r\n type: 'close',\r\n tab: this.#currentTab,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SdTabRouterService } from './tab-router.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTabDecoratorService {\r\n static tabRouterService = new BehaviorSubject<SdTabRouterService>(undefined);\r\n constructor(tabRouterService: SdTabRouterService) {\r\n SdTabDecoratorService.tabRouterService.next(tabRouterService);\r\n }\r\n}\r\n","import { Type } from '@angular/core';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport { SdTabDecoratorService } from '../services/tab-decorator.service';\r\n\r\nexport declare interface SdTabComponentBuilder {\r\n component: Type<any>;\r\n name: string | ((args: { url: string, params: any, queryParams: any, data: Record<string, any> }) => string);\r\n initialName: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n tooltip?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n color?: string | ((args: { url: string, params: any, queryParams: any }) => string);\r\n isDetail?: boolean;\r\n}\r\n\r\nexport function SdTabComponent<T>(builder: SdTabComponentBuilder) {\r\n return (constructor: T) => {\r\n SdTabDecoratorService.tabRouterService.pipe(\r\n filter(service => service !== undefined && service !== null),\r\n take(1)).subscribe(service => {\r\n service.addBuilder(builder);\r\n });\r\n };\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { SdTab } from \"../../models/tab-router.model\";\r\nimport { SdTabRouterService } from \"../../services/tab-router.service\";\r\n\r\n@Component({\r\n selector: \"sd-tab-router-item\",\r\n templateUrl: \"./tab-router-item.component.html\",\r\n styleUrls: [\"./tab-router-item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterItemComponent implements OnInit, OnDestroy {\r\n @Input() tab: SdTab;\r\n\r\n #subsctiption: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private tabRouterService: SdTabRouterService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.#subsctiption.add(\r\n this.tabRouterService.events.subscribe(() =>\r\n this.cdRef.markForCheck()\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subsctiption.unsubscribe();\r\n }\r\n\r\n close = (event: Event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.tabRouterService.close(this.tab);\r\n };\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-nav',\r\n templateUrl: './tab-router-nav.component.html',\r\n styleUrls: ['./tab-router-nav.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdTabRouterNavComponent {\r\n @ViewChild('tabRouterNav') tabRouterNav: ElementRef;\r\n\r\n @Input() tabs: SdTab[];\r\n mode: 'default' | 'compact' = 'default';\r\n\r\n constructor(private cdRef: ChangeDetectorRef,public elementRef: ElementRef<any>) {}\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event): void {\r\n this.checkUI();\r\n }\r\n\r\n checkUI = () => {\r\n const width = this.tabRouterNav.nativeElement.clientWidth;\r\n const nameWidth = (width - this.tabs.length * 68) / this.tabs.length;\r\n if (nameWidth <= 20) {\r\n this.mode = 'compact';\r\n } else {\r\n this.mode = 'default';\r\n }\r\n this.cdRef.markForCheck();\r\n }\r\n\r\n onDrop = (event: CdkDragDrop<SdTab[]>) => {\r\n moveItemInArray(this.tabs, event.previousIndex, event.currentIndex);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Compiler,\r\n Component,\r\n Injector,\r\n NgModuleRef,\r\n OnDestroy,\r\n OnInit,\r\n Type,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n ActivatedRouteSnapshot,\r\n ChildrenOutletContexts,\r\n // ChildrenOutletContexts,\r\n Event,\r\n NavigationEnd,\r\n PRIMARY_OUTLET,\r\n Router,\r\n RoutesRecognized,\r\n} from '@angular/router';\r\nimport { SdNotifyService } from '@sd-angular/core/notify';\r\nimport {\r\n SdTabActivated,\r\n SdTabDeactivated,\r\n} from '../../events/tab-router.event';\r\n\r\nimport { SdTab } from '../../models/tab-router.model';\r\nimport { SdTabAction } from '../../actions/tab-router.action';\r\nimport { SdTabRouterService } from '../../services/tab-router.service';\r\nimport { SdTabRouterNavComponent } from '../tab-router-nav/tab-router-nav.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { SdTabDecoratorService } from '../../services/tab-decorator.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport hash from 'object-hash';\r\n\r\n@Component({\r\n selector: 'sd-tab-router-outlet',\r\n templateUrl: './tab-router-outlet.component.html',\r\n styleUrls: ['./tab-router-outlet.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SdTabRouterOutletComponent implements OnDestroy {\r\n @ViewChild('tabRouterNav') tabRouterNav: SdTabRouterNavComponent;\r\n tabs: SdTab[] = [];\r\n\r\n #rootRoute: ActivatedRoute;\r\n #subscription = new Subscription();\r\n #firstLoad = true;\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private cd: ChangeDetectorRef,\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n private tabDecoratorService: SdTabDecoratorService,\r\n private tabRouterService: SdTabRouterService,\r\n private sdNotifyService: SdNotifyService\r\n ) {\r\n this.#subscription.add(\r\n router.events\r\n .pipe(\r\n filter(\r\n (event) =>\r\n event instanceof RoutesRecognized ||\r\n event instanceof NavigationEnd\r\n )\r\n )\r\n .subscribe(async (event: RoutesRecognized | NavigationEnd) => {\r\n if (this.#firstLoad && event instanceof NavigationEnd) {\r\n this.#firstLoad = false;\r\n const route = this.#getActivatedRouteSnapshot(\r\n this.activatedRoute.snapshot\r\n );\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n return;\r\n }\r\n if (!this.#firstLoad && event instanceof RoutesRecognized) {\r\n const route = this.#getActivatedRouteSnapshot(event.state.root);\r\n this.#rootRoute = this.router.routerState.root;\r\n await this.#activeRoute(\r\n event.urlAfterRedirects || event.url,\r\n route\r\n );\r\n }\r\n })\r\n );\r\n\r\n this.#subscription.add(\r\n tabRouterService.actions.subscribe((event: SdTabAction | null) => {\r\n if (event && event.type === 'close') {\r\n this.#closeTab(event.tab);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.#subscription.unsubscribe();\r\n }\r\n\r\n tabTrackBy = (index: number, tab: SdTab) => {\r\n return tab.key;\r\n }\r\n\r\n #closeTab = (tab: SdTab) => {\r\n const { isActive, key: activeKey } = tab;\r\n\r\n if (isActive) {\r\n const activeIndex = this.tabs.findIndex(({ key }) => key === activeKey);\r\n const nextTab = this.tabs[activeIndex + 1] || this.tabs[activeIndex - 1];\r\n if (nextTab) {\r\n const { url: nextUrl } = nextTab;\r\n const nextQueryParams = {\r\n ...(nextTab.queryParams || {}),\r\n };\r\n\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigate([nextUrl], {\r\n queryParams: nextQueryParams,\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== activeKey);\r\n this.router.navigateByUrl('/', {\r\n state: {\r\n switchTab: true,\r\n },\r\n });\r\n }\r\n } else {\r\n this.tabs = this.tabs.filter(({ key }) => key !== tab.key);\r\n this.tabRouterNav?.checkUI();\r\n this.cd.markForCheck();\r\n }\r\n };\r\n\r\n #activeRoute = async (\r\n fullUrl: string,\r\n route: ActivatedRouteSnapshot | null\r\n ) => {\r\n if (!route?.component) {\r\n return;\r\n }\r\n const component = route.component as Type<any>;\r\n const queryParams = {\r\n ...(route.queryParams || {}),\r\n };\r\n const params = {\r\n ...(route.params || {}),\r\n };\r\n const data = {\r\n ...(route.data || {}),\r\n }\r\n\r\n const [url] = fullUrl.split('?');\r\n const key = hash({ url, queryParams });\r\n console.log(url, queryParams, key);\r\n console.log(this.tabs);\r\n let existedIndex = -1;\r\n let activatedIndex = -1;\r\n this.tabs.forEach((tab: SdTab, index: number) => {\r\n if (tab.key === key) {\r\n tab.isActive = true;\r\n existedIndex = index;\r\n } else {\r\n if (tab.isActive) {\r\n activatedIndex = index;\r\n this.tabRouterService.pushEvent(tab, SdTabDeactivated);\r\n }\r\n tab.isActive = false;\r\n }\r\n });\r\n\r\n const currentNavigation = this.router.getCurrentNavigation();\r\n if (existedIndex >= 0 && currentNavigation?.extras?.state?.switchTab) {\r\n const existedTab = this.tabs[existedIndex];\r\n this.tabRouterService.setCurrentTab(existedTab);\r\n this.tabRouterService.pushEvent(existedTab, SdTabActivated);\r\n } else {\r\n if (typeof route?.parent?.routeConfig?.loadChildren === 'function') {\r\n const module = await route.parent.routeConfig.loadChildren();\r\n const factory = await this.compiler.compileModuleAsync(module);\r\n const injector = factory.create(this.injector);\r\n const activatedRoute = this.#getActivatedRoute(\r\n this.#rootRoute,\r\n component\r\n );\r\n\r\n const tab = {\r\n key,\r\n component,\r\n injector: new SdOutletInjector(activatedRoute, injector),\r\n isActive: true,\r\n name: url,\r\n url,\r\n params,\r\n queryParams,\r\n data\r\n };\r\n\r\n this.tabRouterService.setCurrentTab(tab);\r\n if (\r\n activatedIndex >= 0 &&\r\n currentNavigation?.extras?.state?.replaceTab\r\n ) {\r\n this.tabs.splice(activatedIndex, 1);\r\n }\r\n if (existedIndex >= 0 && !currentNavigation?.extras?.state?.switchTab) {\r\n this.tabs[existedIndex] = tab;\r\n } else {\r\n this.tabs.push(tab);\r\n }\r\n }\r\n\r\n this.tabRouterNav?.checkUI();\r\n if (this.tabs.length > 10) {\r\n this.sdNotifyService.notify.warning(\r\n 'Bạn đã mở quá nhiều tab. Vui lòng tắt các tab không dùng để hệ thống hoạt động tốt hơn.'\r\n );\r\n }\r\n if (this.tabs.length > 15) {\r\n this.tabs.splice(0, this.tabs.length - 10);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n };\r\n\r\n #getActivatedRouteSnapshot = (\r\n activatedRouteSnapshot: ActivatedRouteSnapshot\r\n ): ActivatedRouteSnapshot | null => {\r\n if (!activatedRouteSnapshot) {\r\n return null;\r\n }\r\n while (activatedRouteSnapshot.firstChild) {\r\n activatedRouteSnapshot = activatedRouteSnapshot.firstChild;\r\n }\r\n return activatedRouteSnapshot;\r\n };\r\n\r\n #getActivatedRoute = (\r\n activatedRoute: ActivatedRoute,\r\n component: any\r\n ): ActivatedRoute | null => {\r\n if (!activatedRoute) {\r\n return null;\r\n }\r\n\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n while (activatedRoute.firstChild) {\r\n activatedRoute = activatedRoute.firstChild;\r\n if (activatedRoute.component && activatedRoute.component === component) {\r\n return activatedRoute;\r\n }\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nclass SdOutletInjector implements Injector {\r\n constructor(\r\n private route: ActivatedRoute | null,\r\n // private childContexts: ChildrenOutletContexts,\r\n private parent: any\r\n ) {}\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ActivatedRoute && this.route) {\r\n return this.route;\r\n }\r\n\r\n // if (token === ChildrenOutletContexts) {\r\n // return this.childContexts;\r\n // }\r\n\r\n return this.parent.get(token, notFoundValue);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SdTab, SdTabInfo } from '../models/tab-router.model';\r\nimport { SdTabRouterService } from '../services/tab-router.service';\r\n@Pipe({\r\n name: 'sdTabInfo'\r\n})\r\nexport class SdTabInfoPipe implements PipeTransform {\r\n constructor(private tabRouterService: SdTabRouterService) { }\r\n transform(tabInfo: SdTabInfo, tab: SdTab): Observable<SdTabInfo> {\r\n if (tabInfo) {\r\n return of(tabInfo);\r\n }\r\n return this.tabRouterService.builders.pipe(map(builders => {\r\n const builder = builders.find(e => e.component === tab.component);\r\n if (builder) {\r\n const { url, params, queryParams, data } = tab;\r\n tab.tabInfo = {\r\n name: typeof (builder.name) === 'function' ?\r\n builder.name({ url, params, queryParams, data }) : builder.name,\r\n initialName: typeof (builder.initialName) === 'function' ?\r\n builder.initialName({ url, params, queryParams }) : builder.initialName,\r\n tooltip: typeof (builder.tooltip) === 'function' ?\r\n builder.tooltip({ url, params, queryParams }) : builder.tooltip,\r\n color: typeof (builder.color) === 'function' ?\r\n builder.color({ url, params, queryParams }) : builder.color\r\n };\r\n return tab.tabInfo;\r\n }\r\n tab.tabInfo = {\r\n name: tab.url,\r\n initialName: null,\r\n };\r\n return tab.tabInfo;\r\n }));\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { RouterLinkWithHref } from \"@angular/router\";\r\n\r\n@Directive({\r\n selector: \"a[routerLink],area[routerLink]\",\r\n})\r\nexport class RouterLinkMouseDownDirective extends RouterLinkWithHref {\r\n @HostListener(\"mousedown\", [\r\n \"$event.button\",\r\n \"$event.ctrlKey\",\r\n \"$event.shiftKey\",\r\n \"$event.altKey\",\r\n \"$event.metaKey\",\r\n ])\r\n onMouseDown(\r\n button: number,\r\n ctrlKey: boolean,\r\n shiftKey: boolean,\r\n altKey: boolean,\r\n metaKey: boolean\r\n ): boolean {\r\n return this.onClick(button, ctrlKey, shiftKey, altKey, metaKey);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { SdTabRouterItemComponent } from './components/tab-router-item/tab-router-item.component';\r\nimport { SdTabRouterNavComponent } from './components/tab-router-nav/tab-router-nav.component';\r\nimport { SdTabRouterOutletComponent } from './components/tab-router-outlet/tab-router-outlet.component';\r\nimport { SdTabInfoPipe } from './pipes/tab-info.pipe';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { RouterLinkMouseDownDirective } from './directives/router-link-mouse-down.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n SdTabInfoPipe,\r\n RouterLinkMouseDownDirective,\r\n ],\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n DragDropModule\r\n ],\r\n exports: [\r\n SdTabRouterItemComponent,\r\n SdTabRouterNavComponent,\r\n SdTabRouterOutletComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class SdTabRouterModule {}\r\n","/*\r\n * Public API Surface of superdev-angular-core\r\n */\r\n\r\n// Models\r\nexport * from './lib/models/tab-router.model';\r\nexport * from './lib/events/tab-router.event';\r\nexport * from './lib/actions/tab-router.action';\r\n\r\n// Decorators\r\nexport * from './lib/decorators/tab.decorator';\r\n\r\n// Service\r\nexport * from './lib/services/tab-router.service';\r\nexport * from './lib/services/tab-decorator.service';\r\n\r\n// Components\r\nexport * from './lib/components/tab-router-item/tab-router-item.component';\r\nexport * from './lib/components/tab-router-nav/tab-router-nav.component';\r\nexport * from './lib/components/tab-router-outlet/tab-router-outlet.component';\r\n\r\n// Module\r\nexport * from './lib/tab-router.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {RouterLinkMouseDownDirective as ɵb} from './src/lib/directives/router-link-mouse-down.directive';\nexport {SdTabInfoPipe as ɵa} from './src/lib/pipes/tab-info.pipe';"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"SdTabInfo":{"__symbolic":"interface"},"SdTab":{"__symbolic":"interface"},"SdTabBase":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTab"}]}]}},"SdTabActivated":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SdTabBase"},"members":{}},"SdTabDeactivated":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SdTabBase"},"members":{}},"SdTabEvent":{"__symbolic":"interface"},"SdTabAction":{"__symbolic":"interface"},"SdTabComponentBuilder":{"__symbolic":"interface"},"SdTabComponent":{"__symbolic":"function","parameters":["builder"],"value":{"__symbolic":"error","message":"Lambda not supported","line":14,"character":9,"module":"./src/lib/decorators/tab.decorator"}},"SdTabRouterService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@sd-angular/core/notify","name":"SdNotifyService","line":19,"character":37}]}]},"statics":{"ɵprov":{}}},"SdTabDecoratorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}]},"statics":{"tabRouterService":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"rxjs","name":"BehaviorSubject","line":7,"character":32},"arguments":[{"__symbolic":"reference","name":"undefined"}]},"ɵprov":{}}},"SdTabRouterItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"sd-tab-router-item","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<a\r\n [routerLink]=\"[tab.url]\"\r\n [queryParams]=\"tab.queryParams\"\r\n [state]=\"{ switchTab: true }\"\r\n class=\"tab-router__item d-flex align-items-center\"\r\n [ngClass]=\"{\r\n 'tab-router__item--active': tab.isActive\r\n }\">\r\n <ng-container *ngIf=\"tab.overrideTabInfo | sdTabInfo:tab | async as tabInfo\">\r\n <div class=\"\r\n tab-router__icon\r\n mr-8\r\n \" [ngStyle]=\"{\r\n 'background-color': tabInfo.color\r\n }\" [matTooltip]=\"tabInfo.tooltip || tabInfo.name\" matTooltipPosition=\"below\" matTooltipShowDelay=\"1000\">\r\n {{ tabInfo.initialName || 'SD' }}\r\n </div>\r\n <div class=\"flex-1 overflow-hidden\">\r\n <div\r\n class=\"tab-router__name\"\r\n [matTooltip]=\"tabInfo.tooltip || tabInfo.name\"\r\n matTooltipPosition=\"below\"\r\n matTooltipShowDelay=\"1000\"\r\n >\r\n {{ tabInfo.name }}\r\n </div>\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"tab-router__close d-flex align-items-center justify-content-center ml-4\"\r\n (click)=\"close($event)\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n</a>\r\n","styles":[":host{display:block;flex:1 1 64px;max-width:240px;overflow:hidden;position:relative}:host:after{background:#dde0e5;bottom:0;content:\"\";height:16px;margin:auto;position:absolute;right:0;top:0;width:1px}:host:last-child:after{content:none}.flex-1{flex:1}.tab-router__icon{background-color:#5c6bc0;border-radius:2px;color:#fff;font-size:10px;height:16px;line-height:16px;text-align:center;text-transform:uppercase;width:16px}.tab-router__icon .mat-icon{font-size:10px;height:10px;width:10px}.tab-router__close{background:none;border:0;border-radius:50%;color:#757575;height:16px;outline:none;width:16px}.tab-router__close:hover{background-color:rgba(0,0,0,.12)}.tab-router__close .mat-icon{font-size:12px;height:12px;width:12px}.tab-router__item{background:#f2f3f4;color:inherit;font-size:12px;line-height:16px;overflow:hidden;padding:16px 16px 8px;text-decoration:none}.tab-router__item:hover{background-color:#fff}.tab-router__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-router__item--active{background-color:#fff;border-radius:8px 8px 0 0}"]}]}],"members":{"tab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":25,"character":19},{"__symbolic":"reference","name":"SdTabRouterService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SdTabRouterNavComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"sd-tab-router-nav","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis=\"x\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap\",\r\n>\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <sd-tab-router-item [tab]=\"tab\" cdkDrag [cdkDragBoundary]=\"elementRef?.nativeElement\"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n","styles":[".tab-router__nav{background:#f9f9f9;overflow:hidden}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]}]}],"members":{"tabRouterNav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":20,"character":3},"arguments":["tabRouterNav"]}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":25,"character":29},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"onResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":27,"character":3},"arguments":["window:resize",["$event"]]}]}]}},"SdTabRouterOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"sd-tab-router-outlet","template":"<sd-tab-router-nav [tabs]=\"tabs\" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class=\"tab-router__list\">\r\n <ng-container *ngFor=\"let tab of tabs;trackBy:tabTrackBy\">\r\n <div class=\"tab-router__pane\" [class.active]=\"tab.isActive\" [id]=\"tab.key\">\r\n <div class=\"tab-router__content\">\r\n <ng-container\r\n *ngComponentOutlet=\"tab.component; injector: tab.injector\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","styles":[":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}:host ::ng-deep .sd-loading{max-height:100%;max-width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]}]}],"members":{"tabRouterNav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":3},"arguments":["tabRouterNav"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":52,"character":20},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":53,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":54,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":55,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":56,"character":22},{"__symbolic":"reference","name":"SdTabDecoratorService"},{"__symbolic":"reference","name":"SdTabRouterService"},{"__symbolic":"reference","module":"@sd-angular/core/notify","name":"SdNotifyService","line":59,"character":29}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SdTabRouterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SdTabRouterItemComponent"},{"__symbolic":"reference","name":"SdTabRouterNavComponent"},{"__symbolic":"reference","name":"SdTabRouterOutletComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}],"imports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":26,"character":4}],"exports":[{"__symbolic":"reference","name":"SdTabRouterItemComponent"},{"__symbolic":"reference","name":"SdTabRouterNavComponent"},{"__symbolic":"reference","name":"SdTabRouterOutletComponent"}],"providers":[]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"sdTabInfo"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}],"transform":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/router","name":"RouterLinkWithHref","line":6,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"a[routerLink],area[routerLink]"}]}],"members":{"onMouseDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":7,"character":3},"arguments":["mousedown",["$event.button","$event.ctrlKey","$event.shiftKey","$event.altKey","$event.metaKey"]]}]}]}}},"origins":{"SdTabInfo":"./src/lib/models/tab-router.model","SdTab":"./src/lib/models/tab-router.model","SdTabBase":"./src/lib/events/tab-router.event","SdTabActivated":"./src/lib/events/tab-router.event","SdTabDeactivated":"./src/lib/events/tab-router.event","SdTabEvent":"./src/lib/events/tab-router.event","SdTabAction":"./src/lib/actions/tab-router.action","SdTabComponentBuilder":"./src/lib/decorators/tab.decorator","SdTabComponent":"./src/lib/decorators/tab.decorator","SdTabRouterService":"./src/lib/services/tab-router.service","SdTabDecoratorService":"./src/lib/services/tab-decorator.service","SdTabRouterItemComponent":"./src/lib/components/tab-router-item/tab-router-item.component","SdTabRouterNavComponent":"./src/lib/components/tab-router-nav/tab-router-nav.component","SdTabRouterOutletComponent":"./src/lib/components/tab-router-outlet/tab-router-outlet.component","SdTabRouterModule":"./src/lib/tab-router.module","ɵa":"./src/lib/pipes/tab-info.pipe","ɵb":"./src/lib/directives/router-link-mouse-down.directive"},"importAs":"@sd-angular/core/tab-router"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"SdTabInfo":{"__symbolic":"interface"},"SdTab":{"__symbolic":"interface"},"SdTabBase":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTab"}]}]}},"SdTabActivated":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SdTabBase"},"members":{}},"SdTabDeactivated":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"SdTabBase"},"members":{}},"SdTabEvent":{"__symbolic":"interface"},"SdTabAction":{"__symbolic":"interface"},"SdTabComponentBuilder":{"__symbolic":"interface"},"SdTabComponent":{"__symbolic":"function","parameters":["builder"],"value":{"__symbolic":"error","message":"Lambda not supported","line":14,"character":9,"module":"./src/lib/decorators/tab.decorator"}},"SdTabRouterService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@sd-angular/core/notify","name":"SdNotifyService","line":19,"character":37}]}]},"statics":{"ɵprov":{}}},"SdTabDecoratorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}]},"statics":{"tabRouterService":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"rxjs","name":"BehaviorSubject","line":7,"character":32},"arguments":[{"__symbolic":"reference","name":"undefined"}]},"ɵprov":{}}},"SdTabRouterItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"sd-tab-router-item","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<a\r\n [routerLink]=\"[tab.url]\"\r\n [queryParams]=\"tab.queryParams\"\r\n [state]=\"{ switchTab: true }\"\r\n class=\"tab-router__item d-flex align-items-center\"\r\n [ngClass]=\"{\r\n 'tab-router__item--active': tab.isActive\r\n }\">\r\n <ng-container *ngIf=\"tab.overrideTabInfo | sdTabInfo:tab | async as tabInfo\">\r\n <div class=\"\r\n tab-router__icon\r\n mr-8\r\n \" [ngStyle]=\"{\r\n 'background-color': tabInfo.color\r\n }\" [matTooltip]=\"tabInfo.tooltip || tabInfo.name\" matTooltipPosition=\"below\" matTooltipShowDelay=\"1000\">\r\n {{ tabInfo.initialName || 'SD' }}\r\n </div>\r\n <div class=\"flex-1 overflow-hidden\">\r\n <div\r\n class=\"tab-router__name\"\r\n [matTooltip]=\"tabInfo.tooltip || tabInfo.name\"\r\n matTooltipPosition=\"below\"\r\n matTooltipShowDelay=\"1000\"\r\n >\r\n {{ tabInfo.name }}\r\n </div>\r\n </div>\r\n <button\r\n type=\"button\"\r\n class=\"tab-router__close d-flex align-items-center justify-content-center ml-4\"\r\n (click)=\"close($event)\"\r\n (mousedown)=\"$event.stopPropagation()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </ng-container>\r\n</a>\r\n","styles":[":host{display:block;flex:1 1 64px;max-width:240px;overflow:hidden;position:relative}:host:after{background:#dde0e5;bottom:0;content:\"\";height:16px;margin:auto;position:absolute;right:0;top:0;width:1px}:host:last-child:after{content:none}.flex-1{flex:1}.tab-router__icon{background-color:#5c6bc0;border-radius:2px;color:#fff;font-size:10px;height:16px;line-height:16px;text-align:center;text-transform:uppercase;width:16px}.tab-router__icon .mat-icon{font-size:10px;height:10px;width:10px}.tab-router__close{background:none;border:0;border-radius:50%;color:#757575;height:16px;outline:none;width:16px}.tab-router__close:hover{background-color:rgba(0,0,0,.12)}.tab-router__close .mat-icon{font-size:12px;height:12px;width:12px}.tab-router__item{background:#f2f3f4;color:inherit;font-size:12px;line-height:16px;overflow:hidden;padding:16px 16px 8px;text-decoration:none}.tab-router__item:hover{background-color:#fff}.tab-router__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-router__item--active{background-color:#fff;border-radius:8px 8px 0 0}"]}]}],"members":{"tab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":25,"character":19},{"__symbolic":"reference","name":"SdTabRouterService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SdTabRouterNavComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"sd-tab-router-nav","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<div\r\n #tabRouterNav\r\n cdkDropList\r\n cdkDropListLockAxis=\"x\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onDrop($event)\"\r\n class=\"tab-router__nav tab-router__nav--{{ mode }} d-flex align-items-center flex-nowrap\"\r\n [class.d-none]=\"tabs?.length > 1\"\r\n>\r\n <ng-container *ngFor=\"let tab of tabs\">\r\n <sd-tab-router-item [tab]=\"tab\" cdkDrag [cdkDragBoundary]=\"elementRef?.nativeElement\"></sd-tab-router-item>\r\n </ng-container>\r\n</div>\r\n","styles":[".tab-router__nav{background:#f9f9f9;overflow:hidden}.tab-router__nav--compact::ng-deep .tab-router__name{display:none}.tab-router__nav--compact::ng-deep .tab-router__icon{margin:0!important}.tab-router__nav--compact::ng-deep .tab-router__item--active{min-width:240px}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__icon{margin-right:8px!important}.tab-router__nav--compact::ng-deep .tab-router__item--active .tab-router__name{display:-webkit-box}"]}]}],"members":{"tabRouterNav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":20,"character":3},"arguments":["tabRouterNav"]}]}],"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":25,"character":29},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"onResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":27,"character":3},"arguments":["window:resize",["$event"]]}]}]}},"SdTabRouterOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"sd-tab-router-outlet","template":"<sd-tab-router-nav [tabs]=\"tabs\" #tabRouterNav></sd-tab-router-nav>\r\n\r\n<div class=\"tab-router__list\">\r\n <ng-container *ngFor=\"let tab of tabs;trackBy:tabTrackBy\">\r\n <div class=\"tab-router__pane\" [class.active]=\"tab.isActive\" [id]=\"tab.key\">\r\n <div class=\"tab-router__content\">\r\n <ng-container\r\n *ngComponentOutlet=\"tab.component; injector: tab.injector\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","styles":[":host{display:flex;flex-direction:column;height:calc(100vh - 64px);width:100%}:host ::ng-deep .sd-loading{max-height:100%;max-width:100%}::ng-deep page-layout{height:100%!important}.tab-router__list{flex:1}.tab-router__pane{display:none;height:100%;position:relative;width:100%}.tab-router__pane.active{display:block}.tab-router__content{bottom:0;height:100%;left:0;overflow:auto;position:absolute;right:0;top:0;width:100%}"]}]}],"members":{"tabRouterNav":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":3},"arguments":["tabRouterNav"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":52,"character":20},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":53,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":54,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":55,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":56,"character":22},{"__symbolic":"reference","name":"SdTabDecoratorService"},{"__symbolic":"reference","name":"SdTabRouterService"},{"__symbolic":"reference","module":"@sd-angular/core/notify","name":"SdNotifyService","line":59,"character":29}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SdTabRouterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SdTabRouterItemComponent"},{"__symbolic":"reference","name":"SdTabRouterNavComponent"},{"__symbolic":"reference","name":"SdTabRouterOutletComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}],"imports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":26,"character":4}],"exports":[{"__symbolic":"reference","name":"SdTabRouterItemComponent"},{"__symbolic":"reference","name":"SdTabRouterNavComponent"},{"__symbolic":"reference","name":"SdTabRouterOutletComponent"}],"providers":[]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":5,"character":1},"arguments":[{"name":"sdTabInfo"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SdTabRouterService"}]}],"transform":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/router","name":"RouterLinkWithHref","line":6,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"a[routerLink],area[routerLink]"}]}],"members":{"onMouseDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":7,"character":3},"arguments":["mousedown",["$event.button","$event.ctrlKey","$event.shiftKey","$event.altKey","$event.metaKey"]]}]}]}}},"origins":{"SdTabInfo":"./src/lib/models/tab-router.model","SdTab":"./src/lib/models/tab-router.model","SdTabBase":"./src/lib/events/tab-router.event","SdTabActivated":"./src/lib/events/tab-router.event","SdTabDeactivated":"./src/lib/events/tab-router.event","SdTabEvent":"./src/lib/events/tab-router.event","SdTabAction":"./src/lib/actions/tab-router.action","SdTabComponentBuilder":"./src/lib/decorators/tab.decorator","SdTabComponent":"./src/lib/decorators/tab.decorator","SdTabRouterService":"./src/lib/services/tab-router.service","SdTabDecoratorService":"./src/lib/services/tab-decorator.service","SdTabRouterItemComponent":"./src/lib/components/tab-router-item/tab-router-item.component","SdTabRouterNavComponent":"./src/lib/components/tab-router-nav/tab-router-nav.component","SdTabRouterOutletComponent":"./src/lib/components/tab-router-outlet/tab-router-outlet.component","SdTabRouterModule":"./src/lib/tab-router.module","ɵa":"./src/lib/pipes/tab-info.pipe","ɵb":"./src/lib/directives/router-link-mouse-down.directive"},"importAs":"@sd-angular/core/tab-router"}
|