@awesome-nodes/mvvm
Version:
Application development framework using the *model* *view* *view-model* design pattern.
2 lines • 2.94 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("mvvm",[],t):"object"==typeof exports?exports.mvvm=t():e.mvvm=t()}(global,(function(){return(()=>{"use strict";var e={d:(t,s)=>{for(var i in s)e.o(s,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:s[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{ViewModelBase:()=>v});const s=require("@awesome-nodes/object"),i=require("@awesome-nodes/object/model"),o=require("@awesome-nodes/injection-factory");class r{get eventEmitter(){return this._eventEmitter}constructor(e){this._producer=e,this._subscriptions=new Map,this._eventEmitter=new n.value}subscribe(e,t){let s,i,o;"function"==typeof e?s=e:({next:s,error:i,complete:o}=e),this._subscriptions.get(s)&&this.unsubscribe(s);const r=this._eventEmitter.subscribe((e=>{e(t?s.bind(t):s)}),i&&t?i.bind(t):i,o&&t?o.bind(t):o);return r.add((()=>{this._subscriptions.delete(s)})),this._subscriptions.set(s,r),r}unsubscribe(e){const t=this._subscriptions.get("function"==typeof e?e:e.next);t&&!1===t.closed&&t.unsubscribe()}invoke(e=s.EventArgs.empty){this._eventEmitter.emit(((t,s)=>{(s?t.bind(s):t)(this._producer,e)}))}}const n=o.InjectionScope.get(r,null).addToken("event-emitter");class u extends s.ObjectBase{}function d(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}var c=0;function p(e){return"__private_"+c+++"_"+e}var l=p("_isDisposed"),a=p("_disposing"),b=p("_disposed");class m extends u{constructor(...e){super(...e),Object.defineProperty(this,l,{writable:!0,value:!1}),Object.defineProperty(this,a,{writable:!0,value:new r(this)}),Object.defineProperty(this,b,{writable:!0,value:new r(this)})}onDisposing(e){d(this,a)[a].invoke(e)}onDisposed(e){d(this,b)[b].invoke(e)}dispose(e){if(void 0===e&&!d(this,l)[l])return this.onDisposing(i.EventArgs.empty),this.dispose(!0),void this.onDisposed(i.EventArgs.empty);d(this,l)[l]=!0}get disposing(){return d(this,a)[a]}get disposed(){return d(this,b)[b]}get isDisposed(){return d(this,l)[l]}}require("rxjs");var h=0;function _(e){return"__private_"+h+++"_"+e}_("_thisArg"),_("_actionObservable"),_("_actionSubscription"),_("_nextResult"),_("_nextResult$"),_("_actionResult"),_("_actionResult$"),_("_onProgress"),_("_onError"),_("_onComplete");class v extends s.ObjectBase{get name(){return this.toString()}get model(){return this._model}set model(e){this._model=e}constructor(e,t){super(t),this._model=void 0,this._model=e}destroy(){this.model&&(this.model instanceof m||this.model.dispose)&&this.model.dispose()}equals(e){return super.equals(e)&&this.name==e.name}}return t})()}));
//# sourceMappingURL=view-model.min.js.map