@coolon/angular-ui-powerups 0.0.6 → 0.0.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/coolon-angular-ui-powerups.umd.js +16 -18
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +2 -2
- package/esm2015/index.js +2 -2
- package/esm2015/lib/animations/index.js +2 -2
- package/esm2015/lib/animations/slideDownAndUpAnimation.js +29 -0
- package/esm2015/public_api.js +2 -2
- package/esm5/coolon-angular-ui-powerups.js +2 -2
- package/esm5/index.js +2 -2
- package/esm5/lib/animations/index.js +2 -2
- package/esm5/lib/animations/slideDownAndUpAnimation.js +29 -0
- package/esm5/public_api.js +2 -2
- package/fesm2015/coolon-angular-ui-powerups.js +18 -19
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +18 -20
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/animations/index.d.ts +1 -1
- package/lib/animations/slideDownAndUpAnimation.d.ts +5 -0
- package/package.json +1 -1
- package/esm2015/lib/animations/slideUpDownAnimation.js +0 -29
- package/esm5/lib/animations/slideUpDownAnimation.js +0 -30
- package/lib/animations/slideUpDownAnimation.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@coolon/angular-ui-powerups/lib/components/disposable-component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/abstract-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/number-input/number-input.component.ts","ng://@coolon/angular-ui-powerups/lib/directives/command.directive.ts","ng://@coolon/angular-ui-powerups/lib/directives/focus-binding.directive.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/string-input/string-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/password-input/password-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/select-input/select-input.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction-context.ts","ng://@coolon/angular-ui-powerups/lib/interaction/abstract-activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/alert-dialog/alert-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-container/activity-container.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/services/dialog-interaction.service.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction.module.ts","ng://@coolon/angular-ui-powerups/lib/place/components/busy-overlay/busy-overlay.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/empty-state/empty-state.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.service.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/place-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.module.ts","ng://@coolon/angular-ui-powerups/lib/angular-ui-powerups.module.ts","ng://@coolon/angular-ui-powerups/lib/components/types/dimension.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/point.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/bounds.class.ts","ng://@coolon/angular-ui-powerups/lib/components/resize-aware.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/result.ts","ng://@coolon/angular-ui-powerups/lib/place/place.decorator.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-bindings.ts","ng://@coolon/angular-ui-powerups/lib/place/abstract-place-component.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/leave-place.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-type.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/place-route.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-decorators.ts","ng://@coolon/angular-ui-powerups/lib/animations/slideUpDownAnimation.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","DisposableComponent","tslib_1.__extends","ngOnDestroy","dispose","GarbageCollector","EMPTY_ERRORS","MutableListModel","readonly","AbstractInputComponent","_super","_this","focus","EventEmitter","blur","enterKey","escapeKey","self","errorStateMatcher","isErrorState","control","form","hasErrors","notifyClick","safelyInvoke","clickCommand","notifyFocusIn","focusCommand","emit","notifyFocusOut","blurCommand","notifyEnterKey","enterCommand","notifyEscapeKey","escapeCommand","command","isEnabled","execute","ngOnInit","enabled","Constant","TRUE","errorList","query","isEmpty","Input","args","Output","HostListener","tslib_1.__decorate","UseDelegate","MutableValueModel","NumberInputComponent","Component","selector","template","CommandDirective","elementRef","assert","notNil","pectinCommand","ngAfterViewInit","pectin","Dsl","disposeWith","chain","subscribe","nativeElement","removeAttribute","tagName","setAttribute","$event","preventDefault","stopPropagation","event","console","warn","Directive","ElementRef","type","Inject","FocusBindingDirective","el","ngZone","document","onFocusIn","pectinFocusBinding","focusCallbacks","onFocusOut","focused","alreadyHasFocus","tryAndFocus","isFocused","focusTarget","element","activeElement","retries","modelShouldStillHaveFocus","canFocus","Logger","get","log","requestAnimationFrame","focusBindingTarget","dimension","getBoundingClientRect","height","NgZone","DOCUMENT","StringInputComponent","PasswordInputComponent","SelectInputComponent","optionLabelFormat","option","optionLabel","ListModel","StoreInListModel","INTERACTION_CONTEXT","InjectionToken","AbstractActivity","_doneListeners","EventListenerList","_cancelListeners","_finishListeners","_busyModel","DelegatingValueModel","withDefault","onDone","callback","add","onCancel","fireAndWait","l","finally","finalizeAndDispose","cancel","error","fire","forEach","busyWhile","busyModel","setDelegate","isBusy","ACTIVITY_DATA","AlertDialogComponent","alert","ActivityOutletComponent","ConfirmationDialogComponent","confirm","isDestructive","destructive","ActivityContainerComponent","activityTabs","obsoleteTabs","observe","valuesFrom","tabs","animationDone","cleanUpTabs","initialise","options","initialActivity","interactionContext","startActivity","activityType","data","deferred","Deferred","defer","context","activityClass","activityData","selectedIndex","promise","filter","tab","includes","ViewChild","static","ActivityContext","exports","ɵv","componentFactoryResolver","viewContainerRef","injector","activityContext","loadActivity","Injector","providers","provide","InteractionContext","useValue","parent","componentFactory","resolveComponentFactory","clear","activityComponent","createComponent","instance","ComponentFactoryResolver","ViewContainerRef","OutletInteractionContext","lang","notImplemented","DialogInteractionService","dialogService","_startActivity","disableClose","config","panelClass","autoFocus","matDialogRef","open","activityContainer","componentInstance","parentInteractionContext","close","updateSize","Injectable","providedIn","MatDialog","InteractionModule","NgModule","imports","CommonModule","MatButtonModule","MatDialogModule","MatTabsModule","PortalModule","declarations","entryComponents","BusyOverlayComponent","UseDelegatingValueModel","ValueModel","StoreInValueModel","EmptyStateComponent","PlaceService","_activePlaces","onActivate","place","onDeactivate","remove","Trace","PlaceOutletComponent","placeService","PlaceModule","MatProgressSpinnerModule","RouterModule","AngularUiPowerupsModule","BrowserModule","BrowserAnimationsModule","FormsModule","MatInputModule","MatFormFieldModule","MatSelectModule","Dimension","width","Bounds","Point","x","from","translate","top","left","relativePositionOf","point","MouseEvent","clientX","clientY","ofElement","rect","ResizeAwareComponent","_boundsModel","ValueHolder","updateBounds","ro","ResizeObserver","entries","observer","run","onDispose","disconnect","bounds","Result","Place","defineMetadata","Callback","Options","Descriptor","placeClass","path","title","authenticate","_.isNil","getDescriptor","klass","placeOptions","getMetadata","ResolvedParameters","parameters","parameter","resolved","find","resolvedValue","replace","concat","getFormattedRouteId","routeIdParam","getRouteIdParam","format","isRouteId","getFormattedParameters","params","name","hasRouteId","redirect","previous","router","activatedRoute","routeId","relativePath","navigate","relativeTo","Router","ActivatedRoute","RouteParameterBindings","component","_incomingRouteChange","resolvedParameters","_a","when","valueOf","before","after","txo","TransactionObserver","routeParameterDefs","Klass","getMetadataList","ROUTE_PARAMETER_LIST_KEY","installBinding","incomingResolvedRouteParameters","paramMap","last","map","parse","changes","unless","incomingRouteChange","model","getModelFor","propertyName","registerDisposable","Binding","toRight","toLeft","currentParameters","AbstractPlaceComponent","routeBindingMediator","setDefault","placeConfig","canDeactivate","Memoize","LeavePlaceGuard","currentRoute","currentState","nextState","RouteParameterSanitiser","parameterDefs","sanitisedParameters","routeParameter","queryParameters","sanitise","snapshot","sanitiseParameter","_d","_b","tslib_1.__values","_c","param","queryParamMap","def","formattedInitialValue","sanitiser","getSanitiser","initialValue","sanitisedValue","isTruthy","sanitisedRouteId","queryParams","reduce","item","ParameterType","StringType","NumberType","PlaceRouteGuard","canActivate","route","state","routeParameters","proceed","ActivatedRouteSnapshot","RouterStateSnapshot","createDefinition","opts","Opts","propertyNameAsString","toString","getOptional","STRING","NUMBER","propertyKey","addToOwnMetadataList","triggerName","duration","trigger","style","overflow","opacity","padding-top","padding-bottom","transition","animate"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import {OnDestroy} from '@angular/core';\nimport {GarbageCollector} from '@coolon/pectin';\n\nexport class DisposableComponent extends GarbageCollector implements OnDestroy {\n\n ngOnDestroy(): void {\n this.dispose();\n }\n}\n","/* tslint:disable:no-input-rename */\nimport { EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material';\nimport {\n Constant,\n ListModel,\n MutableListModel,\n MutableValueModel,\n UiCommand,\n UseDelegate,\n ValueModel\n} from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\n\nconst EMPTY_ERRORS = new MutableListModel<string>().readonly;\n\nexport abstract class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n @Input() @UseDelegate()\n valueModel: MutableValueModel<T>;\n\n @Input() label: string;\n @Input() floatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @Input('command.focus') focusCommand: UiCommand.Nullary;\n @Input('command.blur') blurCommand: UiCommand.Nullary;\n @Input('command.enter') enterCommand: UiCommand.Nullary;\n @Input('command.escape') escapeCommand: UiCommand.Nullary;\n @Input('command.click') clickCommand: UiCommand.Nullary;\n\n @Output() focus = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() enterKey = new EventEmitter();\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: UiCommand.Nullary) {\n if (command && command.isEnabled()) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n // this._focused = this.valueModel['focused'] || new ValueHolder();\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n // @ts-ignore\n return (this.valueModel as any).enabled || Constant.TRUE;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return (this.valueModel as any).errorList || EMPTY_ERRORS;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n\n@Component({\n selector: 'angular-ui-powerups-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {assert, Dsl, GarbageCollector, UiCommand} from '@coolon/pectin';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinCommand]'\n})\nexport class CommandDirective extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {\n\n @Input()\n pectinCommand: UiCommand.Nullary<any>;\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n assert.notNil(this.pectinCommand);\n }\n\n ngAfterViewInit(): void {\n // for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now\n // we need to do this.\n const {chain} = Dsl.disposeWith(this);\n chain.value(this.pectinCommand.enabled).subscribe(enabled => {\n if (enabled) {\n this.elementRef.nativeElement.removeAttribute('disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.setAttribute('href', 'javascript:void');\n }\n } else {\n this.elementRef.nativeElement.setAttribute('disabled', 'disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.removeAttribute('href');\n }\n }\n });\n\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n\n @HostListener('click', ['$event'])\n notifyClick($event: Event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (this.pectinCommand.isEnabled()) {\n this.pectinCommand.execute({event: $event});\n } else {\n console.warn('disabled command clicked, ignoring.');\n }\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, NgZone, OnInit} from '@angular/core';\nimport {Dsl, HasFocusTracking, Logger} from '@coolon/pectin';\nimport {DisposableComponent} from '../components/disposable-component';\n\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinFocusBinding]'\n})\nexport class FocusBindingDirective extends DisposableComponent implements OnInit, AfterViewInit {\n\n private readonly document: Document;\n\n @Input() pectinFocusBinding: HasFocusTracking;\n @Input() focusBindingTarget: HTMLElement;\n\n @HostListener('focusin')\n onFocusIn() {\n this.pectinFocusBinding.focusCallbacks.notifyFocusIn();\n }\n\n @HostListener('focusout')\n onFocusOut() {\n this.pectinFocusBinding.focusCallbacks.notifyFocusOut();\n }\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) document: any) {\n super();\n // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642\n this.document = document as Document;\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n // TODO: Make this also track the current enabled/disabled state.\n const {chain} = Dsl.disposeWith(this);\n chain.value(this.pectinFocusBinding.focused).subscribe((focused) => {\n if (focused && !this.alreadyHasFocus()) {\n this.tryAndFocus();\n }\n });\n }\n\n // Hook method for debugging via tracing.\n alreadyHasFocus() {\n return this.isFocused(this.focusTarget);\n }\n\n // Hook method for debugging via tracing.\n isFocused(element: Element): boolean {\n return this.document.activeElement === element;\n }\n\n tryAndFocus(retries: number = 5) {\n if (this.modelShouldStillHaveFocus() && this.canFocus()) {\n if (!this.alreadyHasFocus()) {\n this.focusTarget.focus();\n }\n // if we didn't get the focus we try again later.\n if (!this.alreadyHasFocus()) {\n Logger.get(this).log(`focus failed, trying ${retries} more times`);\n if (retries > 0) {\n // try again on the next paint\n // TODO: is there an angular way of doing this without calling a window function.\n requestAnimationFrame(() => {\n this.tryAndFocus(retries - 1);\n });\n } else {\n Logger.get(this).warn(`Tried to focus but gave up as the component wasn't enabled or visible.`);\n }\n }\n }\n }\n\n get focusTarget(): HTMLElement {\n return this.focusBindingTarget || this.el.nativeElement;\n }\n\n // Hook method for debugging via tracing.\n modelShouldStillHaveFocus() {\n return this.pectinFocusBinding.focused.value;\n }\n\n // Hook method for debugging via tracing.\n canFocus(): boolean {\n const dimension = this.focusTarget.getBoundingClientRect();\n const hasSize = dimension.height >= 0 && dimension.height >= 0;\n // tslint:disable-next-line:no-string-literal\n return hasSize && !this.focusTarget['disabled'];\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-string-input',\n templateUrl: './string-input.component.html',\n styleUrls: ['./string-input.component.scss']\n})\nexport class StringInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-select-input',\n templateUrl: './select-input.component.html',\n styleUrls: ['./select-input.component.scss']\n})\nexport class SelectInputComponent<T = any> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @UseDelegate()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { InjectionToken } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from './activity';\nimport { Alert } from './alert';\nimport { Confirm } from './confirm';\n\nexport const INTERACTION_CONTEXT = new InjectionToken<any>('InteractionContext');\n\nexport abstract class InteractionContext {\n\n abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;\n\n abstract confirm(confirm: Confirm): Promise<boolean>;\n\n abstract alert(alert: Alert): Promise<void>;\n}\n","import { DelegatingValueModel, EventListenerList, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { Activity } from './activity';\n\nexport class AbstractActivity<D, R, E = any> extends DisposableComponent implements Activity<D, R, E> {\n\n private readonly _doneListeners = new EventListenerList<Activity.CallBack<R>>();\n private readonly _cancelListeners = new EventListenerList<Activity.CallBack<E>>();\n private readonly _finishListeners = new EventListenerList<() => void>();\n\n private readonly _busyModel = new DelegatingValueModel<boolean>().withDefault(false);\n\n onDone(callback: Activity.CallBack<R>) {\n this._doneListeners.add(callback);\n }\n\n onCancel(callback: Activity.CallBack<E>) {\n this._cancelListeners.add(callback);\n }\n\n done(result?: R): Promise<any> {\n return this._doneListeners\n .fireAndWait(l => l(result))\n .finally(() => this.finalizeAndDispose());\n }\n\n cancel(error?: E): Promise<any> {\n return this._cancelListeners\n .fireAndWait(l => l(error))\n .finally(() => this.finalizeAndDispose());\n }\n\n private finalizeAndDispose() {\n // this._activeModel.value = false;\n this._finishListeners.fire(l => l());\n // this._interactionContext = null;\n // this._initialized = false;\n [\n this._finishListeners,\n this._doneListeners,\n this._cancelListeners\n ].forEach(l => l.dispose());\n }\n\n\n get busy(): ValueModel<boolean> {\n return this._busyModel.readonly;\n }\n\n busyWhile(busyModel: ValueModel<boolean>) {\n this._busyModel.setDelegate(busyModel);\n }\n\n isBusy() {\n return this._busyModel.value;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ValueModel } from '@coolon/pectin';\n\nexport const ACTIVITY_DATA = new InjectionToken<any>('InteractionActivityData');\n\nexport interface Activity<D, R, E = any> {\n readonly busy: ValueModel<boolean>;\n\n onDone(callback: Activity.CallBack<R>);\n\n onCancel(callback: Activity.CallBack<E>);\n\n}\n\nexport namespace Activity {\n export type CallBack<T> = (value: T) => void | Promise<any>;\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\n\n@Component({\n selector: 'angular-ui-powerups-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly alert: Alert) {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n Input,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { Constructable, lang } from '@coolon/pectin';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from './activity-outlet-context';\n\n@Component({\n selector: 'angular-ui-powerups-activity-outlet',\n template: '',\n styleUrls: ['./activity-outlet.component.scss']\n})\nexport class ActivityOutletComponent<D, R, E> implements OnInit, InteractionContext {\n\n @Input()\n interactionContext: InteractionContext;\n\n @Input()\n set activityContext(activityContext: ActivityOutletContext<D, R, E>) {\n this.loadActivity(activityContext);\n };\n\n private activityComponent: ComponentRef<Activity<D, R, E>>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n }\n\n ngOnInit() {\n }\n\n loadActivity(activityContext: ActivityOutletContext<D, R, E>) {\n const injector = Injector.create({\n providers: [\n {\n provide: InteractionContext,\n useValue: this\n },\n { provide: ACTIVITY_DATA, useValue: activityContext.activityData }\n ],\n parent: this.injector\n });\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(activityContext.activityClass);\n this.viewContainerRef.clear();\n this.activityComponent = this.viewContainerRef.createComponent(componentFactory, 0, injector);\n this.activityComponent.instance.onDone(activityContext.onDone);\n this.activityComponent.instance.onCancel(activityContext.onCancel);\n }\n\n alert(alert: Alert): Promise<void> {\n return this.interactionContext.alert(alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.interactionContext.confirm(confirm);\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.interactionContext.startActivity(activityType, data);\n }\n}\n\nexport namespace ActivityOutletComponent {\n\n export class OutletInteractionContext<D, R, E> implements InteractionContext {\n\n constructor(private readonly context: ActivityOutletContext<D, R, E>) {\n }\n\n alert(alert: Alert): Promise<void> {\n return lang.notImplemented();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return lang.notImplemented();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return lang.notImplemented();\n }\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Confirm } from '../../confirm';\n\n@Component({\n selector: 'angular-ui-powerups-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent extends AbstractActivity<Confirm, boolean> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly confirm: Confirm) {\n super();\n assert.notNil(confirm);\n console.log(confirm);\n }\n\n ngOnInit() {\n }\n\n isDestructive(): boolean {\n return this.confirm.destructive && this.confirm.destructive();\n }\n}\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatTabGroup } from '@angular/material';\nimport { Constructable, Dsl, MutableListModel } from '@coolon/pectin';\nimport { Deferred } from '@coolon/pectin/lib/promise/deferred.class';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';\nimport { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\n\n@Component({\n selector: 'angular-ui-powerups-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent extends DisposableComponent implements OnInit, AfterViewInit, InteractionContext {\n\n @Input()\n parentInteractionContext: InteractionContext;\n\n @Input()\n initialActivity: ActivityOutletContext<any, any, any>;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n readonly activityTabs = new MutableListModel<ActivityOutletContext<any, any, any>>();\n private obsoleteTabs: ActivityOutletContext<any, any, any>[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { observe } = Dsl.disposeWith(this);\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.cleanUpTabs());\n }\n\n initialise<D, R, E>(options: ActivityContainerComponent.ActivityContext<D, R, E>) {\n this.initialActivity = {\n ...options,\n interactionContext: this\n };\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n const deferred = Deferred.defer<R>();\n const context = {\n interactionContext: this,\n activityClass: activityType,\n activityData: data,\n onDone: deferred.resolve,\n onCancel: deferred.reject\n };\n this.activityTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length;\n return deferred.promise.finally(() => {\n this.obsoleteTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length - 1;\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this.startActivity(AlertDialogComponent, alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.startActivity(ConfirmationDialogComponent, confirm);\n }\n\n private cleanUpTabs() {\n this.activityTabs.value = this.activityTabs.value.filter(tab => {\n return !this.obsoleteTabs.includes(tab);\n });\n }\n}\n\nexport namespace ActivityContainerComponent {\n\n export interface ActivityContext<D, R, E> {\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { ActivityContainerComponent } from '../components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from '../components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../components/confirmation-dialog/confirmation-dialog.component';\nimport { Confirm } from '../confirm';\nimport { InteractionContext } from '../interaction-context';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogInteractionService extends InteractionContext {\n\n constructor(private readonly dialogService: MatDialog) {\n super();\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n return this._startActivity(activityType, data);\n }\n\n private _startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean = true) {\n const config = {\n data,\n disableClose,\n panelClass: 'dialog-interaction-service',\n autoFocus: false\n };\n const matDialogRef = this.dialogService.open(ActivityContainerComponent, config) as MatDialogRef<ActivityContainerComponent>;\n return new Promise<R>((resolve, reject) => {\n const activityContainer = matDialogRef.componentInstance;\n activityContainer.parentInteractionContext = this;\n activityContainer.initialise({\n activityClass: activityType,\n activityData: data,\n onDone(result) {\n resolve(result);\n matDialogRef.close(result);\n },\n onCancel(error) {\n reject(error);\n matDialogRef.close(error);\n }\n });\n\n matDialogRef.updateSize();\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this._startActivity(AlertDialogComponent, alert, false);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this._startActivity(ConfirmationDialogComponent, confirm, true);\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule, MatDialogModule, MatTabsModule } from '@angular/material';\nimport { ActivityContainerComponent } from './components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\nimport { ActivityOutletComponent } from './components/activity-outlet/activity-outlet.component';\nimport { DialogInteractionService } from './services/dialog-interaction.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatDialogModule,\n MatTabsModule,\n PortalModule\n ],\n declarations: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent,\n ActivityOutletComponent\n ],\n entryComponents: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent\n ],\n providers: [\n DialogInteractionService\n ]\n})\nexport class InteractionModule {\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StoreInValueModel, UseDelegatingValueModel, ValueModel } from '@coolon/pectin';\n\n@Component({\n selector: 'aup-busy-overlay',\n templateUrl: `./busy-overlay.component.html`,\n styleUrls: ['./busy-overlay.component.scss']\n})\nexport class BusyOverlayComponent implements OnInit {\n\n @Input() @UseDelegatingValueModel()\n busyModel: ValueModel<boolean>;\n\n @Input() @StoreInValueModel('busyModel')\n busy: boolean;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'angular-ui-powerups-empty-state',\n template: `\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./empty-state.component.scss']\n})\nexport class EmptyStateComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MutableListModel, Trace } from '@coolon/pectin';\nimport { PlaceComponent } from './place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceService {\n\n private _activePlaces = new MutableListModel<PlaceComponent>();\n\n constructor() {\n }\n\n get activePlaces() {\n return this._activePlaces.readonly;\n }\n\n @Trace()\n onActivate(place: PlaceComponent) {\n this._activePlaces.push(place);\n }\n\n @Trace()\n onDeactivate(place: PlaceComponent) {\n this._activePlaces.remove(place);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PlaceComponent } from '../../place-component';\nimport { PlaceService } from '../../place.service';\n\n@Component({\n selector: 'angular-ui-powerups-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss']\n})\nexport class PlaceOutletComponent implements OnInit {\n\n constructor(private readonly placeService: PlaceService) { }\n\n ngOnInit() {\n }\n\n onActivate($event: PlaceComponent) {\n this.placeService.onActivate($event);\n }\n onDeactivate($event: PlaceComponent) {\n this.placeService.onDeactivate($event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material';\nimport { RouterModule } from '@angular/router';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { PlaceService } from './place.service';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n RouterModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent\n ],\n providers: [\n PlaceService\n ]\n})\nexport class PlaceModule {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NumberInputComponent} from './components/forms/number-input/number-input.component';\nimport { CommandDirective } from './directives/command.directive';\nimport { FocusBindingDirective } from './directives/focus-binding.directive';\nimport { StringInputComponent } from './components/forms/string-input/string-input.component';\nimport { PasswordInputComponent } from './components/forms/password-input/password-input.component';\nimport { SelectInputComponent } from './components/forms/select-input/select-input.component';\nimport { InteractionModule } from './interaction/interaction.module';\nimport { PlaceModule } from './place/place.module';\n\n@NgModule({\n declarations: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n ],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n PlaceModule,\n InteractionModule\n ],\n exports: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n InteractionModule,\n PlaceModule,\n ]\n\n})\nexport class AngularUiPowerupsModule {\n}\n","export class Dimension {\n constructor(readonly width: number, readonly height: number){}\n}\n","export class Point {\n\n static from(data: { x: number, y: number }) {\n return new Point(data.x, data.y);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n translate(x: number, y: number): Point {\n return new Point(this.x + x, this.y + y);\n }\n}\n","import { Dimension } from './dimension.class';\nimport { Point } from './point.class';\n\nexport class Bounds extends Dimension {\n\n constructor(readonly top: number, readonly left: number, readonly width: number, readonly height: number) {\n super(width, height);\n }\n\n relativePositionOf(point: { x: number, y: number } | MouseEvent) {\n if (point instanceof MouseEvent) {\n return new Point(point.clientX - this.left, point.clientY - this.top);\n } else {\n return new Point(point.x - this.left, point.y - this.top);\n }\n }\n}\n\nexport namespace Bounds {\n export function ofElement(element: HTMLElement): Bounds {\n const rect = element.getBoundingClientRect();\n return new Bounds(rect.top, rect.left, rect.width, rect.height);\n }\n}\n\n","import {AfterViewInit, ElementRef, NgZone} from '@angular/core';\nimport {ValueHolder, ValueModel} from '@coolon/pectin';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport {DisposableComponent} from './disposable-component';\nimport {Bounds} from './types/bounds.class';\nimport {Point} from './types/point.class';\n\nexport class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {\n\n private _boundsModel = new ValueHolder<Bounds>(new Bounds(0, 0, 0, 0));\n\n constructor(protected readonly elementRef: ElementRef, protected readonly ngZone: NgZone) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.updateBounds();\n const element = this.elementRef.nativeElement;\n const ro = new ResizeObserver((entries, observer) => {\n this.ngZone.run(() => this.updateBounds());\n });\n ro.observe(element);\n this.onDispose(() => ro.disconnect());\n }\n\n get boundsModel(): ValueModel<Bounds> {\n return this._boundsModel.readonly;\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n // TODO: Make this handle body scroll\n public relativePositionOf(point: { x: number, y: number } | MouseEvent): Point {\n return this.bounds.relativePositionOf(point);\n }\n\n get bounds(): Bounds {\n return this._boundsModel.value;\n }\n\n private updateBounds() {\n this._boundsModel.value = Bounds.ofElement(this.nativeElement);\n }\n\n\n}\n\nexport namespace ResizeAwareComponent {\n\n}\n","export interface Result<R, E> {\n // catch(callback: (error: E) => void): Result<R,E>;\n}\n\nexport namespace Result {\n export interface Callback<R,E> {\n then: <T>(result:R)=>T;\n catch: <T>(result:E)=>T;\n }\n\n}\n\n// const r:Result<string, number> = null;\n\n// r.catch(e => {}).then();\n\n","import { assert, Constructable } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport 'reflect-metadata';\nimport { PlaceComponent } from './place-component';\n\nexport function Place(options: Place.Options) {\n return (target: Function) => {\n Reflect.defineMetadata('place.options', options, target);\n };\n}\n\nexport namespace Place {\n export interface Options {\n path: string,\n title: string,\n authenticate?: boolean // defaults to true\n // childOf?: Constructable<PlaceComponent>\n }\n\n export class Descriptor {\n readonly path: string;\n readonly authenticate: boolean;\n readonly title: string;\n\n constructor(placeClass: Constructable<PlaceComponent>, options: Options) {\n assert.notNil(options);\n this.path = options.path;\n this.title = options.title;\n this.authenticate = _.isNil(options.authenticate) || options.authenticate;\n }\n }\n\n export function getDescriptor(klass: Constructable<PlaceComponent>): Descriptor {\n const placeOptions = Reflect.getMetadata('place.options', klass);\n return new Descriptor(klass, placeOptions);\n }\n}\n","import { ActivatedRoute, Router } from '@angular/router';\nimport {\n Binding,\n Dsl,\n GarbageCollector,\n MutableHasValue,\n MutableValueModel,\n Trace,\n TransactionObserver\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { AbstractPlaceComponent } from '../abstract-place-component';\nimport { ParameterDefinition } from './parameter-definition.class';\n\ninterface ResolvedParameter<T> {\n parameter: ParameterDefinition<T>;\n resolvedValue: T;\n}\n\nclass ResolvedParameters {\n constructor(readonly parameters: ResolvedParameter<any>[]) {\n }\n\n get<T>(parameter: ParameterDefinition<T>): T {\n const resolved = this.parameters.find(p => p.parameter === parameter);\n return resolved ? resolved.resolvedValue : null;\n }\n\n replace<T>(parameter: ParameterDefinition<T>, value: T): ResolvedParameters {\n return new ResolvedParameters(this.parameters.filter(p => p.parameter !== parameter).concat({\n parameter,\n resolvedValue: value\n }));\n }\n\n @Trace()\n protected getFormattedRouteId() {\n const routeIdParam = this.getRouteIdParam();\n return routeIdParam ? routeIdParam.parameter.type.format(routeIdParam.resolvedValue) : null;\n }\n\n private getRouteIdParam() {\n return this.parameters.find(p => p.parameter.isRouteId);\n }\n\n @Trace()\n protected getFormattedParameters() {\n const params = {};\n const routeIdParam = this.parameters.filter(p => !p.parameter.isRouteId).forEach(p => {\n params[p.parameter.name] = p.parameter.type.format(p.resolvedValue);\n });\n return params;\n }\n\n hasRouteId() {\n return !!this.getRouteIdParam();\n }\n\n @Trace()\n redirect(previous: ResolvedParameters, router: Router, activatedRoute: ActivatedRoute) {\n const routeId = this.getFormattedRouteId();\n const relativePath = !!previous.hasRouteId() ? '..' : '.';\n const path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];\n router.navigate(path, {\n relativeTo: activatedRoute,\n });\n }\n}\n\nexport class RouteParameterBindings extends GarbageCollector {\n\n public readonly _incomingRouteChange = new MutableValueModel<boolean>(false);\n\n private txo: TransactionObserver;\n\n private readonly resolvedParameters = new MutableValueModel<ResolvedParameters>();\n\n constructor(private readonly component: any, private readonly router: Router, private readonly activatedRoute: ActivatedRoute) {\n super();\n const { chain, valueOf, before, when, after, observe } = Dsl.disposeWith(this);\n this.txo = new TransactionObserver();//.onEvent(e => console.log(e.toString()));\n\n const routeParameterDefs = Klass.get(component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n routeParameterDefs.forEach(parameter => this.installBinding(parameter));\n\n const incomingResolvedRouteParameters = observe.valuesFrom(activatedRoute.paramMap)\n .last()\n .map(params => {\n const result: ResolvedParameter<any>[] = [];\n routeParameterDefs.forEach(parameter => {\n result.push({ parameter, resolvedValue: parameter.type.parse(params.get(parameter.name)) });\n });\n return new ResolvedParameters(result);\n });\n\n incomingResolvedRouteParameters.subscribe(resolvedParameters => {\n this._incomingRouteChange.value = true;\n this.resolvedParameters.value = resolvedParameters;\n this._incomingRouteChange.value = false;\n });\n\n when.valueOf(this.resolvedParameters).changes((params, previous) => {\n params.redirect(previous, router, activatedRoute);\n }, { unless: this.incomingRouteChange });\n\n this.txo.observe('incomingResolvedRouteParameters', incomingResolvedRouteParameters);\n this.txo.observe('this.routeIsChanging', this.incomingRouteChange);\n }\n\n get incomingRouteChange() {\n return this._incomingRouteChange.readonly;\n }\n\n protected installBinding<T>(parameter: ParameterDefinition<T>) {\n const model = this.getModelFor(parameter);\n this.txo.observe(parameter.propertyName, model);\n this.registerDisposable(new Binding(this.resolvedParameters, model, {\n toRight(parameters: ResolvedParameters): T {\n return parameters.get(parameter);\n },\n toLeft(value: T, currentParameters?: ResolvedParameters): ResolvedParameters {\n return currentParameters.replace(parameter, value);\n }\n }));\n }\n\n\n private getModelFor<T>(parameter: ParameterDefinition<T>): MutableHasValue<T> {\n return this.component[parameter.propertyName];\n }\n}\n\nexport namespace RouteParameterBindings {\n export const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n}\n","import { ActivatedRoute, Router } from '@angular/router';\n\nimport { Constructable, DelegatingValueModel, MutableValueModel, UseDelegate } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { PlaceComponent } from './place-component';\nimport { Place } from './place.decorator';\nimport { RouteParameterBindings } from './route/route-parameter-bindings';\n\nexport class AbstractPlaceComponent extends DisposableComponent implements PlaceComponent {\n\n @UseDelegate()\n readonly titleModel: MutableValueModel<string>;\n\n private routeBindingMediator: RouteParameterBindings;\n\n constructor(protected activatedRoute: ActivatedRoute, router: Router) {\n super();\n this.routeBindingMediator = this.registerDisposable(new RouteParameterBindings(this, router, activatedRoute));\n // See https://coolon.atlassian.net/browse/PEC-59\n (this.titleModel as unknown as DelegatingValueModel<string>).setDefault(this.placeConfig.title);\n }\n\n @Memoize()\n get placeConfig(): Place.Descriptor {\n return Place.getDescriptor(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n canDeactivate(): boolean | Promise<boolean> {\n return true;\n }\n\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LeavePlaceGuard implements CanDeactivate<PlaceComponent> {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n return component.canDeactivate();\n }\n\n}\n","import { Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { assert, Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\n\nexport class RouteParameterSanitiser {\n\n private readonly routeParameter: ParameterDefinition<any>;\n private readonly queryParameters: ParameterDefinition<any>[];\n\n private readonly sanitisedParameters: { def: ParameterDefinition<any>, value: string }[] = [];\n\n constructor(readonly parameterDefs: ParameterDefinition<any>[], readonly injector: Injector) {\n this.routeParameter = parameterDefs.find(p => p.isRouteId);\n this.queryParameters = parameterDefs.filter(p => !p.isRouteId);\n }\n\n async sanitise(snapshot: ActivatedRouteSnapshot): Promise<boolean> {\n if (this.routeParameter) {\n const routeOk = await this.sanitiseParameter(this.routeParameter, snapshot.paramMap.get(this.routeParameter.name));\n if (!routeOk) {\n // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the\n // context of the route id.\n return false;\n }\n }\n for (const param of this.queryParameters) {\n await this.sanitiseParameter(param, snapshot.queryParamMap.get(param.name));\n }\n return this.sanitisedParameters.length === 0;\n }\n\n @Trace()\n async sanitiseParameter<T>(def: ParameterDefinition<T>, formattedInitialValue: string): Promise<boolean> {\n if (def) {\n const sanitiser = this.getSanitiser(def);\n if (sanitiser) {\n const initialValue = def.type.parse(formattedInitialValue);\n const sanitisedValue = await sanitiser.sanitise(initialValue);\n if (initialValue !== sanitisedValue) {\n this.sanitisedParameters.push({ def, value: def.type.format(sanitisedValue) });\n return false;\n }\n }\n }\n return true;\n }\n\n redirect(router: Router) {\n assert.isTruthy(this.sanitisedParameters.length !== 0);\n const sanitisedRouteId = this.sanitisedParameters.find(s => s.def === this.routeParameter);\n if (sanitisedRouteId) {\n return router.navigate(['..', sanitisedRouteId.value]);\n } else {\n const queryParams = this.sanitisedParameters.filter(s => s.def !== this.routeParameter)\n .reduce((params, item) => ({ ...params, [item.def.name]: item.value }), {});\n return router.navigate(['.', queryParams]);\n }\n }\n\n @Memoize()\n private getSanitiser<T>(def: ParameterDefinition<T>): ParameterSanitiser<T> {\n return def.sanitiser ? this.injector.get<ParameterSanitiser<T>>(def.sanitiser, new def.sanitiser()) : null;\n }\n}\n","export interface ParameterType<T> {\n format(value: T): string;\n\n parse(value: string): T;\n}\n\nexport namespace ParameterType {\n\n class StringType implements ParameterType<string> {\n format(value: string): string {\n return value;\n }\n\n parse(value: string): string {\n return value;\n }\n }\n\n class NumberType implements ParameterType<number> {\n format(value: number): string {\n return `${value}`;\n }\n\n parse(value: string): number {\n return +value;\n }\n }\n\n export const STRING = new StringType();\n export const NUMBER = new NumberType();\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanDeactivate,\n Router,\n RouterStateSnapshot,\n UrlTree\n} from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\nimport { RouteParameterBindings } from '../route/route-parameter-bindings';\nimport { RouteParameterSanitiser } from '../route/route-parameter-sanitiser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouteGuard implements CanActivate {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n @Trace()\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const routeParameters = Klass.get(route.component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n const sanitiser = new RouteParameterSanitiser(routeParameters, this.injector);\n return sanitiser.sanitise(route).then(proceed => {\n if (!proceed) {\n sanitiser.redirect(this.router);\n }\n return proceed;\n });\n }\n\n}\n","import { assert, Constructable, UseDelegate } from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\nimport { RouteParameterBindings } from './route-parameter-bindings';\n\nexport interface ParameterOptions<T> {\n as?: string;\n sanitiser?: Constructable<ParameterSanitiser<T>>;\n}\n\nexport function RouteId<T extends string | number>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, true);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\n\nexport function QueryParameter<T>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, false);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nfunction createDefinition<T>(propertyName: symbol | string, type: ParameterType<T>, options: ParameterOptions<T>, routeId: boolean) {\n const opts = Opts.get(options);\n const propertyNameAsString = assert.notNil(propertyName).toString();\n const def: ParameterDefinition<T> = {\n name: opts.getOptional('as', propertyNameAsString),\n propertyName: propertyNameAsString,\n type: assert.notNil(type),\n sanitiser: opts.getOptional('sanitiser', null),\n isRouteId: routeId\n };\n return def;\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport function slideUpDownAnimation(triggerName: string, duration:string = \"100ms\") {\n return trigger(triggerName, [\n state('true', style(\n {\n 'height': '*',\n 'overflow': 'hidden',\n 'opacity': '1'\n })),\n state('false', style({\n 'height': '0px',\n 'padding-top': '0px',\n 'padding-bottom': '0px',\n 'overflow': 'hidden',\n 'opacity': '0'\n })),\n transition('void => *', []),\n transition('* => *', [animate(duration)])\n ]);\n}\n\n// export function slideOutLeftAnimation(triggerName: string, duration:string = \"100ms\") {\n// return trigger(triggerName, [\n// state('true', style(\n// {\n// 'width': '*',\n// 'overflow': 'hidden',\n// 'opacity': '1'\n// })),\n// state('false', style({\n// 'width': '0px',\n// 'overflow': 'hidden',\n// 'opacity': '0'\n// })),\n// transition('* => *', [animate(duration)])\n// ]);\n// }\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@coolon/angular-ui-powerups/lib/components/disposable-component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/abstract-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/number-input/number-input.component.ts","ng://@coolon/angular-ui-powerups/lib/directives/command.directive.ts","ng://@coolon/angular-ui-powerups/lib/directives/focus-binding.directive.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/string-input/string-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/password-input/password-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/select-input/select-input.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction-context.ts","ng://@coolon/angular-ui-powerups/lib/interaction/abstract-activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/alert-dialog/alert-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-container/activity-container.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/services/dialog-interaction.service.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction.module.ts","ng://@coolon/angular-ui-powerups/lib/place/components/busy-overlay/busy-overlay.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/empty-state/empty-state.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.service.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/place-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.module.ts","ng://@coolon/angular-ui-powerups/lib/angular-ui-powerups.module.ts","ng://@coolon/angular-ui-powerups/lib/animations/slideDownAndUpAnimation.ts","ng://@coolon/angular-ui-powerups/lib/components/types/dimension.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/point.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/bounds.class.ts","ng://@coolon/angular-ui-powerups/lib/components/resize-aware.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/result.ts","ng://@coolon/angular-ui-powerups/lib/place/place.decorator.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-bindings.ts","ng://@coolon/angular-ui-powerups/lib/place/abstract-place-component.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/leave-place.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-type.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/place-route.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-decorators.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","DisposableComponent","tslib_1.__extends","ngOnDestroy","dispose","GarbageCollector","EMPTY_ERRORS","MutableListModel","readonly","AbstractInputComponent","_super","_this","focus","EventEmitter","blur","enterKey","escapeKey","self","errorStateMatcher","isErrorState","control","form","hasErrors","notifyClick","safelyInvoke","clickCommand","notifyFocusIn","focusCommand","emit","notifyFocusOut","blurCommand","notifyEnterKey","enterCommand","notifyEscapeKey","escapeCommand","command","isEnabled","execute","ngOnInit","enabled","Constant","TRUE","errorList","query","isEmpty","Input","args","Output","HostListener","tslib_1.__decorate","UseDelegate","MutableValueModel","NumberInputComponent","Component","selector","template","CommandDirective","elementRef","assert","notNil","pectinCommand","ngAfterViewInit","pectin","Dsl","disposeWith","chain","subscribe","nativeElement","removeAttribute","tagName","setAttribute","$event","preventDefault","stopPropagation","event","console","warn","Directive","ElementRef","type","Inject","FocusBindingDirective","el","ngZone","document","onFocusIn","pectinFocusBinding","focusCallbacks","onFocusOut","focused","alreadyHasFocus","tryAndFocus","isFocused","focusTarget","element","activeElement","retries","modelShouldStillHaveFocus","canFocus","Logger","get","log","requestAnimationFrame","focusBindingTarget","dimension","getBoundingClientRect","height","NgZone","DOCUMENT","StringInputComponent","PasswordInputComponent","SelectInputComponent","optionLabelFormat","option","optionLabel","ListModel","StoreInListModel","INTERACTION_CONTEXT","InjectionToken","AbstractActivity","_doneListeners","EventListenerList","_cancelListeners","_finishListeners","_busyModel","DelegatingValueModel","withDefault","onDone","callback","add","onCancel","fireAndWait","l","finally","finalizeAndDispose","cancel","error","fire","forEach","busyWhile","busyModel","setDelegate","isBusy","ACTIVITY_DATA","AlertDialogComponent","alert","ActivityOutletComponent","ConfirmationDialogComponent","confirm","isDestructive","destructive","ActivityContainerComponent","activityTabs","obsoleteTabs","observe","valuesFrom","tabs","animationDone","cleanUpTabs","initialise","options","initialActivity","interactionContext","startActivity","activityType","data","deferred","Deferred","defer","context","activityClass","activityData","selectedIndex","promise","filter","tab","includes","ViewChild","static","ActivityContext","exports","ɵv","componentFactoryResolver","viewContainerRef","injector","activityContext","loadActivity","Injector","providers","provide","InteractionContext","useValue","parent","componentFactory","resolveComponentFactory","clear","activityComponent","createComponent","instance","ComponentFactoryResolver","ViewContainerRef","OutletInteractionContext","lang","notImplemented","DialogInteractionService","dialogService","_startActivity","disableClose","config","panelClass","autoFocus","matDialogRef","open","activityContainer","componentInstance","parentInteractionContext","close","updateSize","Injectable","providedIn","MatDialog","InteractionModule","NgModule","imports","CommonModule","MatButtonModule","MatDialogModule","MatTabsModule","PortalModule","declarations","entryComponents","BusyOverlayComponent","UseDelegatingValueModel","ValueModel","StoreInValueModel","EmptyStateComponent","PlaceService","_activePlaces","onActivate","place","onDeactivate","remove","Trace","PlaceOutletComponent","placeService","PlaceModule","MatProgressSpinnerModule","RouterModule","AngularUiPowerupsModule","BrowserModule","BrowserAnimationsModule","FormsModule","MatInputModule","MatFormFieldModule","MatSelectModule","defaultHiddenStyleDef","style","opacity","paddingTop","paddingBottom","Dimension","width","Bounds","Point","x","from","translate","top","left","relativePositionOf","point","MouseEvent","clientX","clientY","ofElement","rect","ResizeAwareComponent","_boundsModel","ValueHolder","updateBounds","ro","ResizeObserver","entries","observer","run","onDispose","disconnect","bounds","Result","Place","defineMetadata","Callback","Options","Descriptor","placeClass","path","title","authenticate","_.isNil","getDescriptor","klass","placeOptions","getMetadata","ResolvedParameters","parameters","parameter","resolved","find","resolvedValue","replace","concat","getFormattedRouteId","routeIdParam","getRouteIdParam","format","isRouteId","getFormattedParameters","params","name","hasRouteId","redirect","previous","router","activatedRoute","routeId","relativePath","navigate","relativeTo","Router","ActivatedRoute","RouteParameterBindings","component","_incomingRouteChange","resolvedParameters","_a","when","valueOf","before","after","txo","TransactionObserver","routeParameterDefs","Klass","getMetadataList","ROUTE_PARAMETER_LIST_KEY","installBinding","incomingResolvedRouteParameters","paramMap","last","map","parse","changes","unless","incomingRouteChange","model","getModelFor","propertyName","registerDisposable","Binding","toRight","toLeft","currentParameters","AbstractPlaceComponent","routeBindingMediator","setDefault","placeConfig","canDeactivate","Memoize","LeavePlaceGuard","currentRoute","currentState","nextState","RouteParameterSanitiser","parameterDefs","sanitisedParameters","routeParameter","queryParameters","sanitise","snapshot","sanitiseParameter","_d","_b","tslib_1.__values","_c","param","queryParamMap","def","formattedInitialValue","sanitiser","getSanitiser","initialValue","sanitisedValue","isTruthy","sanitisedRouteId","queryParams","reduce","item","ParameterType","StringType","NumberType","PlaceRouteGuard","canActivate","route","state","routeParameters","proceed","ActivatedRouteSnapshot","RouterStateSnapshot","createDefinition","opts","Opts","propertyNameAsString","toString","getOptional","STRING","NUMBER","propertyKey","addToOwnMetadataList","triggerName","OptionsHelper","hiddenStyleDef","trigger","transition","animate"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import {OnDestroy} from '@angular/core';\nimport {GarbageCollector} from '@coolon/pectin';\n\nexport class DisposableComponent extends GarbageCollector implements OnDestroy {\n\n ngOnDestroy(): void {\n this.dispose();\n }\n}\n","/* tslint:disable:no-input-rename */\nimport { EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material';\nimport {\n Constant,\n ListModel,\n MutableListModel,\n MutableValueModel,\n UiCommand,\n UseDelegate,\n ValueModel\n} from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\n\nconst EMPTY_ERRORS = new MutableListModel<string>().readonly;\n\nexport abstract class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n @Input() @UseDelegate()\n valueModel: MutableValueModel<T>;\n\n @Input() label: string;\n @Input() floatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @Input('command.focus') focusCommand: UiCommand.Nullary;\n @Input('command.blur') blurCommand: UiCommand.Nullary;\n @Input('command.enter') enterCommand: UiCommand.Nullary;\n @Input('command.escape') escapeCommand: UiCommand.Nullary;\n @Input('command.click') clickCommand: UiCommand.Nullary;\n\n @Output() focus = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() enterKey = new EventEmitter();\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: UiCommand.Nullary) {\n if (command && command.isEnabled()) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n // this._focused = this.valueModel['focused'] || new ValueHolder();\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n // @ts-ignore\n return (this.valueModel as any).enabled || Constant.TRUE;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return (this.valueModel as any).errorList || EMPTY_ERRORS;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n\n@Component({\n selector: 'angular-ui-powerups-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {assert, Dsl, GarbageCollector, UiCommand} from '@coolon/pectin';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinCommand]'\n})\nexport class CommandDirective extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {\n\n @Input()\n pectinCommand: UiCommand.Nullary<any>;\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n assert.notNil(this.pectinCommand);\n }\n\n ngAfterViewInit(): void {\n // for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now\n // we need to do this.\n const {chain} = Dsl.disposeWith(this);\n chain.value(this.pectinCommand.enabled).subscribe(enabled => {\n if (enabled) {\n this.elementRef.nativeElement.removeAttribute('disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.setAttribute('href', 'javascript:void');\n }\n } else {\n this.elementRef.nativeElement.setAttribute('disabled', 'disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.removeAttribute('href');\n }\n }\n });\n\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n\n @HostListener('click', ['$event'])\n notifyClick($event: Event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (this.pectinCommand.isEnabled()) {\n this.pectinCommand.execute({event: $event});\n } else {\n console.warn('disabled command clicked, ignoring.');\n }\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, NgZone, OnInit} from '@angular/core';\nimport {Dsl, HasFocusTracking, Logger} from '@coolon/pectin';\nimport {DisposableComponent} from '../components/disposable-component';\n\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinFocusBinding]'\n})\nexport class FocusBindingDirective extends DisposableComponent implements OnInit, AfterViewInit {\n\n private readonly document: Document;\n\n @Input() pectinFocusBinding: HasFocusTracking;\n @Input() focusBindingTarget: HTMLElement;\n\n @HostListener('focusin')\n onFocusIn() {\n this.pectinFocusBinding.focusCallbacks.notifyFocusIn();\n }\n\n @HostListener('focusout')\n onFocusOut() {\n this.pectinFocusBinding.focusCallbacks.notifyFocusOut();\n }\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) document: any) {\n super();\n // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642\n this.document = document as Document;\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n // TODO: Make this also track the current enabled/disabled state.\n const {chain} = Dsl.disposeWith(this);\n chain.value(this.pectinFocusBinding.focused).subscribe((focused) => {\n if (focused && !this.alreadyHasFocus()) {\n this.tryAndFocus();\n }\n });\n }\n\n // Hook method for debugging via tracing.\n alreadyHasFocus() {\n return this.isFocused(this.focusTarget);\n }\n\n // Hook method for debugging via tracing.\n isFocused(element: Element): boolean {\n return this.document.activeElement === element;\n }\n\n tryAndFocus(retries: number = 5) {\n if (this.modelShouldStillHaveFocus() && this.canFocus()) {\n if (!this.alreadyHasFocus()) {\n this.focusTarget.focus();\n }\n // if we didn't get the focus we try again later.\n if (!this.alreadyHasFocus()) {\n Logger.get(this).log(`focus failed, trying ${retries} more times`);\n if (retries > 0) {\n // try again on the next paint\n // TODO: is there an angular way of doing this without calling a window function.\n requestAnimationFrame(() => {\n this.tryAndFocus(retries - 1);\n });\n } else {\n Logger.get(this).warn(`Tried to focus but gave up as the component wasn't enabled or visible.`);\n }\n }\n }\n }\n\n get focusTarget(): HTMLElement {\n return this.focusBindingTarget || this.el.nativeElement;\n }\n\n // Hook method for debugging via tracing.\n modelShouldStillHaveFocus() {\n return this.pectinFocusBinding.focused.value;\n }\n\n // Hook method for debugging via tracing.\n canFocus(): boolean {\n const dimension = this.focusTarget.getBoundingClientRect();\n const hasSize = dimension.height >= 0 && dimension.height >= 0;\n // tslint:disable-next-line:no-string-literal\n return hasSize && !this.focusTarget['disabled'];\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-string-input',\n templateUrl: './string-input.component.html',\n styleUrls: ['./string-input.component.scss']\n})\nexport class StringInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-select-input',\n templateUrl: './select-input.component.html',\n styleUrls: ['./select-input.component.scss']\n})\nexport class SelectInputComponent<T = any> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @UseDelegate()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { InjectionToken } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from './activity';\nimport { Alert } from './alert';\nimport { Confirm } from './confirm';\n\nexport const INTERACTION_CONTEXT = new InjectionToken<any>('InteractionContext');\n\nexport abstract class InteractionContext {\n\n abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;\n\n abstract confirm(confirm: Confirm): Promise<boolean>;\n\n abstract alert(alert: Alert): Promise<void>;\n}\n","import { DelegatingValueModel, EventListenerList, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { Activity } from './activity';\n\nexport class AbstractActivity<D, R, E = any> extends DisposableComponent implements Activity<D, R, E> {\n\n private readonly _doneListeners = new EventListenerList<Activity.CallBack<R>>();\n private readonly _cancelListeners = new EventListenerList<Activity.CallBack<E>>();\n private readonly _finishListeners = new EventListenerList<() => void>();\n\n private readonly _busyModel = new DelegatingValueModel<boolean>().withDefault(false);\n\n onDone(callback: Activity.CallBack<R>) {\n this._doneListeners.add(callback);\n }\n\n onCancel(callback: Activity.CallBack<E>) {\n this._cancelListeners.add(callback);\n }\n\n done(result?: R): Promise<any> {\n return this._doneListeners\n .fireAndWait(l => l(result))\n .finally(() => this.finalizeAndDispose());\n }\n\n cancel(error?: E): Promise<any> {\n return this._cancelListeners\n .fireAndWait(l => l(error))\n .finally(() => this.finalizeAndDispose());\n }\n\n private finalizeAndDispose() {\n // this._activeModel.value = false;\n this._finishListeners.fire(l => l());\n // this._interactionContext = null;\n // this._initialized = false;\n [\n this._finishListeners,\n this._doneListeners,\n this._cancelListeners\n ].forEach(l => l.dispose());\n }\n\n\n get busy(): ValueModel<boolean> {\n return this._busyModel.readonly;\n }\n\n busyWhile(busyModel: ValueModel<boolean>) {\n this._busyModel.setDelegate(busyModel);\n }\n\n isBusy() {\n return this._busyModel.value;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ValueModel } from '@coolon/pectin';\n\nexport const ACTIVITY_DATA = new InjectionToken<any>('InteractionActivityData');\n\nexport interface Activity<D, R, E = any> {\n readonly busy: ValueModel<boolean>;\n\n onDone(callback: Activity.CallBack<R>);\n\n onCancel(callback: Activity.CallBack<E>);\n\n}\n\nexport namespace Activity {\n export type CallBack<T> = (value: T) => void | Promise<any>;\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\n\n@Component({\n selector: 'angular-ui-powerups-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly alert: Alert) {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n Input,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { Constructable, lang } from '@coolon/pectin';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from './activity-outlet-context';\n\n@Component({\n selector: 'angular-ui-powerups-activity-outlet',\n template: '',\n styleUrls: ['./activity-outlet.component.scss']\n})\nexport class ActivityOutletComponent<D, R, E> implements OnInit, InteractionContext {\n\n @Input()\n interactionContext: InteractionContext;\n\n @Input()\n set activityContext(activityContext: ActivityOutletContext<D, R, E>) {\n this.loadActivity(activityContext);\n };\n\n private activityComponent: ComponentRef<Activity<D, R, E>>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n }\n\n ngOnInit() {\n }\n\n loadActivity(activityContext: ActivityOutletContext<D, R, E>) {\n const injector = Injector.create({\n providers: [\n {\n provide: InteractionContext,\n useValue: this\n },\n { provide: ACTIVITY_DATA, useValue: activityContext.activityData }\n ],\n parent: this.injector\n });\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(activityContext.activityClass);\n this.viewContainerRef.clear();\n this.activityComponent = this.viewContainerRef.createComponent(componentFactory, 0, injector);\n this.activityComponent.instance.onDone(activityContext.onDone);\n this.activityComponent.instance.onCancel(activityContext.onCancel);\n }\n\n alert(alert: Alert): Promise<void> {\n return this.interactionContext.alert(alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.interactionContext.confirm(confirm);\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.interactionContext.startActivity(activityType, data);\n }\n}\n\nexport namespace ActivityOutletComponent {\n\n export class OutletInteractionContext<D, R, E> implements InteractionContext {\n\n constructor(private readonly context: ActivityOutletContext<D, R, E>) {\n }\n\n alert(alert: Alert): Promise<void> {\n return lang.notImplemented();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return lang.notImplemented();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return lang.notImplemented();\n }\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Confirm } from '../../confirm';\n\n@Component({\n selector: 'angular-ui-powerups-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent extends AbstractActivity<Confirm, boolean> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly confirm: Confirm) {\n super();\n assert.notNil(confirm);\n console.log(confirm);\n }\n\n ngOnInit() {\n }\n\n isDestructive(): boolean {\n return this.confirm.destructive && this.confirm.destructive();\n }\n}\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { MatTabGroup } from '@angular/material';\nimport { Constructable, Dsl, MutableListModel } from '@coolon/pectin';\nimport { Deferred } from '@coolon/pectin/lib/promise/deferred.class';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';\nimport { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\n\n@Component({\n selector: 'angular-ui-powerups-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent extends DisposableComponent implements OnInit, AfterViewInit, InteractionContext {\n\n @Input()\n parentInteractionContext: InteractionContext;\n\n @Input()\n initialActivity: ActivityOutletContext<any, any, any>;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n readonly activityTabs = new MutableListModel<ActivityOutletContext<any, any, any>>();\n private obsoleteTabs: ActivityOutletContext<any, any, any>[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { observe } = Dsl.disposeWith(this);\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.cleanUpTabs());\n }\n\n initialise<D, R, E>(options: ActivityContainerComponent.ActivityContext<D, R, E>) {\n this.initialActivity = {\n ...options,\n interactionContext: this\n };\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n const deferred = Deferred.defer<R>();\n const context = {\n interactionContext: this,\n activityClass: activityType,\n activityData: data,\n onDone: deferred.resolve,\n onCancel: deferred.reject\n };\n this.activityTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length;\n return deferred.promise.finally(() => {\n this.obsoleteTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length - 1;\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this.startActivity(AlertDialogComponent, alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.startActivity(ConfirmationDialogComponent, confirm);\n }\n\n private cleanUpTabs() {\n this.activityTabs.value = this.activityTabs.value.filter(tab => {\n return !this.obsoleteTabs.includes(tab);\n });\n }\n}\n\nexport namespace ActivityContainerComponent {\n\n export interface ActivityContext<D, R, E> {\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { ActivityContainerComponent } from '../components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from '../components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../components/confirmation-dialog/confirmation-dialog.component';\nimport { Confirm } from '../confirm';\nimport { InteractionContext } from '../interaction-context';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogInteractionService extends InteractionContext {\n\n constructor(private readonly dialogService: MatDialog) {\n super();\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n return this._startActivity(activityType, data);\n }\n\n private _startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean = true) {\n const config = {\n data,\n disableClose,\n panelClass: 'dialog-interaction-service',\n autoFocus: false\n };\n const matDialogRef = this.dialogService.open(ActivityContainerComponent, config) as MatDialogRef<ActivityContainerComponent>;\n return new Promise<R>((resolve, reject) => {\n const activityContainer = matDialogRef.componentInstance;\n activityContainer.parentInteractionContext = this;\n activityContainer.initialise({\n activityClass: activityType,\n activityData: data,\n onDone(result) {\n resolve(result);\n matDialogRef.close(result);\n },\n onCancel(error) {\n reject(error);\n matDialogRef.close(error);\n }\n });\n\n matDialogRef.updateSize();\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this._startActivity(AlertDialogComponent, alert, false);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this._startActivity(ConfirmationDialogComponent, confirm, true);\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule, MatDialogModule, MatTabsModule } from '@angular/material';\nimport { ActivityContainerComponent } from './components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\nimport { ActivityOutletComponent } from './components/activity-outlet/activity-outlet.component';\nimport { DialogInteractionService } from './services/dialog-interaction.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatDialogModule,\n MatTabsModule,\n PortalModule\n ],\n declarations: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent,\n ActivityOutletComponent\n ],\n entryComponents: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent\n ],\n providers: [\n DialogInteractionService\n ]\n})\nexport class InteractionModule {\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StoreInValueModel, UseDelegatingValueModel, ValueModel } from '@coolon/pectin';\n\n@Component({\n selector: 'aup-busy-overlay',\n templateUrl: `./busy-overlay.component.html`,\n styleUrls: ['./busy-overlay.component.scss']\n})\nexport class BusyOverlayComponent implements OnInit {\n\n @Input() @UseDelegatingValueModel()\n busyModel: ValueModel<boolean>;\n\n @Input() @StoreInValueModel('busyModel')\n busy: boolean;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'angular-ui-powerups-empty-state',\n template: `\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./empty-state.component.scss']\n})\nexport class EmptyStateComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MutableListModel, Trace } from '@coolon/pectin';\nimport { PlaceComponent } from './place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceService {\n\n private _activePlaces = new MutableListModel<PlaceComponent>();\n\n constructor() {\n }\n\n get activePlaces() {\n return this._activePlaces.readonly;\n }\n\n @Trace()\n onActivate(place: PlaceComponent) {\n this._activePlaces.push(place);\n }\n\n @Trace()\n onDeactivate(place: PlaceComponent) {\n this._activePlaces.remove(place);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PlaceComponent } from '../../place-component';\nimport { PlaceService } from '../../place.service';\n\n@Component({\n selector: 'angular-ui-powerups-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss']\n})\nexport class PlaceOutletComponent implements OnInit {\n\n constructor(private readonly placeService: PlaceService) { }\n\n ngOnInit() {\n }\n\n onActivate($event: PlaceComponent) {\n this.placeService.onActivate($event);\n }\n onDeactivate($event: PlaceComponent) {\n this.placeService.onDeactivate($event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material';\nimport { RouterModule } from '@angular/router';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { PlaceService } from './place.service';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n RouterModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent\n ],\n providers: [\n PlaceService\n ]\n})\nexport class PlaceModule {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NumberInputComponent} from './components/forms/number-input/number-input.component';\nimport { CommandDirective } from './directives/command.directive';\nimport { FocusBindingDirective } from './directives/focus-binding.directive';\nimport { StringInputComponent } from './components/forms/string-input/string-input.component';\nimport { PasswordInputComponent } from './components/forms/password-input/password-input.component';\nimport { SelectInputComponent } from './components/forms/select-input/select-input.component';\nimport { InteractionModule } from './interaction/interaction.module';\nimport { PlaceModule } from './place/place.module';\n\n@NgModule({\n declarations: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n ],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n PlaceModule,\n InteractionModule\n ],\n exports: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n InteractionModule,\n PlaceModule,\n ]\n\n})\nexport class AngularUiPowerupsModule {\n}\n","import { animate, AnimationStyleMetadata, style, transition, trigger } from '@angular/animations';\nimport { OptionsHelper } from '@coolon/pectin';\n\nconst defaultHiddenStyleDef = style({\n opacity: 0,\n 'height': '0',\n paddingTop: '0',\n paddingBottom: '0'\n});\n\nexport function slideDownAndUpAnimation(triggerName: string, options?: {\n duration?: string;\n hiddenStyleDef?: AnimationStyleMetadata;\n}) {\n const duration = OptionsHelper.get(options).getOptional('duration', '100ms');\n const hiddenStyleDef = OptionsHelper.get(options).getOptional('hiddenStyleDef', defaultHiddenStyleDef);\n return trigger(triggerName, [\n transition(':enter', [hiddenStyleDef, animate('100ms')]),\n transition(':leave', [animate('100ms', hiddenStyleDef)])\n ]);\n}\n\n// export function slideOutLeftAnimation(triggerName: string, duration:string = \"100ms\") {\n// return trigger(triggerName, [\n// state('true', style(\n// {\n// 'width': '*',\n// 'overflow': 'hidden',\n// 'opacity': '1'\n// })),\n// state('false', style({\n// 'width': '0px',\n// 'overflow': 'hidden',\n// 'opacity': '0'\n// })),\n// transition('* => *', [animate(duration)])\n// ]);\n// }\n","export class Dimension {\n constructor(readonly width: number, readonly height: number){}\n}\n","export class Point {\n\n static from(data: { x: number, y: number }) {\n return new Point(data.x, data.y);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n translate(x: number, y: number): Point {\n return new Point(this.x + x, this.y + y);\n }\n}\n","import { Dimension } from './dimension.class';\nimport { Point } from './point.class';\n\nexport class Bounds extends Dimension {\n\n constructor(readonly top: number, readonly left: number, readonly width: number, readonly height: number) {\n super(width, height);\n }\n\n relativePositionOf(point: { x: number, y: number } | MouseEvent) {\n if (point instanceof MouseEvent) {\n return new Point(point.clientX - this.left, point.clientY - this.top);\n } else {\n return new Point(point.x - this.left, point.y - this.top);\n }\n }\n}\n\nexport namespace Bounds {\n export function ofElement(element: HTMLElement): Bounds {\n const rect = element.getBoundingClientRect();\n return new Bounds(rect.top, rect.left, rect.width, rect.height);\n }\n}\n\n","import {AfterViewInit, ElementRef, NgZone} from '@angular/core';\nimport {ValueHolder, ValueModel} from '@coolon/pectin';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport {DisposableComponent} from './disposable-component';\nimport {Bounds} from './types/bounds.class';\nimport {Point} from './types/point.class';\n\nexport class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {\n\n private _boundsModel = new ValueHolder<Bounds>(new Bounds(0, 0, 0, 0));\n\n constructor(protected readonly elementRef: ElementRef, protected readonly ngZone: NgZone) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.updateBounds();\n const element = this.elementRef.nativeElement;\n const ro = new ResizeObserver((entries, observer) => {\n this.ngZone.run(() => this.updateBounds());\n });\n ro.observe(element);\n this.onDispose(() => ro.disconnect());\n }\n\n get boundsModel(): ValueModel<Bounds> {\n return this._boundsModel.readonly;\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n // TODO: Make this handle body scroll\n public relativePositionOf(point: { x: number, y: number } | MouseEvent): Point {\n return this.bounds.relativePositionOf(point);\n }\n\n get bounds(): Bounds {\n return this._boundsModel.value;\n }\n\n private updateBounds() {\n this._boundsModel.value = Bounds.ofElement(this.nativeElement);\n }\n\n\n}\n\nexport namespace ResizeAwareComponent {\n\n}\n","export interface Result<R, E> {\n // catch(callback: (error: E) => void): Result<R,E>;\n}\n\nexport namespace Result {\n export interface Callback<R,E> {\n then: <T>(result:R)=>T;\n catch: <T>(result:E)=>T;\n }\n\n}\n\n// const r:Result<string, number> = null;\n\n// r.catch(e => {}).then();\n\n","import { assert, Constructable } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport 'reflect-metadata';\nimport { PlaceComponent } from './place-component';\n\nexport function Place(options: Place.Options) {\n return (target: Function) => {\n Reflect.defineMetadata('place.options', options, target);\n };\n}\n\nexport namespace Place {\n export interface Options {\n path: string,\n title: string,\n authenticate?: boolean // defaults to true\n // childOf?: Constructable<PlaceComponent>\n }\n\n export class Descriptor {\n readonly path: string;\n readonly authenticate: boolean;\n readonly title: string;\n\n constructor(placeClass: Constructable<PlaceComponent>, options: Options) {\n assert.notNil(options);\n this.path = options.path;\n this.title = options.title;\n this.authenticate = _.isNil(options.authenticate) || options.authenticate;\n }\n }\n\n export function getDescriptor(klass: Constructable<PlaceComponent>): Descriptor {\n const placeOptions = Reflect.getMetadata('place.options', klass);\n return new Descriptor(klass, placeOptions);\n }\n}\n","import { ActivatedRoute, Router } from '@angular/router';\nimport {\n Binding,\n Dsl,\n GarbageCollector,\n MutableHasValue,\n MutableValueModel,\n Trace,\n TransactionObserver\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { AbstractPlaceComponent } from '../abstract-place-component';\nimport { ParameterDefinition } from './parameter-definition.class';\n\ninterface ResolvedParameter<T> {\n parameter: ParameterDefinition<T>;\n resolvedValue: T;\n}\n\nclass ResolvedParameters {\n constructor(readonly parameters: ResolvedParameter<any>[]) {\n }\n\n get<T>(parameter: ParameterDefinition<T>): T {\n const resolved = this.parameters.find(p => p.parameter === parameter);\n return resolved ? resolved.resolvedValue : null;\n }\n\n replace<T>(parameter: ParameterDefinition<T>, value: T): ResolvedParameters {\n return new ResolvedParameters(this.parameters.filter(p => p.parameter !== parameter).concat({\n parameter,\n resolvedValue: value\n }));\n }\n\n @Trace()\n protected getFormattedRouteId() {\n const routeIdParam = this.getRouteIdParam();\n return routeIdParam ? routeIdParam.parameter.type.format(routeIdParam.resolvedValue) : null;\n }\n\n private getRouteIdParam() {\n return this.parameters.find(p => p.parameter.isRouteId);\n }\n\n @Trace()\n protected getFormattedParameters() {\n const params = {};\n const routeIdParam = this.parameters.filter(p => !p.parameter.isRouteId).forEach(p => {\n params[p.parameter.name] = p.parameter.type.format(p.resolvedValue);\n });\n return params;\n }\n\n hasRouteId() {\n return !!this.getRouteIdParam();\n }\n\n @Trace()\n redirect(previous: ResolvedParameters, router: Router, activatedRoute: ActivatedRoute) {\n const routeId = this.getFormattedRouteId();\n const relativePath = !!previous.hasRouteId() ? '..' : '.';\n const path = routeId ? [relativePath, routeId, this.getFormattedParameters()] : [relativePath, this.getFormattedParameters()];\n router.navigate(path, {\n relativeTo: activatedRoute,\n });\n }\n}\n\nexport class RouteParameterBindings extends GarbageCollector {\n\n public readonly _incomingRouteChange = new MutableValueModel<boolean>(false);\n\n private txo: TransactionObserver;\n\n private readonly resolvedParameters = new MutableValueModel<ResolvedParameters>();\n\n constructor(private readonly component: any, private readonly router: Router, private readonly activatedRoute: ActivatedRoute) {\n super();\n const { chain, valueOf, before, when, after, observe } = Dsl.disposeWith(this);\n this.txo = new TransactionObserver();//.onEvent(e => console.log(e.toString()));\n\n const routeParameterDefs = Klass.get(component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n routeParameterDefs.forEach(parameter => this.installBinding(parameter));\n\n const incomingResolvedRouteParameters = observe.valuesFrom(activatedRoute.paramMap)\n .last()\n .map(params => {\n const result: ResolvedParameter<any>[] = [];\n routeParameterDefs.forEach(parameter => {\n result.push({ parameter, resolvedValue: parameter.type.parse(params.get(parameter.name)) });\n });\n return new ResolvedParameters(result);\n });\n\n incomingResolvedRouteParameters.subscribe(resolvedParameters => {\n this._incomingRouteChange.value = true;\n this.resolvedParameters.value = resolvedParameters;\n this._incomingRouteChange.value = false;\n });\n\n when.valueOf(this.resolvedParameters).changes((params, previous) => {\n params.redirect(previous, router, activatedRoute);\n }, { unless: this.incomingRouteChange });\n\n this.txo.observe('incomingResolvedRouteParameters', incomingResolvedRouteParameters);\n this.txo.observe('this.routeIsChanging', this.incomingRouteChange);\n }\n\n get incomingRouteChange() {\n return this._incomingRouteChange.readonly;\n }\n\n protected installBinding<T>(parameter: ParameterDefinition<T>) {\n const model = this.getModelFor(parameter);\n this.txo.observe(parameter.propertyName, model);\n this.registerDisposable(new Binding(this.resolvedParameters, model, {\n toRight(parameters: ResolvedParameters): T {\n return parameters.get(parameter);\n },\n toLeft(value: T, currentParameters?: ResolvedParameters): ResolvedParameters {\n return currentParameters.replace(parameter, value);\n }\n }));\n }\n\n\n private getModelFor<T>(parameter: ParameterDefinition<T>): MutableHasValue<T> {\n return this.component[parameter.propertyName];\n }\n}\n\nexport namespace RouteParameterBindings {\n export const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n}\n","import { ActivatedRoute, Router } from '@angular/router';\n\nimport { Constructable, DelegatingValueModel, MutableValueModel, UseDelegate } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { PlaceComponent } from './place-component';\nimport { Place } from './place.decorator';\nimport { RouteParameterBindings } from './route/route-parameter-bindings';\n\nexport class AbstractPlaceComponent extends DisposableComponent implements PlaceComponent {\n\n @UseDelegate()\n readonly titleModel: MutableValueModel<string>;\n\n private routeBindingMediator: RouteParameterBindings;\n\n constructor(protected activatedRoute: ActivatedRoute, router: Router) {\n super();\n this.routeBindingMediator = this.registerDisposable(new RouteParameterBindings(this, router, activatedRoute));\n // See https://coolon.atlassian.net/browse/PEC-59\n (this.titleModel as unknown as DelegatingValueModel<string>).setDefault(this.placeConfig.title);\n }\n\n @Memoize()\n get placeConfig(): Place.Descriptor {\n return Place.getDescriptor(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n canDeactivate(): boolean | Promise<boolean> {\n return true;\n }\n\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LeavePlaceGuard implements CanDeactivate<PlaceComponent> {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n return component.canDeactivate();\n }\n\n}\n","import { Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { assert, Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\n\nexport class RouteParameterSanitiser {\n\n private readonly routeParameter: ParameterDefinition<any>;\n private readonly queryParameters: ParameterDefinition<any>[];\n\n private readonly sanitisedParameters: { def: ParameterDefinition<any>, value: string }[] = [];\n\n constructor(readonly parameterDefs: ParameterDefinition<any>[], readonly injector: Injector) {\n this.routeParameter = parameterDefs.find(p => p.isRouteId);\n this.queryParameters = parameterDefs.filter(p => !p.isRouteId);\n }\n\n async sanitise(snapshot: ActivatedRouteSnapshot): Promise<boolean> {\n if (this.routeParameter) {\n const routeOk = await this.sanitiseParameter(this.routeParameter, snapshot.paramMap.get(this.routeParameter.name));\n if (!routeOk) {\n // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the\n // context of the route id.\n return false;\n }\n }\n for (const param of this.queryParameters) {\n await this.sanitiseParameter(param, snapshot.queryParamMap.get(param.name));\n }\n return this.sanitisedParameters.length === 0;\n }\n\n @Trace()\n async sanitiseParameter<T>(def: ParameterDefinition<T>, formattedInitialValue: string): Promise<boolean> {\n if (def) {\n const sanitiser = this.getSanitiser(def);\n if (sanitiser) {\n const initialValue = def.type.parse(formattedInitialValue);\n const sanitisedValue = await sanitiser.sanitise(initialValue);\n if (initialValue !== sanitisedValue) {\n this.sanitisedParameters.push({ def, value: def.type.format(sanitisedValue) });\n return false;\n }\n }\n }\n return true;\n }\n\n redirect(router: Router) {\n assert.isTruthy(this.sanitisedParameters.length !== 0);\n const sanitisedRouteId = this.sanitisedParameters.find(s => s.def === this.routeParameter);\n if (sanitisedRouteId) {\n return router.navigate(['..', sanitisedRouteId.value]);\n } else {\n const queryParams = this.sanitisedParameters.filter(s => s.def !== this.routeParameter)\n .reduce((params, item) => ({ ...params, [item.def.name]: item.value }), {});\n return router.navigate(['.', queryParams]);\n }\n }\n\n @Memoize()\n private getSanitiser<T>(def: ParameterDefinition<T>): ParameterSanitiser<T> {\n return def.sanitiser ? this.injector.get<ParameterSanitiser<T>>(def.sanitiser, new def.sanitiser()) : null;\n }\n}\n","export interface ParameterType<T> {\n format(value: T): string;\n\n parse(value: string): T;\n}\n\nexport namespace ParameterType {\n\n class StringType implements ParameterType<string> {\n format(value: string): string {\n return value;\n }\n\n parse(value: string): string {\n return value;\n }\n }\n\n class NumberType implements ParameterType<number> {\n format(value: number): string {\n return `${value}`;\n }\n\n parse(value: string): number {\n return +value;\n }\n }\n\n export const STRING = new StringType();\n export const NUMBER = new NumberType();\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n CanDeactivate,\n Router,\n RouterStateSnapshot,\n UrlTree\n} from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\nimport { RouteParameterBindings } from '../route/route-parameter-bindings';\nimport { RouteParameterSanitiser } from '../route/route-parameter-sanitiser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouteGuard implements CanActivate {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n @Trace()\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n const routeParameters = Klass.get(route.component).getMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY);\n const sanitiser = new RouteParameterSanitiser(routeParameters, this.injector);\n return sanitiser.sanitise(route).then(proceed => {\n if (!proceed) {\n sanitiser.redirect(this.router);\n }\n return proceed;\n });\n }\n\n}\n","import { assert, Constructable, UseDelegate } from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\nimport { RouteParameterBindings } from './route-parameter-bindings';\n\nexport interface ParameterOptions<T> {\n as?: string;\n sanitiser?: Constructable<ParameterSanitiser<T>>;\n}\n\nexport function RouteId<T extends string | number>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, true);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\n\nexport function QueryParameter<T>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, false);\n Klass.get(prototype).addToOwnMetadataList(RouteParameterBindings.ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nfunction createDefinition<T>(propertyName: symbol | string, type: ParameterType<T>, options: ParameterOptions<T>, routeId: boolean) {\n const opts = Opts.get(options);\n const propertyNameAsString = assert.notNil(propertyName).toString();\n const def: ParameterDefinition<T> = {\n name: opts.getOptional('as', propertyNameAsString),\n propertyName: propertyNameAsString,\n type: assert.notNil(type),\n sanitiser: opts.getOptional('sanitiser', null),\n isRouteId: routeId\n };\n return def;\n}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Generated bundle index. Do not edit.
|
|
7
7
|
*/
|
|
8
|
-
export { AngularUiPowerupsModule,
|
|
8
|
+
export { AngularUiPowerupsModule, slideDownAndUpAnimation, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point, CommandDirective, FocusBindingDirective, AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService, AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, ParameterType, RouteParameterBindings, RouteParameterSanitiser } from './index';
|
|
9
9
|
export { DisposableComponent as ɵc } from './lib/components/disposable-component';
|
|
10
10
|
export { AbstractInputComponent as ɵe } from './lib/components/forms/abstract-input.component';
|
|
11
11
|
export { NumberInputComponent as ɵd } from './lib/components/forms/number-input/number-input.component';
|
|
@@ -28,4 +28,4 @@ export { EmptyStateComponent as ɵj } from './lib/place/components/empty-state/e
|
|
|
28
28
|
export { PlaceOutletComponent as ɵl } from './lib/place/components/place-outlet/place-outlet.component';
|
|
29
29
|
export { PlaceModule as ɵi } from './lib/place/place.module';
|
|
30
30
|
export { PlaceService as ɵm } from './lib/place/place.service';
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vbG9uLWFuZ3VsYXItdWktcG93ZXJ1cHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJjb29sb24tYW5ndWxhci11aS1wb3dlcnVwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsc3ZCQUFjLFNBQVMsQ0FBQztBQUV4QixPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsdUJBQXVCLElBQUksRUFBRSxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDckgsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzVHLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUVqSSxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmV4cG9ydCB7QWJzdHJhY3RJbnB1dENvbXBvbmVudCBhcyDJtWV9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7TnVtYmVySW5wdXRDb21wb25lbnQgYXMgybVkfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7UGFzc3dvcmRJbnB1dENvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7U2VsZWN0SW5wdXRDb21wb25lbnQgYXMgybVofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7U3RyaW5nSW5wdXRDb21wb25lbnQgYXMgybVmfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm1zL3N0cmluZy1pbnB1dC9zdHJpbmctaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7Q29tbWFuZERpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvY29tbWFuZC5kaXJlY3RpdmUnO1xuZXhwb3J0IHtGb2N1c0JpbmRpbmdEaXJlY3RpdmUgYXMgybVifSBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2ZvY3VzLWJpbmRpbmcuZGlyZWN0aXZlJztcbmV4cG9ydCB7QWJzdHJhY3RBY3Rpdml0eSBhcyDJtXF9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2Fic3RyYWN0LWFjdGl2aXR5JztcbmV4cG9ydCB7QUNUSVZJVFlfREFUQSBhcyDJtXJ9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2FjdGl2aXR5JztcbmV4cG9ydCB7QWxlcnQgYXMgybV1fSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9hbGVydCc7XG5leHBvcnQge0FjdGl2aXR5Q29udGFpbmVyQ29tcG9uZW50IGFzIMm1b30gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hY3Rpdml0eS1jb250YWluZXIvYWN0aXZpdHktY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQge0FjdGl2aXR5T3V0bGV0Q29tcG9uZW50IGFzIMm1dn0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hY3Rpdml0eS1vdXRsZXQvYWN0aXZpdHktb3V0bGV0LmNvbXBvbmVudCc7XG5leHBvcnQge0FsZXJ0RGlhbG9nQ29tcG9uZW50IGFzIMm1dH0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vY29tcG9uZW50cy9hbGVydC1kaWFsb2cvYWxlcnQtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCBhcyDJtXB9IGZyb20gJy4vbGliL2ludGVyYWN0aW9uL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbmZpcm0gYXMgybVzfSBmcm9tICcuL2xpYi9pbnRlcmFjdGlvbi9jb25maXJtJztcbmV4cG9ydCB7SW50ZXJhY3Rpb25Db250ZXh0IGFzIMm1eH0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5leHBvcnQge0ludGVyYWN0aW9uTW9kdWxlIGFzIMm1bn0gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24ubW9kdWxlJztcbmV4cG9ydCB7RGlhbG9nSW50ZXJhY3Rpb25TZXJ2aWNlIGFzIMm1d30gZnJvbSAnLi9saWIvaW50ZXJhY3Rpb24vc2VydmljZXMvZGlhbG9nLWludGVyYWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtCdXN5T3ZlcmxheUNvbXBvbmVudCBhcyDJtWt9IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvYnVzeS1vdmVybGF5L2J1c3ktb3ZlcmxheS5jb21wb25lbnQnO1xuZXhwb3J0IHtFbXB0eVN0YXRlQ29tcG9uZW50IGFzIMm1an0gZnJvbSAnLi9saWIvcGxhY2UvY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0IHtQbGFjZU91dGxldENvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vbGliL3BsYWNlL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnQnO1xuZXhwb3J0IHtQbGFjZU1vZHVsZSBhcyDJtWl9IGZyb20gJy4vbGliL3BsYWNlL3BsYWNlLm1vZHVsZSc7XG5leHBvcnQge1BsYWNlU2VydmljZSBhcyDJtW19IGZyb20gJy4vbGliL3BsYWNlL3BsYWNlLnNlcnZpY2UnOyJdfQ==
|
package/esm2015/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
-
export { AngularUiPowerupsModule,
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export { AngularUiPowerupsModule, slideDownAndUpAnimation, DisposableComponent, ResizeAwareComponent, AbstractInputComponent, NumberInputComponent, PasswordInputComponent, SelectInputComponent, StringInputComponent, Bounds, Dimension, Point, CommandDirective, FocusBindingDirective, AbstractActivity, ACTIVITY_DATA, INTERACTION_CONTEXT, InteractionContext, InteractionModule, ActivityContainerComponent, ActivityOutletComponent, AlertDialogComponent, ConfirmationDialogComponent, DialogInteractionService, AbstractPlaceComponent, Place, PlaceModule, PlaceService, BusyOverlayComponent, EmptyStateComponent, PlaceOutletComponent, LeavePlaceGuard, PlaceRouteGuard, RouteId, QueryParameter, ParameterType, RouteParameterBindings, RouteParameterSanitiser } from "./public_api";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsc3ZCQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3B1YmxpY19hcGlcIjtcbiJdfQ==
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file Automatically generated by barrelsby.
|
|
7
7
|
*/
|
|
8
|
-
export {
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
export { slideDownAndUpAnimation } from "./slideDownAndUpAnimation";
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvYW5pbWF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsd0NBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGJhcnJlbHNieS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zbGlkZURvd25BbmRVcEFuaW1hdGlvblwiO1xuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { animate, style, transition, trigger } from '@angular/animations';
|
|
6
|
+
import { OptionsHelper } from '@coolon/pectin';
|
|
7
|
+
/** @type {?} */
|
|
8
|
+
const defaultHiddenStyleDef = style({
|
|
9
|
+
opacity: 0,
|
|
10
|
+
'height': '0',
|
|
11
|
+
paddingTop: '0',
|
|
12
|
+
paddingBottom: '0'
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* @param {?} triggerName
|
|
16
|
+
* @param {?=} options
|
|
17
|
+
* @return {?}
|
|
18
|
+
*/
|
|
19
|
+
export function slideDownAndUpAnimation(triggerName, options) {
|
|
20
|
+
/** @type {?} */
|
|
21
|
+
const duration = OptionsHelper.get(options).getOptional('duration', '100ms');
|
|
22
|
+
/** @type {?} */
|
|
23
|
+
const hiddenStyleDef = OptionsHelper.get(options).getOptional('hiddenStyleDef', defaultHiddenStyleDef);
|
|
24
|
+
return trigger(triggerName, [
|
|
25
|
+
transition(':enter', [hiddenStyleDef, animate('100ms')]),
|
|
26
|
+
transition(':leave', [animate('100ms', hiddenStyleDef)])
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVEb3duQW5kVXBBbmltYXRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHMvIiwic291cmNlcyI6WyJsaWIvYW5pbWF0aW9ucy9zbGlkZURvd25BbmRVcEFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBMEIsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O01BRXpDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNsQyxPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxHQUFHO0lBQ2IsVUFBVSxFQUFFLEdBQUc7SUFDZixhQUFhLEVBQUUsR0FBRztDQUNuQixDQUFDOzs7Ozs7QUFFRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsV0FBbUIsRUFBRSxPQUc1RDs7VUFDTyxRQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQzs7VUFDdEUsY0FBYyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDO0lBQ3RHLE9BQU8sT0FBTyxDQUFDLFdBQVcsRUFBRTtRQUMxQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hELFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7S0FDekQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvblN0eWxlTWV0YWRhdGEsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBPcHRpb25zSGVscGVyIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuXG5jb25zdCBkZWZhdWx0SGlkZGVuU3R5bGVEZWYgPSBzdHlsZSh7XG4gIG9wYWNpdHk6IDAsXG4gICdoZWlnaHQnOiAnMCcsXG4gIHBhZGRpbmdUb3A6ICcwJyxcbiAgcGFkZGluZ0JvdHRvbTogJzAnXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNsaWRlRG93bkFuZFVwQW5pbWF0aW9uKHRyaWdnZXJOYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiB7XG4gIGR1cmF0aW9uPzogc3RyaW5nO1xuICBoaWRkZW5TdHlsZURlZj86IEFuaW1hdGlvblN0eWxlTWV0YWRhdGE7XG59KSB7XG4gIGNvbnN0IGR1cmF0aW9uID0gT3B0aW9uc0hlbHBlci5nZXQob3B0aW9ucykuZ2V0T3B0aW9uYWwoJ2R1cmF0aW9uJywgJzEwMG1zJyk7XG4gIGNvbnN0IGhpZGRlblN0eWxlRGVmID0gT3B0aW9uc0hlbHBlci5nZXQob3B0aW9ucykuZ2V0T3B0aW9uYWwoJ2hpZGRlblN0eWxlRGVmJywgZGVmYXVsdEhpZGRlblN0eWxlRGVmKTtcbiAgcmV0dXJuIHRyaWdnZXIodHJpZ2dlck5hbWUsIFtcbiAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbaGlkZGVuU3R5bGVEZWYsIGFuaW1hdGUoJzEwMG1zJyldKSxcbiAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbYW5pbWF0ZSgnMTAwbXMnLCBoaWRkZW5TdHlsZURlZildKVxuICBdKTtcbn1cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIHNsaWRlT3V0TGVmdEFuaW1hdGlvbih0cmlnZ2VyTmFtZTogc3RyaW5nLCBkdXJhdGlvbjpzdHJpbmcgPSBcIjEwMG1zXCIpIHtcbi8vICAgcmV0dXJuIHRyaWdnZXIodHJpZ2dlck5hbWUsIFtcbi8vICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKFxuLy8gICAgICAge1xuLy8gICAgICAgICAnd2lkdGgnOiAnKicsXG4vLyAgICAgICAgICdvdmVyZmxvdyc6ICdoaWRkZW4nLFxuLy8gICAgICAgICAnb3BhY2l0eSc6ICcxJ1xuLy8gICAgICAgfSkpLFxuLy8gICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHtcbi8vICAgICAgICd3aWR0aCc6ICcwcHgnLFxuLy8gICAgICAgJ292ZXJmbG93JzogJ2hpZGRlbicsXG4vLyAgICAgICAnb3BhY2l0eSc6ICcwJ1xuLy8gICAgIH0pKSxcbi8vICAgICB0cmFuc2l0aW9uKCcqID0+IConLCBbYW5pbWF0ZShkdXJhdGlvbildKVxuLy8gICBdKTtcbi8vIH1cbiJdfQ==
|