UNPKG

ngx-manage

Version:

- angular class descriptor and state

2 lines 10.7 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs"),require("reflect-metadata"),require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ngx-manage",["exports","rxjs","reflect-metadata","@angular/core","@angular/common"],t):t((e=e||self)["ngx-manage"]={},e.rxjs,null,e.ng.core,e.ng.common)}(this,function(e,t,n,r,o){"use strict";var a=function(e,t){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function i(e,t){function n(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var s=function(){return(s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function u(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function p(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function c(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function l(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(c(arguments[t]));return e}var f="$base",h={None:0,Text:1,Input:2,Disabled:3,Hidden:4};h[h.None]="None",h[h.Text]="Text",h[h.Input]="Input",h[h.Disabled]="Disabled",h[h.Hidden]="Hidden";var v={Text:"text",Number:"number",Array:"array",Object:"object",Boolean:"boolean",Undefined:"undefined",Date:"date",Time:"time",Error:"error",Custom:"custom"},d=function(e,t,n,r,o,a){void 0===e&&(e=v.Text),void 0===t&&(t=f),void 0===n&&(n=h.Text),void 0===r&&(r=""),void 0===o&&(o=""),void 0===a&&(a=""),this.type=e,this.shema=t,this.prop=n,this.template=r,this.provider=o,this.validator=a};var m=function(e,t){this.name=e,this.param=t};var y=new(function(){function e(){this.hash={}}return e.prototype.resolveHash=function(e){if(this.hash[e.name])return this.hash[e.name];var t=(Reflect.getMetadata("design:paramtypes",e)||[]).map(function(e){return y.resolve(e)});return this.hash[e.name]=new(e.bind.apply(e,l([void 0],t))),this.hash[e.name]},e.prototype.resolve=function(e){var t=(Reflect.getMetadata("design:paramtypes",e)||[]).map(function(e){return y.resolve(e)});return new(e.bind.apply(e,l([void 0],t)))},e}()),b=function(e,t,n){this.name=e,this.state=t,this.msg=n};var g=function(){function e(){}return e.prototype.SendMessage=function(e,t,n){return r=this,o=void 0,i=function(){var t;return u(this,function(r){return t={},n.sendMessage(e,t),[2]})},new((a=void 0)||(a=Promise))(function(e,t){function n(e){try{u(i.next(e))}catch(e){t(e)}}function s(e){try{u(i.throw(e))}catch(e){t(e)}}function u(t){t.done?e(t.value):new a(function(e){e(t.value)}).then(n,s)}u((i=i.apply(r,o||[])).next())});var r,o,a,i},e}();var w=function(){function e(){this.version="1.0.2",this.subjects={},this.state={}}return e.prototype.init=function(e){return this.subjects[e]||(this.state={},this.subjects[e]=new t.Subject),this.subjects[e]},e.prototype.getState=function(e,t){return this.init(e).asObservable().subscribe(function(e){return t(e)})},e.prototype.getStates=function(e){var t=[];for(var n in e)t.push(this.init(n).asObservable().subscribe(function(t){(e[t.name]||e[n])(t)}));return t},e.prototype.sendMessage=function(e,t){this.init(e).next({msg:t,name:e})},e.prototype.read=function(e,t){var n=(this.state[e]||{})[t];if(n)return n;var r=localStorage.getItem(this.version+"_"+e+"_"+t),o=JSON.parse(r);return o?(this.state[e]=this.state[e]||{},this.state[e][t]=o,this.write(e,t,o,!0),this.state[e][t]):void 0},e.prototype.write=function(e,t,n,r){if(void 0===r&&(r=!1),this.state[e]||(this.state[e]={}),this.state[e]&&(this.state[e][t]=n),!r){var o=JSON.stringify(n);localStorage.setItem(this.version+"_"+e+"_"+t,o)}},e}();var O=function(){function e(){}return e.prototype.getState=function(e,t){},e.prototype.sendMessage=function(e,t){},e.prototype.ngOnDestroy=function(){},e.prototype.getStates=function(e){},e}(),x=function(e,t){void 0===t&&(t=f),this.Template=e,this.Shema=t};var j=function(){function e(){this.subject=new t.BehaviorSubject(void 0)}return e.prototype.load=function(e,t){void 0===t&&(t=f),this.subject.next(new x(e,t))},e.prototype.getTemplates=function(){return this.subject.asObservable()},e.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=r.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}();var S=function(){function e(e){this.template=e,this.values=[]}return e.prototype.ngOnInit=function(){var e=this;this.template.getTemplates().subscribe(function(t){var n,r;if(t){var o=t.Template[v.Text];e.error=t.Template[v.Error],e.descriptor=void 0!==e._value?Object.getOwnPropertyDescriptor(e._value.__proto__.__proto__,t.Shema):void 0;var a=[],i=e.owner?e.owner.prop:void 0;if(e.descriptor&&e.descriptor.value){var s=e.descriptor.value;try{for(var u=p(s.list),c=u.next();!c.done;c=u.next()){var l=c.value,f=s.hash[l],d=void 0;if(d=(d=f.param.type==v.Custom&&f.param.template?t.Template[f.param.template]:t.Template[f.param.type])||o,f.param.prop!==h.None){var m=f.param.prop==h.Input&&i&&i==h.Disabled?h.Disabled:f.param.prop;a.push({value:{target:e._value,prop:m,name:l,owner:e.owner,param:f.param,uid:Math.random().toString(36).substring(2)+Date.now().toString(36),get value(){return this.target[this.name]},set value(e){this.target[this.name]=e}},template:d})}}}catch(e){n={error:e}}finally{try{c&&!c.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}e.values=a}})},e.prototype.ngAfterViewInit=function(){},e.decorators=[{type:r.Component,args:[{selector:"ngx-base",template:'<table class="table table-scroll">\n <tr *ngFor="let data of values">\n <ng-template \n [ngIf]="data.template" \n [ngTemplateOutlet]="data.template" \n [ngTemplateOutletContext]="{ $implicit: data.value }"\n >\n </ng-template>\n </tr>\n</table>\n<div *ngIf="values.length==0 && error">\n <ng-template \n [ngIf]="error" \n [ngTemplateOutlet]="error" \n [ngTemplateOutletContext]="{ $implicit: _value }"\n >\n </ng-template>\n</div>\n',styles:[""]}]}],e.ctorParameters=function(){return[{type:j}]},e.propDecorators={_value:[{type:r.Input,args:["value"]}],owner:[{type:r.Input,args:["owner"]}]},e}();var T=function(){function e(){}return e.prototype.isDisabled=function(e){return e.prop==h.Disabled},e.prototype.isHidden=function(e){return e.prop==h.Hidden},e.prototype.isInput=function(e){return e.prop==h.Input},e.prototype.isText=function(e){return e.prop==h.Text},e.prototype.ngOnInit=function(){this.disabled=this.Value.prop==h.Disabled,this.Value.prop==h.Input||this.Value.prop==h.Disabled?this.type="text":this.Value.prop==h.Hidden&&(this.type="hidden")},e.propDecorators={Value:[{type:r.Input,args:["value"]}],Owner:[{type:r.Input,args:["owner"]}]},e}();var _=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{declarations:[S],imports:[o.CommonModule],exports:[S],providers:[j]}]}],e}();e.BASE_SHEMA=f,e.BaseComponent=S,e.BaseDescriptors=function(e){return function(t,n){e.forEach(function(e){!function(e,t,n){var r=Object.getOwnPropertyDescriptor(t,e.shema);r||(Object.defineProperty(t,e.shema,{configurable:!1,enumerable:!0,value:{hash:{},list:[]}}),r=Object.getOwnPropertyDescriptor(t,e.shema)),r&&(r.value.hash[n]=new m(n,e),r.value.list.push(n),Object.defineProperty(t,e.shema,r))}(e,t,n)})}},e.BaseParam=d,e.BaseValue=m,e.BaseValueProp=h,e.BaseValueType=v,e.Descriptor=function(e,t){return function(n){var r=new n;t||(t=Object.getOwnPropertyNames(r));var o=t,a=n.prototype;return e.forEach(function(e){o.forEach(function(t){var n,o=s({},e);o.type===v.Undefined&&r&&(o.type=void 0!==(n=r[t])?n instanceof Array?v.Array:"boolean"==typeof n?v.Boolean:"number"==typeof n?v.Number:n&&void 0!==n.hours&&""+n.hours?v.Time:n&&"function"==typeof n.getMilliseconds?v.Date:v.Text:v.Undefined),function(e,t){var n=Object.getOwnPropertyDescriptor(a,e.shema);n||(Object.defineProperty(a,e.shema,{configurable:!1,enumerable:!0,value:{list:[],hash:{}}}),n=Object.getOwnPropertyDescriptor(a,e.shema)),n&&!n.value.hash[t]&&(n.value.hash[t]=new m(t,e),n.value.list.push(t),Object.defineProperty(a,e.shema,n))}(o,t)});var n=Object.getOwnPropertyDescriptor(a,e.shema);n&&(n.value.list=t.slice(),Object.defineProperty(a,e.shema,n))}),function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t}(n)}},e.NgxManageModule=_,e.StateBase=O,e.StateDecorator=function(e){return function(t){var n,r=y.resolveHash(w);if(e.service){var o=e.service;n=o.static?y.resolveHash(o.def):y.resolve(o.def)}return function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.message=n,t.subscribtion=[],t}return i(t,e),t.prototype.getStates=function(e){this.subscribtion=r.getStates(e)},t.prototype.getState=function(e,t){this.subscribtion.push(r.getState(e,t))},t.prototype.sendMessage=function(e,t){this.message&&this.message.SendMessage(e,t,r)},t.prototype.ngOnDestroy=function(){this.subscribtion.forEach(function(e){return e.unsubscribe()})},t}(t)}},e.StateMessage=b,e.StateMessageService=g,e.TemplateBaseComponent=T,e.TemplateService=j,e.TemplateServiceMessage=x,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=ngx-manage.umd.min.js.map