UNPKG

feather-ts

Version:

Lightweight javascript framework with REST, routing, bindings, message hub and event delegation (under 10kb gzipped)

2 lines 32.8 kB
var __extends,__assign,__rest,__decorate,__param,__metadata,__awaiter,__generator,__exportStar,__values,__read,__spread,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault;window.console||(window.console={}),console.log||(console.log=function(){}),function(e){var o="object"==typeof global?global:"object"==typeof self?self:"object"==typeof this?this:{};function r(r,n){return r!==o&&("function"==typeof Object.create?Object.defineProperty(r,"__esModule",{value:!0}):r.__esModule=!0),function(t,e){return r[t]=n?n(t,e):e}}"function"==typeof define&&define.amd?define("tslib",["exports"],function(t){e(r(o,r(t)))}):"object"==typeof module&&"object"==typeof module.exports?e(r(o,r(module.exports))):e(r(o))}(function(t){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r])};__extends=function(t,e){function r(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)},__assign=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},__rest=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(t);o<n.length;o++)e.indexOf(n[o])<0&&(r[n[o]]=t[n[o]])}return r},__decorate=function(t,e,r,n){var o,a=arguments.length,_=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)_=Reflect.decorate(t,e,r,n);else for(var c=t.length-1;0<=c;c--)(o=t[c])&&(_=(a<3?o(_):3<a?o(e,r,_):o(e,r))||_);return 3<a&&_&&Object.defineProperty(e,r,_),_},__param=function(r,n){return function(t,e){n(t,e,r)}},__metadata=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},__awaiter=function(a,_,c,i){return new(c||(c=Promise))(function(t,e){function r(t){try{o(i.next(t))}catch(t){e(t)}}function n(t){try{o(i.throw(t))}catch(t){e(t)}}function o(e){e.done?t(e.value):new c(function(t){t(e.value)}).then(r,n)}o((i=i.apply(a,_||[])).next())})},__generator=function(r,n){var o,a,_,t,c={label:0,sent:function(){if(1&_[0])throw _[1];return _[1]},trys:[],ops:[]};return t={next:e(0),throw:e(1),return:e(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(e){if(o)throw new TypeError("Generator is already executing.");for(;c;)try{if(o=1,a&&(_=a[2&e[0]?"return":e[0]?"throw":"next"])&&!(_=_.call(a,e[1])).done)return _;switch(a=0,_&&(e=[0,_.value]),e[0]){case 0:case 1:_=e;break;case 4:return c.label++,{value:e[1],done:!1};case 5:c.label++,a=e[1],e=[0];continue;case 7:e=c.ops.pop(),c.trys.pop();continue;default:if(!(_=0<(_=c.trys).length&&_[_.length-1])&&(6===e[0]||2===e[0])){c=0;continue}if(3===e[0]&&(!_||e[1]>_[0]&&e[1]<_[3])){c.label=e[1];break}if(6===e[0]&&c.label<_[1]){c.label=_[1],_=e;break}if(_&&c.label<_[2]){c.label=_[2],c.ops.push(e);break}_[2]&&c.ops.pop(),c.trys.pop();continue}e=n.call(r,c)}catch(t){e=[6,t],a=0}finally{o=_=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,t])}}},__exportStar=function(t,e){for(var r in t)e.hasOwnProperty(r)||(e[r]=t[r])},__values=function(t){var e="function"==typeof Symbol&&t[Symbol.iterator],r=0;return e?e.call(t):{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}}},__read=function(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,o,a=r.call(t),_=[];try{for(;(void 0===e||0<e--)&&!(n=a.next()).done;)_.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return _},__spread=function(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(__read(arguments[e]));return t},__await=function(t){return this instanceof __await?(this.v=t,this):new __await(t)},__asyncGenerator=function(t,e,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,a=r.apply(t,e||[]),_=[];return o={},n("next"),n("throw"),n("return"),o[Symbol.asyncIterator]=function(){return this},o;function n(n){a[n]&&(o[n]=function(r){return new Promise(function(t,e){1<_.push([n,r,t,e])||c(n,r)})})}function c(t,e){try{(r=a[t](e)).value instanceof __await?Promise.resolve(r.value.v).then(i,u):l(_[0][2],r)}catch(t){l(_[0][3],t)}var r}function i(t){c("next",t)}function u(t){c("throw",t)}function l(t,e){t(e),_.shift(),_.length&&c(_[0][0],_[0][1])}},__asyncDelegator=function(n){var t,o;return t={},e("next"),e("throw",function(t){throw t}),e("return"),t[Symbol.iterator]=function(){return this},t;function e(e,r){n[e]&&(t[e]=function(t){return(o=!o)?{value:__await(n[e](t)),done:"return"===e}:r?r(t):t})}},__asyncValues=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator];return e?e.call(t):"function"==typeof __values?__values(t):t[Symbol.iterator]()},__makeTemplateObject=function(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t},__importStar=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e},__importDefault=function(t){return t&&t.__esModule?t:{default:t}},t("__extends",__extends),t("__assign",__assign),t("__rest",__rest),t("__decorate",__decorate),t("__param",__param),t("__metadata",__metadata),t("__awaiter",__awaiter),t("__generator",__generator),t("__exportStar",__exportStar),t("__values",__values),t("__read",__read),t("__spread",__spread),t("__await",__await),t("__asyncGenerator",__asyncGenerator),t("__asyncDelegator",__asyncDelegator),t("__asyncValues",__asyncValues),t("__makeTemplateObject",__makeTemplateObject),t("__importStar",__importStar),t("__importDefault",__importDefault)}); var feather,feather,feather,feather,feather,feather,feather,feather,feather,feather,feather,feather,feather,feather,feather,feather;!function(e){!function(t){var n={}.toString;function r(e){return e&&"[object Function]"===n.call(e)}t.compose=function(t){return function(e){return 1===t.length?t[0](e):t.reduce(function(e,t){return t(e)},e)}},t.isFunction=r,t.isDef=function(e){return void 0!==e},t.isUndef=function(e){return!t.isDef(e)},t.strFactory=function(e){return r(e)?e():e}}(e.functions||(e.functions={}))}(feather||(feather={})),function(e){!function(f){var l=new WeakMap,p=new WeakMap,h=[0,0,[],[]];function w(e){return[].slice.call(e)}function A(e,t){for(var n=0,r=t.length,o=e.length;o--;)if(~t.indexOf(e[o]))n++;else if(n){if(e.splice(o+1,n),0==(r-=n)){n=0;break}n=0}n&&e.splice(0,n)}f.from=w,f.removeFromArray=A;var d=function(e,t,n){if(!0!==p.get(e))for(var r=0,o=l.get(e);r<o.length;r++){o[r][t].apply(e,n)}};f.notifyListeners=function(e){return d(e,"splice",h)},f.range=function(e,t){for(var n=new Array(t-e+1),r=0,o=n.length;r<o;r++)n[r]=r+e;return n},f.observeArray=function(r,e){var t,n,o,a,i,s,c,u=l.get(r);u?u.push(e):(l.set(r,[e]),r.pop=function(){return r.splice(r.length-1,1)[0]},r.push=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.splice.apply(r,[r.length,0].concat(e)),r.length},r.fill=function(){throw Error("observed arrays cannot be filled. items must be unique, use Array.splice instead!")},r.reverse=function(){var n=r.slice();return r.sort(function(e,t){return n.indexOf(t)-n.indexOf(e)}),r},r.shift=function(){return r.splice(0,1)[0]},r.unshift=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.splice.apply(r,[0,0].concat(e)),r.length},c=(s=r).splice,s.splice=function(e,t){var n=[].slice.call(arguments,2),r=c.apply(s,arguments);return d(s,"splice",[e,t,n,r]),r},i=(a=r).sort,a.sort=function(n){var t=f.range(0,a.length-1),e=n?[a.map(function(e,t){return t}).sort(function(e,t){return n(a[e],a[t])}).map(function(e){return t[e]})]:t,r=i.call(a,n);return d(a,"sort",e),r},o=(n=r)[t="forEach"],n[t]=function(){p.set(n,!0);var e=o.apply(n,arguments);return p.set(n,!1),d(n,"splice",h),e})};var j=function(n){setTimeout(function(){for(var e=0,t=n;e<t.length;e++){t[e].cleanUp()}},50)};f.defaultArrayListener=function(v,g,e,y,m){var b=e.node,T=b.firstElementChild,E=[];return{sort:function(e){for(var t=[],n=0;n<e.length;n++)E[e[n]]&&b.appendChild(g[n].element),t[n]=E[e[n]];E=t},splice:function(e,t,n,r){void 0===r&&(r=[]);var o=w(E),a=v.childWidgets,i=m();if(E.splice.apply(E,[e,t].concat(n.map(function(e){return!1}))),t&&(r.forEach(function(e){return b.removeChild(e.element)}),A(a,r),j(r)),n.length){a.push.apply(a,n);for(var s=0,c=n;s<c.length;s++){var u=c[s];if(u.parentWidget=v,!u.element){var f=u.getParsed(y.templateName);u.bindToElement(f.first)}}}o.splice.apply(o,[e,t].concat(n.map(function(e){return!0})));for(var l=0,p=g.length;l<p;l++)if(o[l]=i(g[l]),o[l]&&!E[l]){var h=E.indexOf(!0,l),d=~h?g[h].element:T;b.insertBefore(g[l].element,d)}else!o[l]&&E[l]&&b.removeChild(g[l].element);E=o}}}}(e.arrays||(e.arrays={}))}(feather||(feather={})),function(t){!function(s){var e=t.arrays.observeArray,a=t.functions.isUndef,i=t.functions.isFunction;function c(e,t){if(""===t)return e;var n,r,o;for(n=0,r=(o=t.split(".")).length;n<r;n++){if(e=e[o[n]],a(e))return;if(i(e))return e()}return e}s.isObject=function(e){return null!==e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)},s.values=function(t){return"values"in Object?Object.values(t):Array.apply(null,Object.keys(t).map(function(e){return t[e]}))},s.deepValue=c,s.setDeepValue=function(e,t,n){var r,o,a;for(r=0,o=(a=t.split(".")).length-1;r<o;r++)e=e[a[r]]||(e[a[r]]={});return e[a.pop()]=n},s.collectAnnotationsFromArray=function e(t,n){if(a(n))return[];var r=Object.getPrototypeOf(n),o=t.get(r)||[];return r&&o.push.apply(o,e(t,r)),o},s.merge=function(r,o){return void 0===r&&(r={}),Object.keys(o).forEach(function(e){var t=r[e],n=o[e];Array.isArray(t)?t.push.apply(t,n):s.isObject(t)?s.merge(t,n):r[e]=n}),r},s.collectAnnotationsFromTypeMap=function e(t,n){if(a(n))return{};var r=Object.getPrototypeOf(n),o=__assign({},t.get(r)||{});return r&&s.merge(o,e(t,r)),o},s.pathCallbacks=new WeakMap;var u=function(e,t,n,r){var o=n.split(".").pop(),a=e[o];Object.defineProperty(e,o,{get:function(){return a},set:function(e){return l(a=e,t,n,r),r(n),a}}),l(a,t,n,r)},f=function(e,t){var n=e.indexOf(".["),r=~n?e.substring(0,n):e;return t.filter(function(e){return r.startsWith(e)||e.startsWith(r)})};s.createObjectPropertyListener=function(n,e,t){var r,o=e.split(".").shift(),a=s.pathCallbacks.get(n)&&s.pathCallbacks.get(n)[e],i=s.ensure(s.pathCallbacks,n,((r={})[e]=[t],r));a||u(n,n,o,function(e){f(e,Object.keys(i)).forEach(function(t){i[t].forEach(function(e){e(c(n,t))})})})};var l=function(n,r,o,a){if(s.isObject(n)){var i=Object.keys(s.pathCallbacks.get(r));Object.keys(n).forEach(function(e){var t=o+"."+e;0<f(t,i).length&&u(n,r,t,a)})}else Array.isArray(n)&&(n.forEach(function(e,t){return l(e,r,o+".["+t+"]",a)}),e(n,{sort:function(){return a(o)},splice:function(e,t,n){a(o),n.forEach(function(e,t){return l(e,r,o+".["+t+"]",a)})}}))};s.ensure=function(e,t,n){var r=e.get(t);return r?Array.isArray(r)&&Array.isArray(n)?r.push.apply(r,n):s.isObject(r)&&s.merge(r,n):e.set(t,r=n),r}}(t.objects||(t.objects={}))}(feather||(feather={})),function(e){var t,n;t=e.dom||(e.dom={}),n=["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","matchesSelector"].reduce(function(e,t){return Element.prototype[t]||e}),t.selectorMatches=function(e,t){return n.call(e,t)},t.allChildNodes=function(e){for(var t,n=document.createTreeWalker(e,NodeFilter.SHOW_ALL,null,!1),r=[];((t=n.currentNode).nodeType!==Node.TEXT_NODE||t.textContent.trim())&&r.push(t),n.nextNode(););return r},t.allTextNodes=function(e){for(var t,n=[],r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1);t=r.nextNode();)n.push(t);return n}}(feather||(feather={})),function(e){var t,n;t=e.strings||(e.strings={}),n=e.objects.deepValue,t.format=function(e,t){return e.replace(/{{.*?}}/g,function(e){return n(t,e.substring(2,e.length-2))})},t.namedRegexMatch=function(e,t,r){var n=t.exec(e);if(n)return n.reduce(function(e,t,n){return 0<n&&(e[r[n-1]]=t),e},{})}}(feather||(feather={})),function(e){!function(i){var s=e.functions.isFunction,c=e.objects.collectAnnotationsFromTypeMap,o=e.objects.ensure,u=new WeakMap,a=new WeakMap;i.getPath=function(e,t){for(var n,r,o=[t],a=e;o.unshift((r=void 0,r=(n=a).id||n.name||n.title||n.constructor.name,s(r)?r():r)),a=a.parentWidget;);return o.join(".")};var f=function(e,t,n){return localStorage.setItem(i.getPath(e,t),JSON.stringify({value:n}))};i.maybeStore=function(t,n,e,r,o){e&&e.localStorage&&(o?(a.has(r)&&clearTimeout(a.get(r)),a.set(r,setTimeout(function(){var e=c(u,t)[n];r=r.map(t[e.write]),f(t,n,r)},80))):f(t,n,r))},i.loadLocalStorageValue=function(e,o){var a=c(e,o);a&&Object.keys(a).forEach(function(e){if(a[e].localStorage)try{var t=localStorage.getItem(i.getPath(o,e));if(t){var n=JSON.parse(t).value;if(Array.isArray(n)){var r=c(u,o)[e];o[e]=n.map(o[r.read])}else o[e]=n}}catch(e){console.warn(e)}})},i.Write=function(r){return function(e,t){var n;o(u,e,((n={})[r]={write:t},n))}},i.Read=function(r){return function(e,t){var n;o(u,e,((n={})[r]={read:t},n))}}}(e.observe||(e.observe={}))}(feather||(feather={})),function(feather){var boot;!function(boot){var isDef=feather.functions.isDef,from=feather.arrays.from,deepValue=feather.objects.deepValue,ComponentInfo=function(e,t,n,r){this.selector=e,this.singleton=t,this.attributes=n,this.component=r};boot.ComponentInfo=ComponentInfo;var attributeParser=function(node,context){return function(key){var value=node.getAttribute(key),m=(value||"").match(/^{(.+?)}\/?$/i);if(m){var js=m[1];value=deepValue(context,js)||function(str){return eval(str)}.bind(context)(js),isDef(value)&&node.removeAttribute(key)}return value}},WidgetFactory=function(){function c(){}return c.start=function(e,t){void 0===e&&(e=document),feather.annotations.TemplateFactory.warmUp();for(var n=c.widgetRegistry,r=0,o=n.length;r<o;r++){var a=n[r],i=from(e.querySelectorAll(a.selector));c.initComponents(i,n[r],t)}e===document&&feather.routing.runRoutes()},c.initComponents=function(e,t,n){for(var r=0,o=e.length;r<o;r++){var a=e[r],i=t.attributes.map(attributeParser(a,n||window)),s=new(Function.prototype.bind.apply(t.component,[null].concat(i)));t.singleton&&c.singletonRegistry.push(s),n&&(s.parentWidget=n).childWidgets.push(s),s.bindToElement(a)}},c.register=function(e,t){this.widgetRegistry.push(new ComponentInfo(e.selector,e.singleton,e.attributes||[],t))},c.widgetRegistry=[],c.singletonRegistry=[],c}();boot.WidgetFactory=WidgetFactory}(boot=feather.boot||(feather.boot={}))}(feather||(feather={})),function(e){e.start=function(){return e.boot.WidgetFactory.start()}}(feather||(feather={})),function(e){var t,n,o,a,i,r;t=e.media||(e.media={}),n=e.objects.collectAnnotationsFromArray,o=e.objects.ensure,a=new WeakMap,i=new WeakMap,r=function(){function e(){}return e.prototype.attachMediaListeners=function(){var r=this;n(a,this).forEach(function(t){var e=window.matchMedia(t.query),n=function(e){e.matches&&r[t.method].call(r,e)};e.addListener(n),o(i,r,[{mediaQuery:e,listener:n}]),n(e)})},e.prototype.cleanUp=function(){var e=i.get(this);if(e)for(var t=0,n=e;t<n.length;t++){var r=n[t];r.mediaQuery.removeListener(r.listener)}},e}(),t.MediaQueryAware=r,t.Media=function(n){return function(e,t){o(a,e,[]).push({method:t,query:n})}}}(feather||(feather={})),function(k){!function(y){var m,e,b=k.arrays.from,T=k.dom.allChildNodes,o=k.objects.collectAnnotationsFromTypeMap,a=k.objects.ensure,E=k.dom.selectorMatches,t=k.dom.allTextNodes,w=/{{(.*?)}}/,A=/{{(.*?)}}/g,i=new Map,s={};y.selfClosingTags=/(<([^<>\s]+)(\s+[^<>\s'"=]+(=[\w\d]+|="[^"]*"|='[^']*'|={{?[^}]*?}?})?)*)\s*\/>/gim,y.openTags="$1></$2>",(e=m=y.HookType||(y.HookType={}))[e.CLASS=0]="CLASS",e[e.PROPERTY=1]="PROPERTY",e[e.ATTRIBUTE=2]="ATTRIBUTE",e[e.TEXT=3]="TEXT";var l=function(e,t,n,r,o){var a=this;this.node=e,this.type=t,this.attribute=n,this.property=r,this.transformFns=o,this.hasMethods=function(){return 0<a.transformFns.length}};y.Hook=l;var j=function(e,t,n,r,o,a){this.nodePosition=e,this.type=t,this.curly=n,this.attribute=r,this.property=o,this.transformFns=a};y.HookInfo=j;var O=function(){function e(e,t,n,r){this.node=e,this.hookInfos=t,this.hookMap=n,this.preComponents=r;for(var o=0,a=t.length;o<a;o++){var i=t[o],s=this.hookMap[i.curly.toLowerCase()].split(/:/);i.property=s.shift(),i.transformFns=s}}return e.prototype.asParsedTemplate=function(){for(var e=this.node.cloneNode(!0),t=T(e),n=this.hookInfos.map(function(e){return new l(t[e.nodePosition],e.type,e.attribute,e.property,e.transformFns)}),r=this.preComponents,o=r.length,a=[],i=0;i<o;i++){for(var s=r[i],c=s.nodes.length,u=[],f=0;f<c;f++)u[f]=t[s.nodes[f]];a[i]={info:s.info,nodes:u}}return{doc:e,first:t[1],hooks:n,components:a}},e}();y.PreparsedTemplate=O;var R=function(e){return t(e).forEach(function(e){var t=e.textContent.split(/({{.*?}})/gm);if(1<t.length){var n=e.parentNode,r=document.createDocumentFragment();t.forEach(function(e){""!==e&&r.appendChild(document.createTextNode(e))}),n.replaceChild(r,e)}}),e},n=document.createRange();function c(e){for(var t,n=e.replace(y.selfClosingTags,y.openTags),r=R(y.getFragment(n)),o=T(r),a={};t=A.exec(e);)a[t[1].toLowerCase()]=t[1];for(var p,h,i=k.boot.WidgetFactory.widgetRegistry,s=[],c=0,u=i.length,f=o.length;c<u;c++){for(var l=[],d=i[c],v=0;v<f;v++){var g=o[v];g.nodeType===Node.ELEMENT_NODE&&E(g,i[c].selector)&&l.push(v)}0<l.length&&s.push({info:d,nodes:l})}return new O(r,(h=[],o.forEach(function(e,t){if(e.nodeType===Node.TEXT_NODE){var n=e.textContent,r=w.exec(n);null!==r&&h.push(new j(t,m.TEXT,r[1]))}else if(e.nodeType===Node.ELEMENT_NODE)for(var o=0,a=b(e.attributes);o<a.length;o++){var i=a[o],s=i.nodeName;if(p=s.match(w))e.removeAttribute(p[0]),h.push(new j(t,m.PROPERTY,p[1]));else if("class"===s)for(var c=0,u=b(e.classList);c<u.length;c++){var f=u[c];(p=f.match(w))&&(e.classList.remove(p[0]),h.push(new j(t,m.CLASS,p[1])))}else{var l=i.value;(p=l.match(w))&&(e.setAttribute(s,""),h.push(new j(t,m.ATTRIBUTE,p[1],s)))}}}),h),a,s)}y.getFragment=function(e){return n.createContextualFragment(e)},y.getPreparsedTemplate=c;var r=function(){function e(){}return e.getTemplate=function(e,t){var n=o(i,e)[t].call(e),r=s[n];return r||(r=c(n),s[n]=r),r.asParsedTemplate()},e.warmUp=function(){i.forEach(function(r,o){return Object.keys(r).forEach(function(e){var t=r[e];try{var n=t.call(o);s[n]=c(n)}catch(e){console.warn("Template method "+t+" in "+o.constructor.name+" is not a pure function.",e)}})})},e}();y.TemplateFactory=r,y.Template=function(r){return void 0===r&&(r="default"),function(e,t){var n;a(i,e,((n={})[r]=e[t],n))}}}(k.annotations||(k.annotations={}))}(feather||(feather={})),function(h){!function(c){var u,e,f=h.dom.selectorMatches,n=h.objects.collectAnnotationsFromArray,t=h.media.MediaQueryAware,a=h.objects.ensure,r=h.objects.merge,i=h.functions.isUndef;(e=u=c.Scope||(c.Scope={}))[e.Direct=0]="Direct",e[e.Delegate=1]="Delegate";var s=((o={})[u.Direct]=new WeakMap,o[u.Delegate]=new WeakMap,o),l=new WeakMap;c.addListener=function(e,t,n){e.addEventListener(t,n),a(l,e,[{event:t,fn:n}])};var o,p=function(o){function e(){var t=null!==o&&o.apply(this,arguments)||this;return t.handlers=function(e){return n(s[e],t).reduce(function(e,t){return r(e,((n={})[t.event]=[t],n));var n},{})},t}return __extends(e,o),e.prototype.attachEvents=function(){this.attachDelegates(this.handlers(u.Delegate)),this.attachDirect(this.handlers(u.Direct))},e.prototype.attachDirect=function(a){var i=this,s=this.element;Object.keys(a).forEach(function(e){for(var t=a[e],n=function(t){var n=t.selector?s.querySelector(t.selector):s;n?c.addListener(n,e,function(e){return t.preventDefault&&e.preventDefault(),t.bubble||e.stopImmediatePropagation(),i[t.method].call(i,e,n)}):console.warn(t.selector+" didn't match anything inside the template")},r=0,o=t;r<o.length;r++){n(o[r])}i.eventRegistered(i,e,t,u.Direct)})},e.prototype.attachDelegates=function(r){var o=this;Object.keys(r).forEach(function(e){var a,t,i,s,n=r[e];t=e,i=n,s=(a=o).element,c.addListener(s,t,function(e){var t=e.target;do{for(var n=0,r=i;n<r.length;n++){var o=r[n];t.nodeType===Node.ELEMENT_NODE&&(!o.selector&&t===s||f(t,o.selector))&&(o.preventDefault&&e.preventDefault(),o.bubble||e.stopImmediatePropagation(),a[o.method].call(a,e,t))}if(t===s)break}while(t=t.parentElement)}),o.eventRegistered(o,e,n,u.Delegate)})},e.prototype.eventRegistered=function(e,t,n,r){},e.prototype.cleanUp=function(){o.prototype.cleanUp.call(this);var e=l.get(this.element);if(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.element.removeEventListener(r.event,r.fn)}l.delete(this.element)}},e}(t);c.EventAware=p,c.On=function(o){return function(e,t){var n=i(o.scope)?u.Delegate:o.scope,r=a(s[n],e,[]);o.event.split(/\s+/).forEach(function(e){return r.push({event:e,method:t,preventDefault:o.preventDefault,bubble:o.bubble,scope:n,selector:o.selector})})}}}(h.event||(h.event={}))}(feather||(feather={})),function(n){!function(c){var e=n.event.EventAware,u=n.objects.ensure,i=n.objects.collectAnnotationsFromTypeMap,r=n.boot.WidgetFactory;c.subscribers=new WeakMap;var t=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.childWidgets=[],e}return __extends(e,t),e.prototype.triggerUp=function(e,t){this.trigger(e,t),this.parentWidget&&this.parentWidget.triggerUp(e,t)},e.prototype.triggerSingleton=function(t,n){r.singletonRegistry.forEach(function(e){return e.trigger(t,n)})},e.prototype.triggerDown=function(e,t){if(this.trigger(e,t),this.childWidgets)for(var n=0,r=this.childWidgets;n<r.length;n++){r[n].triggerDown(e,t)}},e.prototype.trigger=function(e,t){var n=i(c.subscribers,this)[e];if(n)for(var r=0,o=n;r<o.length;r++){var a=o[r];Object.getPrototypeOf(this)[a].call(this,t)}},e}(e);c.Subscribable=t,c.Subscribe=function(i,s){return function(e,t,n){if(!0===s){var r=n.value,o=[];n.value=function(e){var t=this;o.push(e),requestAnimationFrame(function(){r.call(t,o),o.splice(0,o.length)})}}var a;u(c.subscribers,e,((a={})[i]=[t],a))}}}(n.hub||(n.hub={}))}(feather||(feather={})),function(v){!function(c){var e=v.hub.Subscribable,a=v.strings.namedRegexMatch,u=v.objects.collectAnnotationsFromArray,r=v.objects.ensure,n=v.arrays.removeFromArray,f=new WeakMap,l=[],i=/[:*]\w+/gi,t=window.history&&window.history.pushState&&null===document.querySelector('[routing="hash"]'),s=[[/:\w+/gi,"([\\w\\d-]+)"],[/\*\w+/gi,"(.+)"]];c.namedMatch=function(e,t){var n=e.match(i);if(n&&n.length){n=n.map(function(e){return e.substr(1)});var r=s.reduce(function(e,t){return e.replace(t[0],t[1])},e),o=new RegExp("^"+r+"$","gi");return a(t,o,n)}if(new RegExp("^"+e+"$","gi").exec(t))return{}};var o=function(){var e=location.pathname;return t||("/"!==e?location.replace("/#"+e):e=location.hash?location.hash.replace(/^#/,""):"/"),e},p=function(e){for(var t=0,n=l;t<n.length;t++)for(var r=n[t],o=0,a=u(f,r);o<a.length;o++){var i=a[o],s=c.namedMatch(i.route,e);s&&r[i.handler].call(r,s)}};window.addEventListener(t?"popstate":"hashchange",function(){return p(o())},!1);var h=function(e){t?(history.pushState(null,"",e),p(o())):location.hash=e},d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.currentRoute=o,e.route=function(e){return h(e)},e}return __extends(e,t),e.prototype.initRoutes=function(){!~l.indexOf(this)&&f.has(Object.getPrototypeOf(this))&&l.push(this)},e.prototype.cleanUp=function(){t.prototype.cleanUp.call(this),n(l,[this])},e}(e);c.RouteAware=d,c.runRoutes=function(){window.blockRouting||p(o())},c.Route=function(n){return function(e,t){r(f,e,[{route:n,handler:t}])}}}(v.routing||(v.routing={}))}(feather||(feather={})),function(n){!function(O){var e=n.routing.RouteAware,d=n.annotations.HookType,R=n.arrays.observeArray,v=n.arrays.from,g=n.arrays.notifyListeners,k=n.functions.isFunction,C=n.functions.compose,F=n.functions.isDef,M=n.functions.isUndef,S=n.objects.isObject,W=n.objects.deepValue,y=n.objects.ensure,L=n.objects.collectAnnotationsFromTypeMap,u=n.objects.createObjectPropertyListener,P=n.objects.values,a=n.boot.WidgetFactory,m=n.annotations.getFragment,s=n.arrays.defaultArrayListener,b=new WeakMap,x=new WeakMap,D=new WeakMap,c=function(){return function(){return!0}},T=function(e,t,n,r){"value"===t?e.value=n?r:"":n?e.setAttribute(t,r):e.removeAttribute(t)};function N(o,a,i,e){var t,n,s=o[i];if(Array.isArray(s))R(s,{sort:function(){return e(s)},splice:function(){return e(s)}});else{var r=b.get(o),c=r&&r[i],u=y(b,o,((t={})[i]=[e],t));if(c||Object.defineProperty(o,i,{get:function(){return s},set:function(e){if(e!==s){O.maybeStore(o,i,a,e,!1);var t=s;s=e;for(var n=0,r=u[i];n<r.length;n++){(0,r[n])(e,t)}}return e}}),a&&a.affectsArrays.length){var f,l=a.affectsArrays.length,p=o,h=void 0;do{for(h=0;h<l;h++)f=p[a.affectsArrays[h]],F(f)&&y(b,o,((n={})[i]=[function(){return g(f)}],n))}while(F(p=p.parentWidget))}}}function f(e,t,n,r,o){if(t.type!==d.ATTRIBUTE&&t.type!==d.PROPERTY)throw Error('Bool value can only be bound to attributes ie. hidden="{{myBool}}. Consider using filters to convert them to strings (true|false|yes|no etc)"');var a=t.node,i=t.attribute||t.property,s=function(e){return"boolean"==typeof a[i]?a[i]=!!n(e):T(a,i,!!n(e),""),s};o(this,r,t.property,s(e))}function l(e,t,a,i,n){var s=t.node;if(t.type===d.TEXT){var c,u=[s],f=function(e){var t=a(e);if(c!==t){if(i.html){var n=m(t),r=u.slice(),o=r[0].parentNode;u=v(n.childNodes),o.replaceChild(n,r.shift()),r.forEach(function(e){return e.parentNode.removeChild(e)})}else s.textContent=a(e);c=t}return f};n(this,i,t.property,f(e))}else if(t.type===d.CLASS){var r,o=function(e){var t=a(e);return t!==r&&(F(r)&&s.classList.remove(r),F(t)&&s.classList.add(t),r=t),o};n(this,i,t.property,o(e))}else if(t.type===d.ATTRIBUTE||t.type===d.PROPERTY){var l,p=t.attribute||t.property,h=function(e){var t=a(e);return t!==l&&(T(s,p,F(t),t),l=t),h};n(this,i,t.property,h(e))}}function U(o,e,t,n){var a=this,r=function(e,t,n,r){return u(a,o,r)},i=o.split(".").shift(),s=(typeof n(t)).toLowerCase(),c=L(x,this)[i];"boolean"===s?f.call(this,t,e,n,c,r):/string|number|undefined/.test(s)?l.call(this,t,e,n,c,r):console.log("Deeply bound properties work only with strings, numbers or booleans. For arrays you can use a transformer: {{var:myTransformer}}?")}function _(e,t){var n=t.node,r=function(t){return Object.keys(t).forEach(function(e){n.style[e]=t[e]}),r};u(this,e,r(this[e]))}function I(e,t,n,r,o){var a=Array.isArray(t)?"array":(typeof t).toLowerCase(),i=e[n.property];"boolean"===a?f.call(e,i,n,o,r,N):/string|number|undefined/.test(a)?l.call(e,i,n,o,r,N):"array"===a||k(t)?(k(t)||(o=c),function(e,t,n,r){if(t.type===d.PROPERTY){var o=e.splice(0,e.length);R(e,s(this,e,t,n,r)),e.push.apply(e,o)}else console.log("Arrays can be bound only in a node: <div {{myarray}}></div>")}.call(e,i,n,r,o)):console.log("Bindings are only supported on arrays, booleans, strings and numbers")}function q(e,t,n,r){if(r=r.split(".").shift(),e){var o=L(x,e)[r];o&&o.bequeath?e.attachHooks.call(e,[n],t):q(e.parentWidget,t,n,r)}else console.log("@Bind() "+r+" annotation missing or 'bequeath' not set?",n,r,x)}var B=function(e,t){for(var n=a.singletonRegistry,r=0;r<n.length;r++){var o=n[r][t];if(o)return o.bind(e)}throw Error("Couldn't resolve transformer function "+t)};function H(n,e,t,r,o){var a,i=function(){var e=r(n[t.property].call(n));return a!==e&&(t.type===d.TEXT?t.node.textContent=e:t.type===d.CLASS?(a&&t.node.classList.remove(a),e&&t.node.classList.add(e)):t.type!==d.ATTRIBUTE&&t.type!==d.PROPERTY||(e?t.node.setAttribute(t.attribute,e):t.node.removeAttribute(t.attribute)),a=e),i};e.forEach(function(e){var t=o[e]||{property:e,affectsArrays:[]};N(n,t,e,i())})}var t=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.attachHooks=function(e,t){var n,r,o=this,a=t||this,i=L(x,this);if(i){var s=P(i);n=s.filter(function(e){return 0!==e.affectsArrays.length}),r=s.filter(function(e){return e.localStorage&&Array.isArray(o[e.property])})}M(t)&&O.loadLocalStorageValue(x,this);for(var c=0,u=e;c<u.length;c++){var f=u[c],l=f.property,p=C(f.transformFns.map(function(e){var t=a[e];return t?t.bind(o):B(o,e)})),h=this[l],d=S(h);if(k(h)){var v=L(D,this)[l];F(v)?H(this,v,f,p,i||{}):console.log("Binding to functions without @Computed() annotation is not supported. Use a property with a transformer {{x:myfunc}}.")}else if(~l.indexOf(".")||d&&f.hasMethods()){var g=W(this,l);M(g)?q(this.parentWidget,this,f,l):U.call(this,l,f,g,p)}else{if(d){if("style"===f.attribute){_.call(this,l,f);continue}if(!f.hasMethods()){console.log("Binding to objects is not supported. Use new widgets or specify inner property: x.y.z");continue}}var y=i[l];M(y)?q(this.parentWidget,this,f,l):I(this,p(h),f,y,p)}}if(n)for(var m=0,b=n;m<b.length;m++){var T=b[m];N(this,T,T.property,function(){return 0})}if(r)for(var E=function(e){var t=w[e.property],n=function(){return O.maybeStore(o,e.property,e,t,!0)};R(t,{sort:n,splice:n})},w=this,A=0,j=r;A<j.length;A++){E(j[A])}},t.prototype.cleanUp=function(){e.prototype.cleanUp.call(this),b.delete(this),D.delete(this)},t}(e);O.Observable=t,O.Bind=function(o){return function(e,t){var n,r=__assign({},{templateName:"default",localStorage:!1,affectsArrays:[],property:t,html:!1},o||{});y(x,e,((n={})[t]=r,n))}},O.Computed=function(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return function(e,t){var n;y(D,e,((n={})[t]=r,n))}}}(n.observe||(n.observe={}))}(feather||(feather={})),function(e){var t,n;t=e.annotations||(e.annotations={}),n=e.boot.WidgetFactory,t.Construct=function(t){return function(e){return n.register(t,e)}}}(feather||(feather={})),function(e){var p,a,i,h,s;p=e.xhr||(e.xhr={}),a=e.strings.format,i=e.objects.deepValue,h=e.objects.merge,s=e.functions.strFactory,p.Method={GET:"GET",POST:"POST",DELETE:"DELETE",PUT:"PUT"},p.defaultRestConfig={url:null,method:p.Method.GET,timeout:5e3,async:!0,withCredentials:!0,responseFilter:function(e){return e?JSON.parse(e):null},requestFilter:function(e){return e?JSON.stringify(e):null},headers:{Accept:"application/json","Content-Type":"application/json;charset=utf-8"}},p.sendRequest=function(u,f,l){return new Promise(function(n,r){var o=new XMLHttpRequest;if(u=h(__assign({},p.defaultRestConfig),u),o.open(u.method,u.url,u.async),o.timeout=u.timeout,o.setRequestHeader)for(var e=0,t=Object.keys(u.headers);e<t.length;e++){var a=t[e];o.setRequestHeader(a,u.headers[a])}o.addEventListener("readystatechange",function(){if(4===o.readyState){var e=~~(o.status/100),t=u.responseFilter(o.responseText);2===e||3===e?(f(t),n(t)):(l(t,o),r(t))}});for(var i=0,s=["timeout","error","abort"];i<s.length;i++){var c=s[i];o.addEventListener(c,function(e){l(e),r(e)})}return u.progress&&o.addEventListener("progress",u.progress,!1),o.send(u.requestFilter(u.body)),o})},p.Rest=function(o){return function(e,t,n){var r=n.value;n.value=function(){var r=this,e=__assign({},o,{progress:function(e){return r.triggerDown("xhr-progress",e)},body:o.body&&i(this,o.body),headers:o.headers&&Object.keys(o.headers).reduce(function(e,t){return __assign({},e,((n={})[t]=s(o.headers[t]),n));var n},{})||{},url:a(o.url,this)});return p.sendRequest(e,n.value.original.bind(this),function(e,t){if(t&&t.status)r.triggerDown("xhr-failure-"+t.status,e);else if(e){var n=e.type;r.triggerDown("xhr-failure-"+n)}})},n.value.original=r}}}(feather||(feather={})),function(c){!function(e){var o,t,i=c.annotations.TemplateFactory,n=c.observe.Observable,s=c.boot.WidgetFactory,a=c.arrays.removeFromArray;(t=o=e.RenderPlacement||(e.RenderPlacement={}))[t.append=0]="append",t[t.prepend=1]="prepend",t[t.replace=2]="replace";var r=function(r){function e(){return null!==r&&r.apply(this,arguments)||this}return __extends(e,r),e.prototype.bindToElement=function(e){this.element=e,this.init(e),this.attachEvents(),this.initRoutes(),this.attachMediaListeners()},e.prototype.render=function(e,t){void 0===e&&(e="default"),void 0===t&&(t=o.append);var n=this.getParsed(e);t===o.replace&&(this.element.innerHTML=""),t===o.prepend?this.element.insertBefore(n.doc,this.element.firstChild):this.element.appendChild(n.doc)},e.prototype.getParsed=function(e){for(var t=i.getTemplate(this,e),n=t.components,r=0,o=n.length;r<o;r++){var a=n[r];s.initComponents(a.nodes,a.info,this)}return this.attachHooks(t.hooks),t},e.prototype.init=function(e){},e.prototype.cleanUp=function(){var n=this;setTimeout(function(){r.prototype.cleanUp.call(n);for(var e=0,t=n.childWidgets;e<t.length;e++){t[e].cleanUp()}a(s.singletonRegistry,[n])},10)},e}(n);e.Widget=r}(c.core||(c.core={}))}(feather||(feather={}));