@sitecore-jss/sitecore-jss-angular 15.0.1 → 15.0.3
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/LICENSE.txt +202 -202
- package/README.md +5 -5
- package/dist/README.md +5 -5
- package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.js +1 -1
- package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.js.map +1 -1
- package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.min.js +1 -1
- package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.min.js.map +1 -1
- package/dist/esm2015/components/date.directive.js +1 -1
- package/dist/esm2015/components/file.directive.js +1 -1
- package/dist/esm2015/components/generic-link.directive.js +1 -1
- package/dist/esm2015/components/image.directive.js +1 -1
- package/dist/esm2015/components/link.directive.js +1 -1
- package/dist/esm2015/components/missing-component.component.js +1 -1
- package/dist/esm2015/components/placeholder-loading.directive.js +1 -1
- package/dist/esm2015/components/placeholder.component.js +1 -1
- package/dist/esm2015/components/placeholder.token.js +1 -1
- package/dist/esm2015/components/raw.component.js +1 -1
- package/dist/esm2015/components/render-component.component.js +1 -1
- package/dist/esm2015/components/render-each.directive.js +1 -1
- package/dist/esm2015/components/render-empty.directive.js +1 -1
- package/dist/esm2015/components/rendering-field.js +1 -1
- package/dist/esm2015/components/rendering.js +1 -1
- package/dist/esm2015/components/rich-text.directive.js +1 -1
- package/dist/esm2015/components/router-link.directive.js +2 -2
- package/dist/esm2015/components/text.directive.js +1 -1
- package/dist/esm2015/jss-component-factory.service.js +1 -1
- package/dist/esm2015/layout-service-error.js +1 -1
- package/dist/esm2015/layout.service.js +1 -1
- package/dist/esm2015/lib.module.js +1 -1
- package/dist/esm2015/public_api.js +1 -1
- package/dist/esm2015/sitecore-jss-sitecore-jss-angular.js +1 -1
- package/dist/fesm2015/sitecore-jss-sitecore-jss-angular.js +1 -1
- package/dist/fesm2015/sitecore-jss-sitecore-jss-angular.js.map +1 -1
- package/dist/package.json +2 -2
- package/package.json +3 -3
- package/typings/README.md +2 -2
- package/__ivy_ngcc__/dist/esm2015/components/date.directive.js +0 -74
- package/__ivy_ngcc__/dist/esm2015/components/file.directive.js +0 -50
- package/__ivy_ngcc__/dist/esm2015/components/generic-link.directive.js +0 -77
- package/__ivy_ngcc__/dist/esm2015/components/image.directive.js +0 -145
- package/__ivy_ngcc__/dist/esm2015/components/link.directive.js +0 -114
- package/__ivy_ngcc__/dist/esm2015/components/missing-component.component.js +0 -35
- package/__ivy_ngcc__/dist/esm2015/components/placeholder-loading.directive.js +0 -19
- package/__ivy_ngcc__/dist/esm2015/components/placeholder.component.js +0 -252
- package/__ivy_ngcc__/dist/esm2015/components/placeholder.token.js +0 -15
- package/__ivy_ngcc__/dist/esm2015/components/raw.component.js +0 -42
- package/__ivy_ngcc__/dist/esm2015/components/render-component.component.js +0 -116
- package/__ivy_ngcc__/dist/esm2015/components/render-each.directive.js +0 -20
- package/__ivy_ngcc__/dist/esm2015/components/render-empty.directive.js +0 -20
- package/__ivy_ngcc__/dist/esm2015/components/rendering.js +0 -4
- package/__ivy_ngcc__/dist/esm2015/components/rich-text.directive.js +0 -52
- package/__ivy_ngcc__/dist/esm2015/components/router-link.directive.js +0 -60
- package/__ivy_ngcc__/dist/esm2015/components/text.directive.js +0 -69
- package/__ivy_ngcc__/dist/esm2015/jss-component-factory.service.js +0 -103
- package/__ivy_ngcc__/dist/esm2015/layout-service-error.js +0 -3
- package/__ivy_ngcc__/dist/esm2015/layout.service.js +0 -33
- package/__ivy_ngcc__/dist/esm2015/lib.module.js +0 -146
- package/__ivy_ngcc__/dist/esm2015/public_api.js +0 -16
- package/__ivy_ngcc__/dist/esm2015/sitecore-jss-sitecore-jss-angular.js +0 -13
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
See the Apache Version 2.0 License for specific language governing permissions
|
|
14
14
|
and limitations under the License.
|
|
15
15
|
***************************************************************************** */
|
|
16
|
-
var p=function(e,t){return(p=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 c(e,t){function n(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function l(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function u(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(l(arguments[t]));return e}var d=function(){function e(e,t,n,r){this.viewContainer=e,this.templateRef=t,this.renderer=n,this.elementRef=r,this.inlineRef=null,this.editable=!0,this.urlParams={},this.attrs={}}return e.prototype.ngOnChanges=function(e){(e.field||e.editable||e.urlParams||e.attrs)&&(this.viewContainer.clear(),this.inlineRef&&(this.inlineRef.remove(),this.inlineRef=null),this.updateView())},e.prototype.updateView=function(){var e=Object.assign(Object.assign({},this.getElementAttrs()),this.attrs),t=this.field;if(t&&(t.editable||t.value||t.src)){var r={};if(this.editable&&t.editable){var i=n.mediaApi.findEditorImageTag(t.editable);if(!i)return this.renderInlineWrapper(t.editable);if(!(r=this.getImageAttrs(i.attrs,e,this.urlParams)))return this.renderInlineWrapper(t.editable);var o=this.renderer.createElement("img");Object.entries(r).forEach((function(e){var t=l(e,2),n=t[0],r=t[1];return o.setAttribute(n,r)}));var a=t.editable.replace(i.imgTag,o.outerHTML);return this.renderInlineWrapper(a)}var s=t.src?t:t.value;if(!s)return null;(r=this.getImageAttrs(s,e,this.urlParams))&&this.renderTemplate(r)}},e.prototype.getImageAttrs=function(e,t,r){var i=Object.assign(Object.assign({},e),t),o=i.src,a=i.srcSet,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(i,["src","srcSet"]);if(!o)return null;var p=Object.assign({},s);return o=n.mediaApi.updateImageUrl(o,r,this.mediaUrlPrefix),a?p.srcSet=n.mediaApi.getSrcSet(o,a,r,this.mediaUrlPrefix):p.src=o,p},e.prototype.renderTemplate=function(e){var t=this;this.viewContainer.createEmbeddedView(this.templateRef).rootNodes.forEach((function(n){Object.entries(e).forEach((function(e){var r=l(e,2),i=r[0],o=r[1];return t.renderer.setAttribute(n,i,o)}))}))},e.prototype.getElementAttrs=function(){var e=this.templateRef.createEmbeddedView(null).rootNodes[0];if(!e)return{};for(var t={},n=0;n<e.attributes.length;n++){var r=e.attributes.item(n);r&&(t[r.name]=r.value)}return t},e.prototype.renderInlineWrapper=function(e){var t=this.renderer.createElement("span");t.className="sc-image-wrapper",t.innerHTML=e;var n=this.renderer.parentNode(this.elementRef.nativeElement);this.renderer.insertBefore(n,t,this.elementRef.nativeElement),n.removeChild(this.elementRef.nativeElement),this.inlineRef=t},e}();d.decorators=[{type:t.Directive,args:[{selector:"[scImage]"}]}],d.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.Renderer2},{type:t.ElementRef}]},d.propDecorators={field:[{type:t.Input,args:["scImage"]}],editable:[{type:t.Input,args:["scImageEditable"]}],mediaUrlPrefix:[{type:t.Input,args:["scImageMediaUrlPrefix"]}],urlParams:[{type:t.Input,args:["scImageUrlParams"]}],attrs:[{type:t.Input,args:["scImageAttrs"]}]};var f=function(){function e(e,t,n,r){this.viewContainer=e,this.templateRef=t,this.renderer=n,this.elementRef=r,this.inlineRef=null,this.editable=!0,this.attrs={}}return e.prototype.ngOnChanges=function(e){(e.field||e.editable||e.attrs)&&(this.viewContainer.clear(),this.inlineRef&&(this.inlineRef.remove(),this.inlineRef=null),this.updateView())},e.prototype.updateView=function(){var e=this.field;if(this.editable&&e&&e.editableFirstPart&&e.editableLastPart)this.renderInlineWrapper(e.editableFirstPart,e.editableLastPart);else if(e&&(e.href||e.value)){var t=e.href?e:e.value,n=e.text||e.value.text||e.href||e.value.href,r=Object.assign(Object.assign({},t),this.attrs);this.renderTemplate(r,n)}},e.prototype.renderTemplate=function(e,t){var n=this;this.viewContainer.createEmbeddedView(this.templateRef).rootNodes.forEach((function(r){Object.entries(e).forEach((function(e){var t=l(e,2),i=t[0],o=t[1];if("href"===i&&(!o||/^https?:\/\/$/.test(o))){if(!r.href)return;o=r.href}"class"===i&&r.className&&(o+=" "+r.className),n.renderer.setAttribute(r,i,o)})),r.childNodes&&0===r.childNodes.length&&t&&(r.textContent=t)}))},e.prototype.renderInlineWrapper=function(e,t){var n=this,r=this.renderer.createElement("span");r.className="sc-link-wrapper",r.innerHTML=e+t;var i=Object.assign(Object.assign({},this.getElementAttrs()),this.attrs);Object.entries(i).forEach((function(e){var t=l(e,2),i=t[0],o=t[1];return n.renderer.setAttribute(r,i,o)})),this.viewContainer.createEmbeddedView(this.templateRef);var o=this.renderer.parentNode(this.elementRef.nativeElement);this.renderer.insertBefore(o,r,this.elementRef.nativeElement),this.inlineRef=r},e.prototype.getElementAttrs=function(){var e=this.templateRef.createEmbeddedView(null).rootNodes[0];if(!e)return{};for(var t={},n=0;n<e.attributes.length;n++){var r=e.attributes.item(n);r&&(t[r.name]=r.value)}return t},e}();f.decorators=[{type:t.Directive,args:[{selector:"[scLink]"}]}],f.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.Renderer2},{type:t.ElementRef}]},f.propDecorators={editable:[{type:t.Input,args:["scLinkEditable"]}],attrs:[{type:t.Input,args:["scLinkAttrs"]}],field:[{type:t.Input,args:["scLink"]}]};var m=function(e){function t(t,n,r,i,o){var a=e.call(this,t,n,r,i)||this;return a.router=o,a.editable=!0,a.attrs={},a}return c(t,e),t.prototype.renderTemplate=function(e,t){var n=this;this.viewContainer.createEmbeddedView(this.templateRef).rootNodes.forEach((function(r){Object.entries(e).forEach((function(e){var t=l(e,2),i=t[0],o=t[1];n.renderer.setAttribute(r,i,o),"href"===i&&n.renderer.listen(r,"click",(function(e){n.router.navigate([o]),e.preventDefault()}))})),r.childNodes&&0===r.childNodes.length&&t&&(r.textContent=t)}))},t}(f);m.decorators=[{type:t.Directive,args:[{selector:"[scRouterLink]"}]}],m.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.Renderer2},{type:t.ElementRef},{type:r.Router}]},m.propDecorators={editable:[{type:t.Input,args:["scRouterLinkEditable"]}],attrs:[{type:t.Input,args:["scRouterLinkAttrs"]}],field:[{type:t.Input,args:["scRouterLink"]}]};var h=function(e){function t(t,n,r,i,o){var a=e.call(this,t,n,r,i)||this;return a.router=o,a.editable=!0,a.attrs={},a}return c(t,e),t.prototype.renderTemplate=function(e,t){var n=this;this.viewContainer.createEmbeddedView(this.templateRef).rootNodes.forEach((function(r){Object.entries(e).forEach((function(e){var t=l(e,2),i=t[0],o=t[1];if("href"!==i||n.isAbsoluteUrl(o))n.renderer.setAttribute(r,i,o);else{var a=n.router.createUrlTree([o],n.extras);n.renderer.setAttribute(r,i,n.router.serializeUrl(a)),n.renderer.listen(r,"click",(function(e){n.router.navigate([o],n.extras),e.preventDefault()}))}})),r.childNodes&&0===r.childNodes.length&&t&&(r.textContent=t)}))},t.prototype.isAbsoluteUrl=function(e){if(null==e)return!1;if("string"!=typeof e)throw new TypeError("Expected a string");return/^[a-z][a-z0-9+.-]*:/.test(e)},t}(f);h.decorators=[{type:t.Directive,args:[{selector:"[scGenericLink]"}]}],h.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.Renderer2},{type:t.ElementRef},{type:r.Router}]},h.propDecorators={editable:[{type:t.Input,args:["scGenericLinkEditable"]}],attrs:[{type:t.Input,args:["scGenericLinkAttrs"]}],field:[{type:t.Input,args:["scGenericLink"]}],extras:[{type:t.Input,args:["scGenericLinkExtras"]}]};var y=function(){};var v=new t.InjectionToken("Sc.placeholder.components"),g=new t.InjectionToken("Sc.placeholder.lazyComponents"),b=new t.InjectionToken("Sc.placeholder.missingComponentComponent"),C=new t.InjectionToken("Sc.placeholder.dynamicComponent"),R=function(){function e(e,t){this.renderer=e,this.elementRef=t}return e.prototype.ngOnInit=function(){var e=this.renderer.createElement(this.rendering.name),t=this.renderer.createText(this.rendering.contents||""),n=this.rendering.attributes;for(var r in n)if(n.hasOwnProperty(r)){var i=n[r];this.renderer.setAttribute(e,r,i||"")}this.renderer.appendChild(e,t);var o=this.renderer.parentNode(this.elementRef.nativeElement);this.renderer.insertBefore(o,e,this.elementRef.nativeElement),o.removeChild(this.elementRef.nativeElement)},e}();function w(e){return!e.componentName&&void 0!==e.name}R.decorators=[{type:t.Component,args:[{selector:"sc-raw",template:""}]}],R.ctorParameters=function(){return[{type:t.Renderer2},{type:t.ElementRef}]},R.propDecorators={rendering:[{type:t.Input}]};var E=function(){function e(e,t,n,r){var i=this;this.injector=e,this.compiler=t,this.components=n,this.lazyComponents=r,this.componentMap=new Map,this.lazyComponentMap=new Map,this.components.forEach((function(e){return i.componentMap.set(e.name,e.type)})),this.lazyComponents&&this.lazyComponents.forEach((function(e){return i.lazyComponentMap.set(e.path,e)}))}return e.prototype.loadModuleFactory=function(e){var n=this;return e.loadChildren().then((function(e){return e instanceof t.NgModuleFactory?e:n.compiler.compileModuleAsync(e)}))},e.prototype.getComponent=function(e){var t=this;if(this.componentMap.get(e.componentName))return Promise.resolve({componentDefinition:e,componentImplementation:this.componentMap.get(e.componentName)});var n=this.lazyComponentMap.get(e.componentName);return n?this.loadModuleFactory(n).then((function(r){var i=null,o=r.create(t.injector),a=o.injector.get(C);if(!a)throw new Error('JssComponentFactoryService: Lazy load module for component "'+n.path+'" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?');if(e.componentName in a)i=a[e.componentName];else{if("function"!=typeof a)throw new Error('JssComponentFactoryService: Lazy load module for component "'+n.path+'" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?');i=a}return{componentDefinition:e,componentImplementation:i,componentFactory:o.componentFactoryResolver.resolveComponentFactory(i)}})):Promise.resolve({componentDefinition:e})},e.prototype.getComponents=function(e){var t=this;return Promise.all(e.map((function(e){return w(e)?t.getRawComponent(e):t.getComponent(e)})))},e.prototype.getRawComponent=function(e){return Promise.resolve({componentImplementation:R,componentDefinition:e})},e}();E.decorators=[{type:t.Injectable}],E.ctorParameters=function(){return[{type:t.Injector},{type:t.Compiler},{type:Array,decorators:[{type:t.Inject,args:[v]}]},{type:Array,decorators:[{type:t.Inject,args:[g]}]}]};var I=function(e){this.templateRef=e};I.decorators=[{type:t.Directive,args:[{selector:"[scPlaceholderLoading]"}]}],I.ctorParameters=function(){return[{type:t.TemplateRef}]};var O=function(e){this.templateRef=e};O.decorators=[{type:t.Directive,args:[{selector:"[renderEach]"}]}],O.ctorParameters=function(){return[{type:t.TemplateRef}]};var j=function(e){this.templateRef=e};j.decorators=[{type:t.Directive,args:[{selector:"[renderEmpty]"}]}],j.ctorParameters=function(){return[{type:t.TemplateRef}]};var P=function(){function e(e,n,r,i,o,a,s){this.componentFactoryResolver=e,this.differs=n,this.componentFactory=r,this.changeDetectorRef=i,this.elementRef=o,this.renderer=a,this.missingComponentComponent=s,this._componentInstances=[],this.destroyed=!1,this.parentStyleAttribute="",this.isLoading=!0,this.loaded=new t.EventEmitter}return Object.defineProperty(e.prototype,"inputs",{set:function(e){this._inputs=e,!this._differ&&e&&(this._differ=this.differs.find(e).create())},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this.elementRef.nativeElement;if(e)for(var t=e.attributes,n=0;n<t.length;n++){var r=t.item(n);r&&-1!==r.name.indexOf("_ngcontent")&&(this.parentStyleAttribute=r.name)}},e.prototype.ngOnDestroy=function(){this.destroyed=!0,this._componentInstances=[]},e.prototype.ngOnChanges=function(e){(e.rendering||e.renderings)&&this._render()},e.prototype.ngDoCheck=function(){var e=this;if(this._differ&&this._inputs&&0!==this._componentInstances.length){var t=this._differ.diff(this._inputs);if(t){var n={};t.forEachRemovedItem((function(e){return n[e.key]=null})),t.forEachAddedItem((function(e){return n[e.key]=e.currentValue})),t.forEachChangedItem((function(e){return n[e.key]=e.currentValue})),this._componentInstances.forEach((function(t){return e._setComponentInputs(t,n)}))}}},e.prototype._setComponentInputs=function(e,t){Object.entries(t).forEach((function(t){var n=l(t,2),r=n[0],i=n[1];return e[r]=i}))},e.prototype._subscribeComponentOutputs=function(e,t){var n=this;Object.keys(t).filter((function(t){return e[t]&&e[t]instanceof i.Observable})).forEach((function(r){return e[r].pipe(o.takeWhile((function(){return!n.destroyed}))).subscribe(t[r])}))},e.prototype._render=function(){var e=this;if(this._componentInstances=[],this.view.clear(),this.rendering||this.renderings){if(!this.name&&!this.renderings)return console.warn("Placeholder name was not specified, and explicit renderings array was not passed. Placeholder requires either name and rendering, or renderings."),void(this.isLoading=!1);var t,n,r=this.renderings||(t=this.rendering,n=this.name||"",t&&t.placeholders&&Object.keys(t.placeholders).length>0?t.placeholders[n]:null);if(!r)return console.warn("Placeholder '"+this.name+"' was not found in the current rendering data",JSON.stringify(this.rendering,null,2)),void(this.isLoading=!1);var i=r.every((function(e){return w(e)}));this.renderEmptyTemplate&&i?(this.view.createEmbeddedView(this.renderEmptyTemplate.templateRef,{renderings:r}),this.isLoading=!1):this.componentFactory.getComponents(r).then((function(t){return t.forEach((function(t,n){e.renderEachTemplate&&!w(t.componentDefinition)?e._renderTemplatedComponent(t.componentDefinition,n):e._renderEmbeddedComponent(t,n),e.isLoading=!1}))})).then((function(){e.changeDetectorRef.markForCheck(),e.loaded.emit(e.name)}))}},e.prototype._renderTemplatedComponent=function(e,t){this.view.createEmbeddedView(this.renderEachTemplate.templateRef,{rendering:e,index:t})},e.prototype._renderEmbeddedComponent=function(e,t){if(!e.componentImplementation){var n=e.componentDefinition.componentName;console.error("Placeholder "+this.name+" contains unknown component "+n+".","Ensure component is mapped, like:\n JssModule.withComponents([\n { name: '"+n+"', type: "+n+"Component }\n ])"),e.componentImplementation=this.missingComponentComponent}var r=e.componentFactory||this.componentFactoryResolver.resolveComponentFactory(e.componentImplementation),i=this.view.createComponent(r,t);this.parentStyleAttribute&&this.renderer.setAttribute(i.location.nativeElement,this.parentStyleAttribute,"");var o=i.instance;o.rendering=e.componentDefinition,this._inputs&&this._setComponentInputs(o,this._inputs),this.outputs&&this._subscribeComponentOutputs(o,this.outputs),this._componentInstances.push(o)},e}();P.decorators=[{type:t.Component,args:[{selector:"sc-placeholder,[sc-placeholder]",template:'\n <ng-template *ngIf="isLoading" [ngTemplateOutlet]="placeholderLoading?.templateRef"></ng-template>\n <ng-template #view></ng-template>\n '}]}],P.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:t.KeyValueDiffers},{type:E},{type:t.ChangeDetectorRef},{type:t.ElementRef},{type:t.Renderer2},{type:t.Type,decorators:[{type:t.Inject,args:[b]}]}]},P.propDecorators={name:[{type:t.Input}],rendering:[{type:t.Input}],renderings:[{type:t.Input}],outputs:[{type:t.Input}],loaded:[{type:t.Output}],view:[{type:t.ViewChild,args:["view",{read:t.ViewContainerRef,static:!0}]}],renderEachTemplate:[{type:t.ContentChild,args:[O,{static:!0}]}],renderEmptyTemplate:[{type:t.ContentChild,args:[j,{static:!0}]}],placeholderLoading:[{type:t.ContentChild,args:[I,{static:!0}]}],inputs:[{type:t.Input}]};var T=function(){function e(e,t){this.viewContainer=e,this.templateRef=t,this.editable=!0}return e.prototype.ngOnChanges=function(e){(e.field||e.editable)&&(this.viewRef||(this.viewContainer.clear(),this.viewRef=this.viewContainer.createEmbeddedView(this.templateRef)),this.updateView())},e.prototype.updateView=function(){var e=this.field;if(e&&(e.editable||e.value)){var t=e.editable&&this.editable?e.editable:e.value;this.viewRef.rootNodes.forEach((function(e){e.innerHTML=t}))}},e}();T.decorators=[{type:t.Directive,args:[{selector:"[scRichText]"}]}],T.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef}]},T.propDecorators={editable:[{type:t.Input,args:["scRichTextEditable"]}],field:[{type:t.Input,args:["scRichText"]}]};var D=function(){function e(e,t){this.viewContainer=e,this.templateRef=t,this.editable=!0,this.encode=!0}return e.prototype.ngOnChanges=function(e){(e.field||e.editable||e.encode)&&(this.viewRef||(this.viewContainer.clear(),this.viewRef=this.viewContainer.createEmbeddedView(this.templateRef)),this.updateView())},e.prototype.updateView=function(){var e=this.field,t=this.editable;if(e&&(e.editable||e.value)){this.encode||(t=!1);var n=e.editable&&t?e.editable:e.value,r=e.editable&&t||!this.encode;this.viewRef.rootNodes.forEach((function(e){r?e.innerHTML=n:e.textContent=n}))}},e}();D.decorators=[{type:t.Directive,args:[{selector:"[scText]"}]}],D.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef}]},D.propDecorators={editable:[{type:t.Input,args:["scTextEditable"]}],encode:[{type:t.Input,args:["scTextEncode"]}],field:[{type:t.Input,args:["scText"]}]};var _=function(){},N=n.dataApi.fetchRouteData,x=n.dataApi.fetchPlaceholderData,A=function(){function e(){}return e.getLayoutServiceError=function(e){var t=new _,n=e.response;return n&&(t.status=n.status,t.statusText=n.statusText,t.data=n.data),i.throwError(t)},e.prototype.getRouteData=function(t,n){return i.from(N(t,n)).pipe(o.catchError(e.getLayoutServiceError))},e.prototype.getPlaceholderData=function(t,n,r){return i.from(x(n,t,r)).pipe(o.catchError(e.getLayoutServiceError))},e}();A.decorators=[{type:t.Injectable}];var V=function(){function e(e,t,n){this.viewContainer=e,this.templateRef=t,this.datePipe=n,this.editable=!0}return e.prototype.ngOnChanges=function(e){(e.field||e.format)&&(this.viewRef||(this.viewContainer.clear(),this.viewRef=this.viewContainer.createEmbeddedView(this.templateRef)),this.updateView())},e.prototype.updateView=function(){var e=this,t=this.field;if(t&&(t.editable||t.value)){var n=t.editable&&this.editable?t.editable:t.value,r=t.editable&&this.editable;this.viewRef.rootNodes.forEach((function(t){r?t.innerHTML=n:t.textContent=e.datePipe.transform(n,e.format,e.timezone,e.locale)}))}},e}();V.decorators=[{type:t.Directive,args:[{selector:"[scDate]"}]}],V.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:a.DatePipe}]},V.propDecorators={format:[{type:t.Input,args:["scDateFormat"]}],timezone:[{type:t.Input,args:["scDateTimezone"]}],locale:[{type:t.Input,args:["scDateLocale"]}],editable:[{type:t.Input,args:["scDateEditable"]}],field:[{type:t.Input,args:["scDate"]}]};var L=function(){};L.decorators=[{type:t.Component,args:[{selector:"sc-missing-component",template:'\n<div style="background: darkorange; outline: 5px solid orange; padding: 10px; color: white; max-width: 500px;">\n <h2>{{ rendering.componentName }}</h2>\n <p>JSS component is missing Angular component implementation.</p>\n</div>'}]}],L.propDecorators={rendering:[{type:t.Input}]};var M=function(){function e(e,t,n,r){this.componentFactoryResolver=e,this.differs=t,this.componentFactory=n,this.missingComponentComponent=r,this.destroyed=!1}return Object.defineProperty(e.prototype,"inputs",{set:function(e){this._inputs=e,!this._differ&&e&&(this._differ=this.differs.find(e).create())},enumerable:!1,configurable:!0}),e.prototype.ngOnChanges=function(e){e.rendering&&this._render()},e.prototype._setComponentInputs=function(e,t){Object.entries(t).forEach((function(t){var n=l(t,2),r=n[0],i=n[1];return e[r]=i}))},e.prototype._subscribeComponentOutputs=function(e,t){var n=this;Object.keys(t).filter((function(t){return e[t]&&e[t]instanceof i.Observable})).forEach((function(r){return e[r].pipe(o.takeWhile((function(){return!n.destroyed}))).subscribe(t[r])}))},e.prototype._render=function(){var e=this;(this.view.clear(),this.rendering)&&(w(this.rendering)?Promise.resolve({componentImplementation:R,componentDefinition:this.rendering}):this.componentFactory.getComponent(this.rendering)).then((function(t){if(!t.componentImplementation){var n=t.componentDefinition.componentName;console.error("Attempted to render unknown component "+n+".","Ensure component is mapped, like:\n JssModule.withComponents([\n { name: '"+n+"', type: "+n+"Component }\n ])"),t.componentImplementation=e.missingComponentComponent}var r=t.componentFactory||e.componentFactoryResolver.resolveComponentFactory(t.componentImplementation),i=e.view.createComponent(r,0).instance;i.rendering=t.componentDefinition,e._inputs&&e._setComponentInputs(i,e._inputs),e.outputs&&e._subscribeComponentOutputs(i,e.outputs)}))},e}();M.decorators=[{type:t.Component,args:[{selector:"sc-render-component",template:"\n <ng-template #view></ng-template>\n "}]}],M.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:t.KeyValueDiffers},{type:E},{type:t.Type,decorators:[{type:t.Inject,args:[b]}]}]},M.propDecorators={rendering:[{type:t.Input}],outputs:[{type:t.Input}],view:[{type:t.ViewChild,args:["view",{read:t.ViewContainerRef,static:!0}]}],inputs:[{type:t.Input}]};var k=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[A,a.DatePipe,E]}},e.forChild=function(n){return{ngModule:e,providers:[{provide:t.ANALYZE_FOR_ENTRY_COMPONENTS,useValue:n,multi:!0},{provide:r.ROUTES,useValue:[],multi:!0},{provide:C,useValue:n}]}},e.withComponents=function(n,i){return{ngModule:e,providers:u([{provide:t.ANALYZE_FOR_ENTRY_COMPONENTS,useValue:n,multi:!0},{provide:v,useValue:n},{provide:g,useValue:i||[]},{provide:r.ROUTES,useValue:i||[],multi:!0},{provide:b,useValue:L}],e.forRoot().providers)}},e}();k.decorators=[{type:t.NgModule,args:[{imports:[a.CommonModule],declarations:[s,d,f,m,h,V,O,j,I,M,P,R,T,D,L],exports:[s,d,V,f,m,h,O,j,M,P,I,T,D],entryComponents:[R,L]}]}],Object.defineProperty(e,"dataApi",{enumerable:!0,get:function(){return n.dataApi}}),Object.defineProperty(e,"getChildPlaceholder",{enumerable:!0,get:function(){return n.getChildPlaceholder}}),Object.defineProperty(e,"getFieldValue",{enumerable:!0,get:function(){return n.getFieldValue}}),Object.defineProperty(e,"isExperienceEditorActive",{enumerable:!0,get:function(){return n.isExperienceEditorActive}}),Object.defineProperty(e,"isServer",{enumerable:!0,get:function(){return n.isServer}}),Object.defineProperty(e,"mediaApi",{enumerable:!0,get:function(){return n.mediaApi}}),Object.defineProperty(e,"resetExperienceEditorChromes",{enumerable:!0,get:function(){return n.resetExperienceEditorChromes}}),e.ComponentNameAndType=y,e.DYNAMIC_COMPONENT=C,e.FileDirective=s,e.GenericLinkDirective=h,e.ImageDirective=d,e.JssModule=k,e.LayoutService=A,e.LayoutServiceError=_,e.LinkDirective=f,e.PlaceholderComponent=P,e.PlaceholderLoadingDirective=I,e.RichTextDirective=T,e.RouterLinkDirective=m,e.TextDirective=D,e.isRawRendering=w,e.ɵb=v,e.ɵc=g,e.ɵd=b,e.ɵe=O,e.ɵf=j,e.ɵg=E,e.ɵh=V,e.ɵi=M,e.ɵj=R,e.ɵk=L,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
|
+
var p=function(e,t){return(p=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 c(e,t){function n(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function l(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function u(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(l(arguments[t]));return e}var d=function(){function e(e,t,n,r){this.viewContainer=e,this.templateRef=t,this.renderer=n,this.elementRef=r,this.inlineRef=null,this.editable=!0,this.urlParams={},this.attrs={}}return e.prototype.ngOnChanges=function(e){(e.field||e.editable||e.urlParams||e.attrs)&&(this.viewContainer.clear(),this.inlineRef&&(this.inlineRef.remove(),this.inlineRef=null),this.updateView())},e.prototype.updateView=function(){var e=Object.assign(Object.assign({},this.getElementAttrs()),this.attrs),t=this.field;if(t&&(t.editable||t.value||t.src)){var r={};if(this.editable&&t.editable){var i=n.mediaApi.findEditorImageTag(t.editable);if(!i)return this.renderInlineWrapper(t.editable);if(!(r=this.getImageAttrs(i.attrs,e,this.urlParams)))return this.renderInlineWrapper(t.editable);var o=this.renderer.createElement("img");Object.entries(r).forEach((function(e){var t=l(e,2),n=t[0],r=t[1];return o.setAttribute(n,r)}));var a=t.editable.replace(i.imgTag,o.outerHTML);return this.renderInlineWrapper(a)}var s=t.src?t:t.value;if(!s)return null;(r=this.getImageAttrs(s,e,this.urlParams))&&this.renderTemplate(r)}},e.prototype.getImageAttrs=function(e,t,r){var i=Object.assign(Object.assign({},e),t),o=i.src,a=i.srcSet,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(i,["src","srcSet"]);if(!o)return null;var p=Object.assign({},s);return o=n.mediaApi.updateImageUrl(o,r,this.mediaUrlPrefix),a?p.srcSet=n.mediaApi.getSrcSet(o,a,r,this.mediaUrlPrefix):p.src=o,p},e.prototype.renderTemplate=function(e){var t=this;this.viewContainer.createEmbeddedView(this.templateRef).rootNodes.forEach((function(n){Object.entries(e).forEach((function(e){var r=l(e,2),i=r[0],o=r[1];return t.renderer.setAttribute(n,i,o)}))}))},e.prototype.getElementAttrs=function(){var e=this.templateRef.createEmbeddedView(null).rootNodes[0];if(!e)return{};for(var t={},n=0;n<e.attributes.length;n++){var r=e.attributes.item(n);r&&(t[r.name]=r.value)}return t},e.prototype.renderInlineWrapper=function(e){var t=this.renderer.createElement("span");t.className="sc-image-wrapper",t.innerHTML=e;var n=this.renderer.parentNode(this.elementRef.nativeElement);this.renderer.insertBefore(n,t,this.elementRef.nativeElement),n.removeChild(this.elementRef.nativeElement),this.inlineRef=t},e}();d.decorators=[{type:t.Directive,args:[{selector:"[scImage]"}]}],d.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.Renderer2},{type:t.ElementRef}]},d.propDecorators={field:[{type:t.Input,args:["scImage"]}],editable:[{type:t.Input,args:["scImageEditable"]}],mediaUrlPrefix:[{type:t.Input,args:["scImageMediaUrlPrefix"]}],urlParams:[{type:t.Input,args:["scImageUrlParams"]}],attrs:[{type:t.Input,args:["scImageAttrs"]}]};var f=function(){function e(e,t,n,r){this.viewContainer=e,this.templateRef=t,this.renderer=n,this.elementRef=r,this.inlineRef=null,this.editable=!0,this.attrs={}}return e.prototype.ngOnChanges=function(e){(e.field||e.editable||e.attrs)&&(this.viewContainer.clear(),this.inlineRef&&(this.inlineRef.remove(),this.inlineRef=null),this.updateView())},e.prototype.updateView=function(){var e=this.field;if(this.editable&&e&&e.editableFirstPart&&e.editableLastPart)this.renderInlineWrapper(e.editableFirstPart,e.editableLastPart);else if(e&&(e.href||e.value)){var t=e.href?e:e.value,n=e.text||e.value.text||e.href||e.value.href,r=Object.assign(Object.assign({},t),this.attrs);this.renderTemplate(r,n)}},e.prototype.renderTemplate=function(e,t){var n=this;this.viewContainer.createEmbeddedView(this.templateRef).rootNodes.forEach((function(r){Object.entries(e).forEach((function(e){var t=l(e,2),i=t[0],o=t[1];if("href"===i&&(!o||/^https?:\/\/$/.test(o))){if(!r.href)return;o=r.href}"class"===i&&r.className&&(o+=" "+r.className),n.renderer.setAttribute(r,i,o)})),r.childNodes&&0===r.childNodes.length&&t&&(r.textContent=t)}))},e.prototype.renderInlineWrapper=function(e,t){var n=this,r=this.renderer.createElement("span");r.className="sc-link-wrapper",r.innerHTML=e+t;var i=Object.assign(Object.assign({},this.getElementAttrs()),this.attrs);Object.entries(i).forEach((function(e){var t=l(e,2),i=t[0],o=t[1];return n.renderer.setAttribute(r,i,o)})),this.viewContainer.createEmbeddedView(this.templateRef);var o=this.renderer.parentNode(this.elementRef.nativeElement);this.renderer.insertBefore(o,r,this.elementRef.nativeElement),this.inlineRef=r},e.prototype.getElementAttrs=function(){var e=this.templateRef.createEmbeddedView(null).rootNodes[0];if(!e)return{};for(var t={},n=0;n<e.attributes.length;n++){var r=e.attributes.item(n);r&&(t[r.name]=r.value)}return t},e}();f.decorators=[{type:t.Directive,args:[{selector:"[scLink]"}]}],f.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.Renderer2},{type:t.ElementRef}]},f.propDecorators={editable:[{type:t.Input,args:["scLinkEditable"]}],attrs:[{type:t.Input,args:["scLinkAttrs"]}],field:[{type:t.Input,args:["scLink"]}]};var m=function(e){function t(t,n,r,i,o){var a=e.call(this,t,n,r,i)||this;return a.router=o,a.editable=!0,a.attrs={},a}return c(t,e),t.prototype.renderTemplate=function(e,t){var n=this;this.viewContainer.createEmbeddedView(this.templateRef).rootNodes.forEach((function(r){Object.entries(e).forEach((function(e){var t=l(e,2),i=t[0],o=t[1];n.renderer.setAttribute(r,i,o),"href"===i&&n.renderer.listen(r,"click",(function(e){n.router.navigateByUrl(o),e.preventDefault()}))})),r.childNodes&&0===r.childNodes.length&&t&&(r.textContent=t)}))},t}(f);m.decorators=[{type:t.Directive,args:[{selector:"[scRouterLink]"}]}],m.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.Renderer2},{type:t.ElementRef},{type:r.Router}]},m.propDecorators={editable:[{type:t.Input,args:["scRouterLinkEditable"]}],attrs:[{type:t.Input,args:["scRouterLinkAttrs"]}],field:[{type:t.Input,args:["scRouterLink"]}]};var h=function(e){function t(t,n,r,i,o){var a=e.call(this,t,n,r,i)||this;return a.router=o,a.editable=!0,a.attrs={},a}return c(t,e),t.prototype.renderTemplate=function(e,t){var n=this;this.viewContainer.createEmbeddedView(this.templateRef).rootNodes.forEach((function(r){Object.entries(e).forEach((function(e){var t=l(e,2),i=t[0],o=t[1];if("href"!==i||n.isAbsoluteUrl(o))n.renderer.setAttribute(r,i,o);else{var a=n.router.createUrlTree([o],n.extras);n.renderer.setAttribute(r,i,n.router.serializeUrl(a)),n.renderer.listen(r,"click",(function(e){n.router.navigate([o],n.extras),e.preventDefault()}))}})),r.childNodes&&0===r.childNodes.length&&t&&(r.textContent=t)}))},t.prototype.isAbsoluteUrl=function(e){if(null==e)return!1;if("string"!=typeof e)throw new TypeError("Expected a string");return/^[a-z][a-z0-9+.-]*:/.test(e)},t}(f);h.decorators=[{type:t.Directive,args:[{selector:"[scGenericLink]"}]}],h.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:t.Renderer2},{type:t.ElementRef},{type:r.Router}]},h.propDecorators={editable:[{type:t.Input,args:["scGenericLinkEditable"]}],attrs:[{type:t.Input,args:["scGenericLinkAttrs"]}],field:[{type:t.Input,args:["scGenericLink"]}],extras:[{type:t.Input,args:["scGenericLinkExtras"]}]};var y=function(){};var v=new t.InjectionToken("Sc.placeholder.components"),g=new t.InjectionToken("Sc.placeholder.lazyComponents"),b=new t.InjectionToken("Sc.placeholder.missingComponentComponent"),C=new t.InjectionToken("Sc.placeholder.dynamicComponent"),R=function(){function e(e,t){this.renderer=e,this.elementRef=t}return e.prototype.ngOnInit=function(){var e=this.renderer.createElement(this.rendering.name),t=this.renderer.createText(this.rendering.contents||""),n=this.rendering.attributes;for(var r in n)if(n.hasOwnProperty(r)){var i=n[r];this.renderer.setAttribute(e,r,i||"")}this.renderer.appendChild(e,t);var o=this.renderer.parentNode(this.elementRef.nativeElement);this.renderer.insertBefore(o,e,this.elementRef.nativeElement),o.removeChild(this.elementRef.nativeElement)},e}();function w(e){return!e.componentName&&void 0!==e.name}R.decorators=[{type:t.Component,args:[{selector:"sc-raw",template:""}]}],R.ctorParameters=function(){return[{type:t.Renderer2},{type:t.ElementRef}]},R.propDecorators={rendering:[{type:t.Input}]};var E=function(){function e(e,t,n,r){var i=this;this.injector=e,this.compiler=t,this.components=n,this.lazyComponents=r,this.componentMap=new Map,this.lazyComponentMap=new Map,this.components.forEach((function(e){return i.componentMap.set(e.name,e.type)})),this.lazyComponents&&this.lazyComponents.forEach((function(e){return i.lazyComponentMap.set(e.path,e)}))}return e.prototype.loadModuleFactory=function(e){var n=this;return e.loadChildren().then((function(e){return e instanceof t.NgModuleFactory?e:n.compiler.compileModuleAsync(e)}))},e.prototype.getComponent=function(e){var t=this;if(this.componentMap.get(e.componentName))return Promise.resolve({componentDefinition:e,componentImplementation:this.componentMap.get(e.componentName)});var n=this.lazyComponentMap.get(e.componentName);return n?this.loadModuleFactory(n).then((function(r){var i=null,o=r.create(t.injector),a=o.injector.get(C);if(!a)throw new Error('JssComponentFactoryService: Lazy load module for component "'+n.path+'" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?');if(e.componentName in a)i=a[e.componentName];else{if("function"!=typeof a)throw new Error('JssComponentFactoryService: Lazy load module for component "'+n.path+'" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?');i=a}return{componentDefinition:e,componentImplementation:i,componentFactory:o.componentFactoryResolver.resolveComponentFactory(i)}})):Promise.resolve({componentDefinition:e})},e.prototype.getComponents=function(e){var t=this;return Promise.all(e.map((function(e){return w(e)?t.getRawComponent(e):t.getComponent(e)})))},e.prototype.getRawComponent=function(e){return Promise.resolve({componentImplementation:R,componentDefinition:e})},e}();E.decorators=[{type:t.Injectable}],E.ctorParameters=function(){return[{type:t.Injector},{type:t.Compiler},{type:Array,decorators:[{type:t.Inject,args:[v]}]},{type:Array,decorators:[{type:t.Inject,args:[g]}]}]};var I=function(e){this.templateRef=e};I.decorators=[{type:t.Directive,args:[{selector:"[scPlaceholderLoading]"}]}],I.ctorParameters=function(){return[{type:t.TemplateRef}]};var O=function(e){this.templateRef=e};O.decorators=[{type:t.Directive,args:[{selector:"[renderEach]"}]}],O.ctorParameters=function(){return[{type:t.TemplateRef}]};var j=function(e){this.templateRef=e};j.decorators=[{type:t.Directive,args:[{selector:"[renderEmpty]"}]}],j.ctorParameters=function(){return[{type:t.TemplateRef}]};var P=function(){function e(e,n,r,i,o,a,s){this.componentFactoryResolver=e,this.differs=n,this.componentFactory=r,this.changeDetectorRef=i,this.elementRef=o,this.renderer=a,this.missingComponentComponent=s,this._componentInstances=[],this.destroyed=!1,this.parentStyleAttribute="",this.isLoading=!0,this.loaded=new t.EventEmitter}return Object.defineProperty(e.prototype,"inputs",{set:function(e){this._inputs=e,!this._differ&&e&&(this._differ=this.differs.find(e).create())},enumerable:!1,configurable:!0}),e.prototype.ngOnInit=function(){var e=this.elementRef.nativeElement;if(e)for(var t=e.attributes,n=0;n<t.length;n++){var r=t.item(n);r&&-1!==r.name.indexOf("_ngcontent")&&(this.parentStyleAttribute=r.name)}},e.prototype.ngOnDestroy=function(){this.destroyed=!0,this._componentInstances=[]},e.prototype.ngOnChanges=function(e){(e.rendering||e.renderings)&&this._render()},e.prototype.ngDoCheck=function(){var e=this;if(this._differ&&this._inputs&&0!==this._componentInstances.length){var t=this._differ.diff(this._inputs);if(t){var n={};t.forEachRemovedItem((function(e){return n[e.key]=null})),t.forEachAddedItem((function(e){return n[e.key]=e.currentValue})),t.forEachChangedItem((function(e){return n[e.key]=e.currentValue})),this._componentInstances.forEach((function(t){return e._setComponentInputs(t,n)}))}}},e.prototype._setComponentInputs=function(e,t){Object.entries(t).forEach((function(t){var n=l(t,2),r=n[0],i=n[1];return e[r]=i}))},e.prototype._subscribeComponentOutputs=function(e,t){var n=this;Object.keys(t).filter((function(t){return e[t]&&e[t]instanceof i.Observable})).forEach((function(r){return e[r].pipe(o.takeWhile((function(){return!n.destroyed}))).subscribe(t[r])}))},e.prototype._render=function(){var e=this;if(this._componentInstances=[],this.view.clear(),this.rendering||this.renderings){if(!this.name&&!this.renderings)return console.warn("Placeholder name was not specified, and explicit renderings array was not passed. Placeholder requires either name and rendering, or renderings."),void(this.isLoading=!1);var t,n,r=this.renderings||(t=this.rendering,n=this.name||"",t&&t.placeholders&&Object.keys(t.placeholders).length>0?t.placeholders[n]:null);if(!r)return console.warn("Placeholder '"+this.name+"' was not found in the current rendering data",JSON.stringify(this.rendering,null,2)),void(this.isLoading=!1);var i=r.every((function(e){return w(e)}));this.renderEmptyTemplate&&i?(this.view.createEmbeddedView(this.renderEmptyTemplate.templateRef,{renderings:r}),this.isLoading=!1):this.componentFactory.getComponents(r).then((function(t){return t.forEach((function(t,n){e.renderEachTemplate&&!w(t.componentDefinition)?e._renderTemplatedComponent(t.componentDefinition,n):e._renderEmbeddedComponent(t,n),e.isLoading=!1}))})).then((function(){e.changeDetectorRef.markForCheck(),e.loaded.emit(e.name)}))}},e.prototype._renderTemplatedComponent=function(e,t){this.view.createEmbeddedView(this.renderEachTemplate.templateRef,{rendering:e,index:t})},e.prototype._renderEmbeddedComponent=function(e,t){if(!e.componentImplementation){var n=e.componentDefinition.componentName;console.error("Placeholder "+this.name+" contains unknown component "+n+".","Ensure component is mapped, like:\n JssModule.withComponents([\n { name: '"+n+"', type: "+n+"Component }\n ])"),e.componentImplementation=this.missingComponentComponent}var r=e.componentFactory||this.componentFactoryResolver.resolveComponentFactory(e.componentImplementation),i=this.view.createComponent(r,t);this.parentStyleAttribute&&this.renderer.setAttribute(i.location.nativeElement,this.parentStyleAttribute,"");var o=i.instance;o.rendering=e.componentDefinition,this._inputs&&this._setComponentInputs(o,this._inputs),this.outputs&&this._subscribeComponentOutputs(o,this.outputs),this._componentInstances.push(o)},e}();P.decorators=[{type:t.Component,args:[{selector:"sc-placeholder,[sc-placeholder]",template:'\n <ng-template *ngIf="isLoading" [ngTemplateOutlet]="placeholderLoading?.templateRef"></ng-template>\n <ng-template #view></ng-template>\n '}]}],P.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:t.KeyValueDiffers},{type:E},{type:t.ChangeDetectorRef},{type:t.ElementRef},{type:t.Renderer2},{type:t.Type,decorators:[{type:t.Inject,args:[b]}]}]},P.propDecorators={name:[{type:t.Input}],rendering:[{type:t.Input}],renderings:[{type:t.Input}],outputs:[{type:t.Input}],loaded:[{type:t.Output}],view:[{type:t.ViewChild,args:["view",{read:t.ViewContainerRef,static:!0}]}],renderEachTemplate:[{type:t.ContentChild,args:[O,{static:!0}]}],renderEmptyTemplate:[{type:t.ContentChild,args:[j,{static:!0}]}],placeholderLoading:[{type:t.ContentChild,args:[I,{static:!0}]}],inputs:[{type:t.Input}]};var T=function(){function e(e,t){this.viewContainer=e,this.templateRef=t,this.editable=!0}return e.prototype.ngOnChanges=function(e){(e.field||e.editable)&&(this.viewRef||(this.viewContainer.clear(),this.viewRef=this.viewContainer.createEmbeddedView(this.templateRef)),this.updateView())},e.prototype.updateView=function(){var e=this.field;if(e&&(e.editable||e.value)){var t=e.editable&&this.editable?e.editable:e.value;this.viewRef.rootNodes.forEach((function(e){e.innerHTML=t}))}},e}();T.decorators=[{type:t.Directive,args:[{selector:"[scRichText]"}]}],T.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef}]},T.propDecorators={editable:[{type:t.Input,args:["scRichTextEditable"]}],field:[{type:t.Input,args:["scRichText"]}]};var D=function(){function e(e,t){this.viewContainer=e,this.templateRef=t,this.editable=!0,this.encode=!0}return e.prototype.ngOnChanges=function(e){(e.field||e.editable||e.encode)&&(this.viewRef||(this.viewContainer.clear(),this.viewRef=this.viewContainer.createEmbeddedView(this.templateRef)),this.updateView())},e.prototype.updateView=function(){var e=this.field,t=this.editable;if(e&&(e.editable||e.value)){this.encode||(t=!1);var n=e.editable&&t?e.editable:e.value,r=e.editable&&t||!this.encode;this.viewRef.rootNodes.forEach((function(e){r?e.innerHTML=n:e.textContent=n}))}},e}();D.decorators=[{type:t.Directive,args:[{selector:"[scText]"}]}],D.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef}]},D.propDecorators={editable:[{type:t.Input,args:["scTextEditable"]}],encode:[{type:t.Input,args:["scTextEncode"]}],field:[{type:t.Input,args:["scText"]}]};var _=function(){},N=n.dataApi.fetchRouteData,x=n.dataApi.fetchPlaceholderData,A=function(){function e(){}return e.getLayoutServiceError=function(e){var t=new _,n=e.response;return n&&(t.status=n.status,t.statusText=n.statusText,t.data=n.data),i.throwError(t)},e.prototype.getRouteData=function(t,n){return i.from(N(t,n)).pipe(o.catchError(e.getLayoutServiceError))},e.prototype.getPlaceholderData=function(t,n,r){return i.from(x(n,t,r)).pipe(o.catchError(e.getLayoutServiceError))},e}();A.decorators=[{type:t.Injectable}];var V=function(){function e(e,t,n){this.viewContainer=e,this.templateRef=t,this.datePipe=n,this.editable=!0}return e.prototype.ngOnChanges=function(e){(e.field||e.format)&&(this.viewRef||(this.viewContainer.clear(),this.viewRef=this.viewContainer.createEmbeddedView(this.templateRef)),this.updateView())},e.prototype.updateView=function(){var e=this,t=this.field;if(t&&(t.editable||t.value)){var n=t.editable&&this.editable?t.editable:t.value,r=t.editable&&this.editable;this.viewRef.rootNodes.forEach((function(t){r?t.innerHTML=n:t.textContent=e.datePipe.transform(n,e.format,e.timezone,e.locale)}))}},e}();V.decorators=[{type:t.Directive,args:[{selector:"[scDate]"}]}],V.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.TemplateRef},{type:a.DatePipe}]},V.propDecorators={format:[{type:t.Input,args:["scDateFormat"]}],timezone:[{type:t.Input,args:["scDateTimezone"]}],locale:[{type:t.Input,args:["scDateLocale"]}],editable:[{type:t.Input,args:["scDateEditable"]}],field:[{type:t.Input,args:["scDate"]}]};var L=function(){};L.decorators=[{type:t.Component,args:[{selector:"sc-missing-component",template:'\n<div style="background: darkorange; outline: 5px solid orange; padding: 10px; color: white; max-width: 500px;">\n <h2>{{ rendering.componentName }}</h2>\n <p>JSS component is missing Angular component implementation.</p>\n</div>'}]}],L.propDecorators={rendering:[{type:t.Input}]};var M=function(){function e(e,t,n,r){this.componentFactoryResolver=e,this.differs=t,this.componentFactory=n,this.missingComponentComponent=r,this.destroyed=!1}return Object.defineProperty(e.prototype,"inputs",{set:function(e){this._inputs=e,!this._differ&&e&&(this._differ=this.differs.find(e).create())},enumerable:!1,configurable:!0}),e.prototype.ngOnChanges=function(e){e.rendering&&this._render()},e.prototype._setComponentInputs=function(e,t){Object.entries(t).forEach((function(t){var n=l(t,2),r=n[0],i=n[1];return e[r]=i}))},e.prototype._subscribeComponentOutputs=function(e,t){var n=this;Object.keys(t).filter((function(t){return e[t]&&e[t]instanceof i.Observable})).forEach((function(r){return e[r].pipe(o.takeWhile((function(){return!n.destroyed}))).subscribe(t[r])}))},e.prototype._render=function(){var e=this;(this.view.clear(),this.rendering)&&(w(this.rendering)?Promise.resolve({componentImplementation:R,componentDefinition:this.rendering}):this.componentFactory.getComponent(this.rendering)).then((function(t){if(!t.componentImplementation){var n=t.componentDefinition.componentName;console.error("Attempted to render unknown component "+n+".","Ensure component is mapped, like:\n JssModule.withComponents([\n { name: '"+n+"', type: "+n+"Component }\n ])"),t.componentImplementation=e.missingComponentComponent}var r=t.componentFactory||e.componentFactoryResolver.resolveComponentFactory(t.componentImplementation),i=e.view.createComponent(r,0).instance;i.rendering=t.componentDefinition,e._inputs&&e._setComponentInputs(i,e._inputs),e.outputs&&e._subscribeComponentOutputs(i,e.outputs)}))},e}();M.decorators=[{type:t.Component,args:[{selector:"sc-render-component",template:"\n <ng-template #view></ng-template>\n "}]}],M.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:t.KeyValueDiffers},{type:E},{type:t.Type,decorators:[{type:t.Inject,args:[b]}]}]},M.propDecorators={rendering:[{type:t.Input}],outputs:[{type:t.Input}],view:[{type:t.ViewChild,args:["view",{read:t.ViewContainerRef,static:!0}]}],inputs:[{type:t.Input}]};var k=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[A,a.DatePipe,E]}},e.forChild=function(n){return{ngModule:e,providers:[{provide:t.ANALYZE_FOR_ENTRY_COMPONENTS,useValue:n,multi:!0},{provide:r.ROUTES,useValue:[],multi:!0},{provide:C,useValue:n}]}},e.withComponents=function(n,i){return{ngModule:e,providers:u([{provide:t.ANALYZE_FOR_ENTRY_COMPONENTS,useValue:n,multi:!0},{provide:v,useValue:n},{provide:g,useValue:i||[]},{provide:r.ROUTES,useValue:i||[],multi:!0},{provide:b,useValue:L}],e.forRoot().providers)}},e}();k.decorators=[{type:t.NgModule,args:[{imports:[a.CommonModule],declarations:[s,d,f,m,h,V,O,j,I,M,P,R,T,D,L],exports:[s,d,V,f,m,h,O,j,M,P,I,T,D],entryComponents:[R,L]}]}],Object.defineProperty(e,"dataApi",{enumerable:!0,get:function(){return n.dataApi}}),Object.defineProperty(e,"getChildPlaceholder",{enumerable:!0,get:function(){return n.getChildPlaceholder}}),Object.defineProperty(e,"getFieldValue",{enumerable:!0,get:function(){return n.getFieldValue}}),Object.defineProperty(e,"isExperienceEditorActive",{enumerable:!0,get:function(){return n.isExperienceEditorActive}}),Object.defineProperty(e,"isServer",{enumerable:!0,get:function(){return n.isServer}}),Object.defineProperty(e,"mediaApi",{enumerable:!0,get:function(){return n.mediaApi}}),Object.defineProperty(e,"resetExperienceEditorChromes",{enumerable:!0,get:function(){return n.resetExperienceEditorChromes}}),e.ComponentNameAndType=y,e.DYNAMIC_COMPONENT=C,e.FileDirective=s,e.GenericLinkDirective=h,e.ImageDirective=d,e.JssModule=k,e.LayoutService=A,e.LayoutServiceError=_,e.LinkDirective=f,e.PlaceholderComponent=P,e.PlaceholderLoadingDirective=I,e.RichTextDirective=T,e.RouterLinkDirective=m,e.TextDirective=D,e.isRawRendering=w,e.ɵb=v,e.ɵc=g,e.ɵd=b,e.ɵe=O,e.ɵf=j,e.ɵg=E,e.ɵh=V,e.ɵi=M,e.ɵj=R,e.ɵk=L,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
17
17
|
//# sourceMappingURL=sitecore-jss-sitecore-jss-angular.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/file.directive.ts","../../node_modules/tslib/tslib.es6.js","../../src/components/image.directive.ts","../../src/components/link.directive.ts","../../src/components/router-link.directive.ts","../../src/components/generic-link.directive.ts","../../src/components/placeholder.token.ts","../../src/components/raw.component.ts","../../src/components/rendering.ts","../../src/jss-component-factory.service.ts","../../src/components/placeholder-loading.directive.ts","../../src/components/render-each.directive.ts","../../src/components/render-empty.directive.ts","../../src/components/placeholder.component.ts","../../src/components/rich-text.directive.ts","../../src/components/text.directive.ts","../../src/layout-service-error.ts","../../src/layout.service.ts","../../src/components/date.directive.ts","../../src/components/missing-component.component.ts","../../src/components/render-component.component.ts","../../src/lib.module.ts"],"names":["FileDirective","viewContainer","templateRef","this","prototype","ngOnChanges","changes","viewRef","clear","createEmbeddedView","updateView","field","value","src","file","rootNodes","forEach","node","href","innerHTML","title","displayName","Directive","args","selector","ViewContainerRef","TemplateRef","Input","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","create","__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","error","__spread","arguments","length","concat","ImageDirective","renderer","elementRef","inlineRef","editable","urlParams","attrs","remove","overrideAttrs","assign","getElementAttrs","media","foundImg","mediaApi","findEditorImageTag","renderInlineWrapper","getImageAttrs","tempImg_1","createElement","entries","_a","_b","key","attrValue","setAttribute","editableMarkup","replace","imgTag","outerHTML","img","renderTemplate","fieldAttrs","parsedAttrs","imageParams","combinedAttrs","srcSet","otherAttrs","s","t","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","newAttrs","updateImageUrl","mediaUrlPrefix","getSrcSet","imageProps","_this","imgPropVal","element","attributes","attr","item","name","span","className","parentNode","nativeElement","insertBefore","removeChild","Renderer2","ElementRef","LinkDirective","editableFirstPart","editableLastPart","props","linkText","text","mergedAttrs","propValue","test","childNodes","textContent","RouterLinkDirective","router","_super","listen","event","navigate","preventDefault","Router","GenericLinkDirective","isAbsoluteUrl","urlTree","createUrlTree","extras","serializeUrl","url","TypeError","PLACEHOLDER_COMPONENTS","InjectionToken","PLACEHOLDER_LAZY_COMPONENTS","PLACEHOLDER_MISSING_COMPONENT_COMPONENT","DYNAMIC_COMPONENT","RawComponent","ngOnInit","el","rendering","contents","createText","appendChild","isRawRendering","componentName","undefined","Component","template","JssComponentFactoryService","injector","compiler","components","lazyComponents","componentMap","Map","lazyComponentMap","c","set","type","path","loadModuleFactory","lazyComponent","loadChildren","then","loaded","NgModuleFactory","compileModuleAsync","getComponent","component","get","Promise","resolve","componentDefinition","componentImplementation","ngModuleFactory","componentType","moduleRef","dynamicComponentType","Error","componentFactory","componentFactoryResolver","resolveComponentFactory","getComponents","all","map","getRawComponent","Injectable","Injector","Compiler","Inject","PlaceholderComponent","differs","changeDetectorRef","missingComponentComponent","_componentInstances","destroyed","parentStyleAttribute","isLoading","EventEmitter","defineProperty","_inputs","_differ","find","elem","ngOnDestroy","_render","ngDoCheck","diff","updates","forEachRemovedItem","change","forEachAddedItem","currentValue","forEachChangedItem","componentInstance","_setComponentInputs","inputs","input","inputValue","_subscribeComponentOutputs","outputs","keys","filter","output","Observable","pipe","takeWhile","subscribe","view","renderings","console","warn","placeholder","placeholders","JSON","stringify","placeholderIsEmpty","every","renderEmptyTemplate","index","renderEachTemplate","_renderTemplatedComponent","_renderEmbeddedComponent","markForCheck","emit","createdComponentRef","createComponent","location","instance","ComponentFactoryResolver","KeyValueDiffers","ChangeDetectorRef","Type","decorators","Output","ViewChild","read","static","ContentChild","RenderEachDirective","RenderEmptyDirective","PlaceholderLoadingDirective","RichTextDirective","html","TextDirective","encode","setDangerously","fetchRouteData","dataApi","fetchPlaceholderData","LayoutService","getLayoutServiceError","layoutServiceError","LayoutServiceError","response","status","statusText","data","observableThrow","getRouteData","route","options","fromPromise","catchError","getPlaceholderData","placeholderName","DateDirective","datePipe","transform","format","timezone","locale","DatePipe","RenderComponentComponent","JssModule","forRoot","ngModule","providers","forChild","provide","ANALYZE_FOR_ENTRY_COMPONENTS","useValue","multi","ROUTES","withComponents","MissingComponentComponent","NgModule","imports","CommonModule","declarations","exports","entryComponents"],"mappings":"6tBAaE,SAAAA,EACUC,EACAC,GADAC,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,SAGVF,EAAAI,UAAAC,YAAA,SAAYC,GACNA,EAAe,QACZH,KAAKI,UACRJ,KAAKF,cAAcO,QACnBL,KAAKI,QAAUJ,KAAKF,cAAcQ,mBAAmBN,KAAKD,cAG5DC,KAAKO,eAIDV,EAAAI,UAAAM,WAAA,WACN,IAAMC,EAAQR,KAAKQ,MAEnB,GAAKA,IAAWA,EAAMC,OAAUD,EAAME,KAAtC,CAIA,IAAMC,EAAOH,EAAME,IAAMF,EAAQA,EAAMC,MACvCT,KAAKI,QAAQQ,UAAUC,SAAQ,SAACC,GAC9BA,EAAKC,KAAOJ,EAAKD,IACM,KAAnBI,EAAKE,YACPF,EAAKE,UAAYL,EAAKM,OAASN,EAAKO,2CAlC3CC,EAAAA,UAASC,KAAA,CAAC,CAAEC,SAAU,wDAN4DC,EAAAA,wBAAbC,EAAAA,8CAWnEC,EAAAA,MAAKJ,KAAA,CAAC;;;;;;;;;;;;;;;ACKT,IAAIK,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,aAGZO,EAAUR,EAAGC,GAEzB,SAASQ,IAAOnC,KAAKoC,YAAcV,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEzB,UAAkB,OAAN0B,EAAaC,OAAOS,OAAOV,IAAMQ,EAAGlC,UAAY0B,EAAE1B,UAAW,IAAIkC,YA6FnEG,EAAOC,EAAGC,GACtB,IAAIC,EAAsB,mBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYC,EAA3BC,EAAIL,EAAEM,KAAKR,GAAOS,EAAK,GAC3B,IACI,WAAc,IAANR,GAAgBA,KAAM,MAAQI,EAAIE,EAAEG,QAAQC,MAAMF,EAAGG,KAAKP,EAAEnC,OAExE,MAAO2C,GAASP,EAAI,CAAEO,MAAOA,WAEzB,IACQR,IAAMA,EAAEM,OAAST,EAAIK,EAAU,SAAIL,EAAEM,KAAKD,WAExC,GAAID,EAAG,MAAMA,EAAEO,OAE7B,OAAOJ,WAGKK,IACZ,IAAK,IAAIL,EAAK,GAAIF,EAAI,EAAGA,EAAIQ,UAAUC,OAAQT,IAC3CE,EAAKA,EAAGQ,OAAOlB,EAAOgB,UAAUR,KACpC,OAAOE,mBC7GT,SAAAS,EACU3D,EACAC,EACA2D,EACAC,GAHA3D,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,EACAC,KAAA0D,SAAAA,EACA1D,KAAA2D,WAAAA,EA5BF3D,KAAA4D,UAAoC,KAMlB5D,KAAA6D,UAAW,EAaV7D,KAAA8D,UAAY,GAGhB9D,KAAA+D,MAAQ,UAS/BN,EAAAxD,UAAAC,YAAA,SAAYC,IACNA,EAAe,OAAKA,EAAkB,UAAKA,EAAmB,WAAKA,EAAe,SACpFH,KAAKF,cAAcO,QACfL,KAAK4D,YACP5D,KAAK4D,UAAUI,SACfhE,KAAK4D,UAAY,MAGnB5D,KAAKO,eAIDkD,EAAAxD,UAAAM,WAAA,WACN,IAAM0D,EAAarC,OAAAsC,OAAAtC,OAAAsC,OAAA,GACdlE,KAAKmE,mBACLnE,KAAK+D,OAEJK,EAAQpE,KAAKQ,MAEnB,GAAK4D,IAAWA,EAAMP,UAAaO,EAAM3D,OAAU2D,EAAM1D,KAAzD,CAIA,IAAIqD,EAAa,GAGjB,GAAI/D,KAAK6D,UAAYO,EAAMP,SAAU,CACnC,IAAMQ,EAAWC,EAAAA,SAASC,mBAAmBH,EAAMP,UACnD,IAAKQ,EACH,OAAOrE,KAAKwE,oBAAoBJ,EAAMP,UAGxC,KADAE,EAAQ/D,KAAKyE,cAAcJ,EAASN,MAAOE,EAAejE,KAAK8D,YAE7D,OAAO9D,KAAKwE,oBAAoBJ,EAAMP,UAExC,IAAMa,EAA4B1E,KAAK0D,SAASiB,cAAc,OAC9D/C,OAAOgD,QAAQb,GAAOlD,SAAQ,SAACgE,OAAAC,EAAAxC,EAAAuC,EAAA,GAACE,EAAGD,EAAA,GAAEE,EAASF,EAAA,GAC5C,OAAAJ,EAAQO,aAAaF,EAAKC,MAE5B,IAAME,EAAiBd,EAAMP,SAASsB,QAAQd,EAASe,OAAQV,EAAQW,WACvE,OAAOrF,KAAKwE,oBAAoBU,GAIlC,IAAMI,EAAMlB,EAAM1D,IAAM0D,EAAQA,EAAM3D,MACtC,IAAK6E,EACH,OAAO,MAGTvB,EAAQ/D,KAAKyE,cAAca,EAAKrB,EAAejE,KAAK8D,aAElD9D,KAAKuF,eAAexB,KAIhBN,EAAAxD,UAAAwE,cAAA,SAAce,EAAiBC,EAAkBC,GACvD,IAAMC,EAAa/D,OAAAsC,OAAAtC,OAAAsC,OAAA,GACdsB,GACAC,GAGC/E,EAA+BiF,EAAajF,IAAvCkF,EAA0BD,EAAaC,OAA5BC,WD1DHC,EAAGjD,GACtB,IAAIkD,EAAI,GACR,IAAK,IAAI/D,KAAK8D,EAAOlE,OAAO3B,UAAUgC,eAAec,KAAK+C,EAAG9D,IAAMa,EAAEmD,QAAQhE,GAAK,IAC9E+D,EAAE/D,GAAK8D,EAAE9D,IACb,GAAS,MAAL8D,GAAqD,mBAAjClE,OAAOqE,sBACtB,CAAA,IAAInD,EAAI,EAAb,IAAgBd,EAAIJ,OAAOqE,sBAAsBH,GAAIhD,EAAId,EAAEuB,OAAQT,IAC3DD,EAAEmD,QAAQhE,EAAEc,IAAM,GAAKlB,OAAO3B,UAAUiG,qBAAqBnD,KAAK+C,EAAG9D,EAAEc,MACvEiD,EAAE/D,EAAEc,IAAMgD,EAAE9D,EAAEc,KAE1B,OAAOiD,ECiDyBI,CAAKR,EAAjC,CAAA,MAAA,WACJ,IAAKjF,EACH,OAAO,KAET,IAAM0F,EAAQxE,OAAAsC,OAAA,GACT2B,GAUL,OAPAnF,EAAM4D,EAAAA,SAAS+B,eAAe3F,EAAKgF,EAAa1F,KAAKsG,gBACjDV,EAEFQ,EAASR,OAAStB,EAAAA,SAASiC,UAAU7F,EAAKkF,EAAQF,EAAa1F,KAAKsG,gBAEpEF,EAAS1F,IAAMA,EAEV0F,GAGD3C,EAAAxD,UAAAsF,eAAA,SAAeiB,GAAf,IAAAC,EAAAzG,KACUA,KAAKF,cAAcQ,mBAAmBN,KAAKD,aACnDa,UAAUC,SAAQ,SAACC,GACzBc,OAAOgD,QAAQ4B,GAAY3F,SAAQ,SAACgE,OAAAC,EAAAxC,EAAAuC,EAAA,GAACE,EAAGD,EAAA,GAAE4B,EAAU5B,EAAA,GAAqB,OAAA2B,EAAK/C,SAASuB,aAAanE,EAAMiE,EAAK2B,UAI3GjD,EAAAxD,UAAAkE,gBAAA,WACN,IACMwC,EADO3G,KAAKD,YAAYO,mBAAmB,MACnBM,UAAU,GACxC,IAAK+F,EACH,MAAO,GAGT,IADA,IAAM5C,EAAiC,GAC9BjB,EAAI,EAAGA,EAAI6D,EAAQC,WAAWrD,OAAQT,IAAK,CAClD,IAAM+D,EAAOF,EAAQC,WAAWE,KAAKhE,GACjC+D,IACF9C,EAAM8C,EAAKE,MAAQF,EAAKpG,OAG5B,OAAOsD,GAGDN,EAAAxD,UAAAuE,oBAAA,SAAoBX,GAC1B,IAAMmD,EAAwBhH,KAAK0D,SAASiB,cAAc,QAC1DqC,EAAKC,UAAY,mBACjBD,EAAKhG,UAAY6C,EAEjB,IAAMqD,EAAalH,KAAK0D,SAASwD,WAAWlH,KAAK2D,WAAWwD,eAC5DnH,KAAK0D,SAAS0D,aAAaF,EAAYF,EAAMhH,KAAK2D,WAAWwD,eAC7DD,EAAWG,YAAYrH,KAAK2D,WAAWwD,eAEvCnH,KAAK4D,UAAYoD,4BAhJpB7F,EAAAA,UAASC,KAAA,CAAC,CAAEC,SAAU,yDAJkEC,EAAAA,wBAAbC,EAAAA,mBAA1B+F,EAAAA,iBAA9BC,EAAAA,6CASjB/F,EAAAA,MAAKJ,KAAA,CAAC,6BAGNI,EAAAA,MAAKJ,KAAA,CAAC,2CAUNI,EAAAA,MAAKJ,KAAA,CAAC,4CAGNI,EAAAA,MAAKJ,KAAA,CAAC,mCAGNI,EAAAA,MAAKJ,KAAA,CAAC,oCCZP,SAAAoG,EACY1H,EACAC,EACA2D,EACFC,GAHE3D,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,EACAC,KAAA0D,SAAAA,EACF1D,KAAA2D,WAAAA,EAfF3D,KAAA4D,UAAoC,KAGnB5D,KAAA6D,UAAW,EAGd7D,KAAA+D,MAAa,UAYnCyD,EAAAvH,UAAAC,YAAA,SAAYC,IACNA,EAAe,OAAKA,EAAkB,UAAKA,EAAe,SAC5DH,KAAKF,cAAcO,QACfL,KAAK4D,YACP5D,KAAK4D,UAAUI,SACfhE,KAAK4D,UAAY,MAGnB5D,KAAKO,eAIDiH,EAAAvH,UAAAM,WAAA,WACN,IAAMC,EAAQR,KAAKQ,MACnB,GAAIR,KAAK6D,UAAYrD,GAASA,EAAMiH,mBAAqBjH,EAAMkH,iBAC7D1H,KAAKwE,oBAAoBhE,EAAMiH,kBAAmBjH,EAAMkH,uBACnD,GAAIlH,IAAUA,EAAMO,MAAQP,EAAMC,OAAQ,CAC/C,IAAMkH,EAAQnH,EAAMO,KAAOP,EAAQA,EAAMC,MACnCmH,EAAWpH,EAAMqH,MAAQrH,EAAMC,MAAMoH,MAAQrH,EAAMO,MAAQP,EAAMC,MAAMM,KACvE+G,EAAWlG,OAAAsC,OAAAtC,OAAAsC,OAAA,GAAQyD,GAAU3H,KAAK+D,OACxC/D,KAAKuF,eAAeuC,EAAaF,KAI3BJ,EAAAvH,UAAAsF,eAAA,SAAeoC,EAAYC,GAA3B,IAAAnB,EAAAzG,KACQA,KAAKF,cAAcQ,mBAAmBN,KAAKD,aAEnDa,UAAUC,SAAQ,SAACC,GACzBc,OAAOgD,QAAQ+C,GAAO9G,SAAQ,SAACgE,OAAAC,EAAAxC,EAAAuC,EAAA,GAACE,EAAGD,EAAA,GAAEiD,EAASjD,EAAA,GAC5C,GAAY,SAARC,KACqBgD,GAAa,gBAAgBC,KAAKD,IAEtC,CACjB,IAAKjH,EAAKC,KACR,OAGFgH,EAAYjH,EAAKC,KAIT,UAARgE,GAAmBjE,EAAKmG,YAC1Bc,GAAa,IAAIjH,EAAKmG,WAGxBR,EAAK/C,SAASuB,aAAanE,EAAMiE,EAAKgD,MAGpCjH,EAAKmH,YAAyC,IAA3BnH,EAAKmH,WAAW1E,QAAgBqE,IACrD9G,EAAKoH,YAAcN,OAKjBJ,EAAAvH,UAAAuE,oBAAA,SAAoBiD,EAA2BC,GAA/C,IAAAjB,EAAAzG,KACAgH,EAAwBhH,KAAK0D,SAASiB,cAAc,QAC1DqC,EAAKC,UAAY,kBACjBD,EAAKhG,UAAYyG,EAAoBC,EAGrC,IAAM3D,EAAKnC,OAAAsC,OAAAtC,OAAAsC,OAAA,GACNlE,KAAKmE,mBACLnE,KAAK+D,OAEVnC,OAAOgD,QAAQb,GAAOlD,SAAQ,SAACgE,OAAAC,EAAAxC,EAAAuC,EAAA,GAACE,EAAGD,EAAA,GAAEE,EAASF,EAAA,GAC5C,OAAA2B,EAAK/C,SAASuB,aAAa+B,EAAMjC,EAAKC,MAGxChF,KAAKF,cAAcQ,mBAAmBN,KAAKD,aAE3C,IAAMmH,EAAalH,KAAK0D,SAASwD,WAAWlH,KAAK2D,WAAWwD,eAC5DnH,KAAK0D,SAAS0D,aAAaF,EAAYF,EAAMhH,KAAK2D,WAAWwD,eAE7DnH,KAAK4D,UAAYoD,GAGXQ,EAAAvH,UAAAkE,gBAAA,WACN,IACMwC,EADO3G,KAAKD,YAAYO,mBAAmB,MACnBM,UAAU,GACxC,IAAK+F,EACH,MAAO,GAGT,IADA,IAAM5C,EAAiC,GAC9BjB,EAAI,EAAGA,EAAI6D,EAAQC,WAAWrD,OAAQT,IAAK,CAClD,IAAM+D,EAAOF,EAAQC,WAAWE,KAAKhE,GACjC+D,IACF9C,EAAM8C,EAAKE,MAAQF,EAAKpG,OAG5B,OAAOsD,4BA7GV5C,EAAAA,UAASC,KAAA,CAAC,CAAEC,SAAU,wDAHkEC,EAAAA,wBAAbC,EAAAA,mBAA1B+F,EAAAA,iBAA9BC,EAAAA,gDAQjB/F,EAAAA,MAAKJ,KAAA,CAAC,iCAGNI,EAAAA,MAAKJ,KAAA,CAAC,8BAGNI,EAAAA,MAAKJ,KAAA,CAAC,+BCGP,SAAA+G,EACErI,EACAC,EACA2D,EACAC,EACQyE,GALV,IAAA3B,EAOE4B,EAAAtF,KAAA/C,KAAMF,EAAeC,EAAa2D,EAAUC,IAAW3D,YAF/CyG,EAAA2B,OAAAA,EAbqB3B,EAAA5C,UAAW,EAGd4C,EAAA1C,MAAa,YANF7B,EAAAiG,EAAAE,GAqB7BF,EAAAlI,UAAAsF,eAAA,SAAeoC,EAAYC,GAA3B,IAAAnB,EAAAzG,KACQA,KAAKF,cAAcQ,mBAAmBN,KAAKD,aAEnDa,UAAUC,SAAQ,SAACC,GACzBc,OAAOgD,QAAQ+C,GAAO9G,SAAQ,SAACgE,OAAAC,EAAAxC,EAAAuC,EAAA,GAACE,EAAGD,EAAA,GAAEiD,EAASjD,EAAA,GAC5C2B,EAAK/C,SAASuB,aAAanE,EAAMiE,EAAKgD,GAE1B,SAARhD,GACF0B,EAAK/C,SAAS4E,OAAOxH,EAAM,SAAS,SAACyH,GACnC9B,EAAK2B,OAAOI,SAAS,CAACT,IACtBQ,EAAME,uBAKR3H,EAAKmH,YAAyC,IAA3BnH,EAAKmH,WAAW1E,QAAgBqE,IACrD9G,EAAKoH,YAAcN,UArCcJ,uBADxCrG,EAAAA,UAASC,KAAA,CAAC,CAAEC,SAAU,8DALwCC,EAAAA,wBAAbC,EAAAA,mBAAX+F,EAAAA,iBAAnBC,EAAAA,kBACXmB,EAAAA,4CAQNlH,EAAAA,MAAKJ,KAAA,CAAC,uCAGNI,EAAAA,MAAKJ,KAAA,CAAC,oCAGNI,EAAAA,MAAKJ,KAAA,CAAC,qCCKP,SAAAuH,EACE7I,EACAC,EACA2D,EACAC,EACQyE,GALV,IAAA3B,EAOE4B,EAAAtF,KAAA/C,KAAMF,EAAeC,EAAa2D,EAAUC,IAAW3D,YAF/CyG,EAAA2B,OAAAA,EAhBsB3B,EAAA5C,UAAW,EAGd4C,EAAA1C,MAAa,YANF7B,EAAAyG,EAAAN,GAwB9BM,EAAA1I,UAAAsF,eAAA,SAAeoC,EAAYC,GAA3B,IAAAnB,EAAAzG,KACQA,KAAKF,cAAcQ,mBAAmBN,KAAKD,aAEnDa,UAAUC,SAAQ,SAACC,GACzBc,OAAOgD,QAAQ+C,GAAO9G,SAAQ,SAACgE,OAAAC,EAAAxC,EAAAuC,EAAA,GAACE,EAAGD,EAAA,GAAEiD,EAASjD,EAAA,GAC5C,GAAY,SAARC,GAAmB0B,EAAKmC,cAAcb,GAQxCtB,EAAK/C,SAASuB,aAAanE,EAAMiE,EAAKgD,OARc,CACpD,IAAMc,EAAUpC,EAAK2B,OAAOU,cAAc,CAACf,GAAYtB,EAAKsC,QAC5DtC,EAAK/C,SAASuB,aAAanE,EAAMiE,EAAK0B,EAAK2B,OAAOY,aAAaH,IAC/DpC,EAAK/C,SAAS4E,OAAOxH,EAAM,SAAS,SAACyH,GACnC9B,EAAK2B,OAAOI,SAAS,CAACT,GAAYtB,EAAKsC,QACvCR,EAAME,wBAOR3H,EAAKmH,YAAyC,IAA3BnH,EAAKmH,WAAW1E,QAAgBqE,IACrD9G,EAAKoH,YAAcN,OAKjBe,EAAA1I,UAAA2I,cAAA,SAAcK,GACpB,GAAW,MAAPA,EACF,OAAO,EAET,GAAmB,iBAARA,EACT,MAAM,IAAIC,UAAU,qBAGtB,MAAO,sBAAsBlB,KAAKiB,OAvDIzB,uBADzCrG,EAAAA,UAASC,KAAA,CAAC,CAAEC,SAAU,+DALwCC,EAAAA,wBAAbC,EAAAA,mBAAX+F,EAAAA,iBAAnBC,EAAAA,kBACXmB,EAAAA,4CAQNlH,EAAAA,MAAKJ,KAAA,CAAC,wCAGNI,EAAAA,MAAKJ,KAAA,CAAC,qCAGNI,EAAAA,MAAKJ,KAAA,CAAC,iCAGNI,EAAAA,MAAKJ,KAAA,CAAC,gCCfT,iBAwBa+H,EAAyB,IAAIC,EAAAA,eAAuC,6BACpEC,EAA8B,IAAID,EAAAA,eAAuC,iCACzEE,EAA0C,IAAIF,EAAAA,eAA0B,4CACxEG,EAAoB,IAAIH,EAAAA,eAAgD,gDCpBnF,SAAAI,EACU9F,EACAC,GADA3D,KAAA0D,SAAAA,EACA1D,KAAA2D,WAAAA,SAGV6F,EAAAvJ,UAAAwJ,SAAA,WACE,IAAMC,EAAK1J,KAAK0D,SAASiB,cAAc3E,KAAK2J,UAAU5C,MAChD6C,EAAW5J,KAAK0D,SAASmG,WAAW7J,KAAK2J,UAAUC,UAAY,IAC/DhD,EAAa5G,KAAK2J,UAAU/C,WAClC,IAAK,IAAMC,KAAQD,EACjB,GAAKA,EAAmB3E,eAAe4E,GAAO,CAC5C,IAAMpG,EAAQmG,EAAWC,GACzB7G,KAAK0D,SAASuB,aAAayE,EAAI7C,EAAMpG,GAAS,IAIlDT,KAAK0D,SAASoG,YAAYJ,EAAIE,GAC9B,IAAM1C,EAAalH,KAAK0D,SAASwD,WAAWlH,KAAK2D,WAAWwD,eAC5DnH,KAAK0D,SAAS0D,aAAaF,EAAYwC,EAAI1J,KAAK2D,WAAWwD,eAC3DD,EAAWG,YAAYrH,KAAK2D,WAAWwD,8BC3B3B4C,EAAeJ,GAC7B,OAASA,EAAiCK,oBAA8DC,IAA5CN,EAAmC5C,yBDAhGmD,EAAAA,UAAS9I,KAAA,CAAC,CACTC,SAAU,SACV8I,SAAU,gDALmC7C,EAAAA,iBAA3BC,EAAAA,iDAQjB/F,EAAAA,0BEuBD,SAAA4I,EACUC,EACAC,EACgCC,EACKC,GAJ/C,IAAA/D,EAAAzG,KACUA,KAAAqK,SAAAA,EACArK,KAAAsK,SAAAA,EACgCtK,KAAAuK,WAAAA,EACKvK,KAAAwK,eAAAA,EAE3CxK,KAAKyK,aAAe,IAAIC,IACxB1K,KAAK2K,iBAAmB,IAAID,IAE5B1K,KAAKuK,WAAW1J,SAAQ,SAAC+J,GAAM,OAAAnE,EAAKgE,aAAaI,IAAID,EAAE7D,KAAM6D,EAAEE,SAE3D9K,KAAKwK,gBACPxK,KAAKwK,eAAe3J,SAAQ,SAAC+J,GAAM,OAAAnE,EAAKkE,iBAAiBE,IAAID,EAAEG,KAAMH,aAInER,EAAAnK,UAAA+K,kBAAA,SAAkBC,GAAlB,IAAAxE,EAAAzG,KACN,OAAOiL,EAAcC,eAAeC,MAAK,SAAAC,GACvC,OAAIA,aAAkBC,EAAAA,gBACbD,EAEA3E,EAAK6D,SAASgB,mBAAmBF,OAK9ChB,EAAAnK,UAAAsL,aAAA,SAAaC,GAAb,IAAA/E,EAAAzG,KAGE,GAFwBA,KAAKyK,aAAagB,IAAID,EAAUxB,eAGtD,OAAO0B,QAAQC,QAAQ,CACrBC,oBAAqBJ,EACrBK,wBAAyB7L,KAAKyK,aAAagB,IAAID,EAAUxB,iBAI7D,IAAMiB,EAAgBjL,KAAK2K,iBAAiBc,IAAID,EAAUxB,eAE1D,OAAIiB,EACKjL,KAAKgL,kBAAkBC,GAC7BE,MAAK,SAACW,GACL,IAAIC,EAAgB,KACdC,EAAYF,EAAgBzJ,OAAOoE,EAAK4D,UACxC4B,EAAuBD,EAAU3B,SAASoB,IAAIlC,GACpD,IAAK0C,EACH,MAAM,IAAIC,MAER,+DAA+DjB,EAAcF,KAAI,uEAIrF,GAAIS,EAAUxB,iBAAiBiC,EAC7BF,EAAiBE,EAA4CT,EAAUxB,mBAClE,CACL,GAAoC,mBAAzBiC,EAGT,MAAM,IAAIC,MAER,+DAA+DjB,EAAcF,KAAI,uEAJnFgB,EAAgBE,EASpB,MAAO,CACLL,oBAAqBJ,EACrBK,wBAAyBE,EACzBI,iBAAkBH,EAAUI,yBAAyBC,wBAAwBN,OAK5EL,QAAQC,QAAQ,CACrBC,oBAAqBJ,KAIzBpB,EAAAnK,UAAAqM,cAAA,SAAc/B,GAAd,IAAA9D,EAAAzG,KAEE,OAAO0L,QAAQa,IACbhC,EAAWiC,KAAI,SAAChB,GAAc,OAAAzB,EAAeyB,GACzC/E,EAAKgG,gBAAgBjB,GACrB/E,EAAK8E,aAAaC,QAIlBpB,EAAAnK,UAAAwM,gBAAA,SAAgBjB,GACtB,OAAOE,QAAQC,QAAQ,CACrBE,wBAAyBrC,EACzBoC,oBAAqBJ,8BA9F1BkB,EAAAA,sDAtBCC,EAAAA,gBAEAC,EAAAA,wCA4BGC,EAAAA,OAAMzL,KAAA,CAAC+H,oCACP0D,EAAAA,OAAMzL,KAAA,CAACiI,cC7BV,SAAmBtJ,GAAAC,KAAAD,YAAAA,uBAJpBoB,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,sEAHQE,EAAAA,qBCOlB,SAAmBxB,GAAAC,KAAAD,YAAAA,uBALpBoB,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,4DAJQE,EAAAA,qBCOlB,SAAmBxB,GAAAC,KAAAD,YAAAA,uBALpBoB,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,6DAJQE,EAAAA,gCC6ElB,SAAAuL,EACUV,EACAW,EACAZ,EACAa,EACArJ,EACAD,EACiDuJ,GANjDjN,KAAAoM,yBAAAA,EACApM,KAAA+M,QAAAA,EACA/M,KAAAmM,iBAAAA,EACAnM,KAAAgN,kBAAAA,EACAhN,KAAA2D,WAAAA,EACA3D,KAAA0D,SAAAA,EACiD1D,KAAAiN,0BAAAA,EAjCnDjN,KAAAkN,oBAA6B,GAC7BlN,KAAAmN,WAAY,EACZnN,KAAAoN,qBAA+B,GAChCpN,KAAAqN,WAAY,EAQnBrN,KAAAoL,OAAS,IAAIkC,EAAAA,oBAOb1L,OAAA2L,eACIT,EAAA7M,UAAA,SAAM,KADV,SACWQ,GACTT,KAAKwN,QAAU/M,GACVT,KAAKyN,SAAWhN,IACnBT,KAAKyN,QAAUzN,KAAK+M,QAAQW,KAAKjN,GAAO4B,2CAc5CyK,EAAA7M,UAAAwJ,SAAA,WAEE,IAAMkE,EAAO3N,KAAK2D,WAAWwD,cAE7B,GAAIwG,EAEF,IADA,IAAM/G,EAA2B+G,EAAK/G,WAC7B9D,EAAI,EAAGA,EAAI8D,EAAWrD,OAAQT,IAAK,CAC1C,IAAM+D,EAAoBD,EAAWE,KAAKhE,GACtC+D,IAA6C,IAArCA,EAAKE,KAAKf,QAAQ,gBAC1BhG,KAAKoN,qBAAuBvG,EAAKE,QAM3C+F,EAAA7M,UAAA2N,YAAA,WACE5N,KAAKmN,WAAY,EACjBnN,KAAKkN,oBAAsB,IAG7BJ,EAAA7M,UAAAC,YAAA,SAAYC,IACNA,EAAmB,WAAKA,EAAoB,aAC9CH,KAAK6N,WAITf,EAAA7M,UAAA6N,UAAA,WAAA,IAAArH,EAAAzG,KACE,GAAKA,KAAKyN,SAAYzN,KAAKwN,SAA+C,IAApCxN,KAAKkN,oBAAoB3J,OAA/D,CAIA,IAAMpD,EAAUH,KAAKyN,QAAQM,KAAK/N,KAAKwN,SACvC,GAAKrN,EAAL,CAGA,IAAM6N,EAAkC,GACxC7N,EAAQ8N,oBAAmB,SAACC,GAAW,OAAAF,EAAQE,EAAOnJ,KAAO,QAC7D5E,EAAQgO,kBAAiB,SAACD,GAAW,OAAAF,EAAQE,EAAOnJ,KAAOmJ,EAAOE,gBAClEjO,EAAQkO,oBAAmB,SAACH,GAAW,OAAAF,EAAQE,EAAOnJ,KAAOmJ,EAAOE,gBACpEpO,KAAKkN,oBAAoBrM,SAAQ,SAACyN,GAAsB,OAAA7H,EAAK8H,oBAAoBD,EAAmBN,SAG9FlB,EAAA7M,UAAAsO,oBAAA,SAAoBD,EAAwBE,GAClD5M,OAAOgD,QAAQ4J,GAAQ3N,SAAQ,SAACgE,OAAAC,EAAAxC,EAAAuC,EAAA,GAAC4J,EAAK3J,EAAA,GAAE4J,EAAU5J,EAAA,GAAM,OAAAwJ,EAAkBG,GAASC,MAG7E5B,EAAA7M,UAAA0O,2BAAA,SAA2BL,EAAwBM,GAAnD,IAAAnI,EAAAzG,KACN4B,OAAOiN,KAAKD,GACTE,QAAO,SAACC,GAAW,OAAAT,EAAkBS,IAAWT,EAAkBS,aAAmBC,EAAAA,cACrFnO,SAAQ,SAACkO,GAAY,OAAAT,EAAkBS,GACrCE,KACCC,EAAAA,WAAU,WAAM,OAACzI,EAAK0G,cAEvBgC,UAAUP,EAAQG,QAGjBjC,EAAA7M,UAAA4N,QAAA,WAAA,IAAApH,EAAAzG,KAIN,GAHAA,KAAKkN,oBAAsB,GAC3BlN,KAAKoP,KAAK/O,QAELL,KAAK2J,WAAc3J,KAAKqP,WAA7B,CAIA,IAAKrP,KAAK+G,OAAS/G,KAAKqP,WAItB,OAFAC,QAAQC,KAAK,yJACbvP,KAAKqN,WAAY,GAInB,IA5HoB1D,EAA+B5C,EA4H7CyI,EAAcxP,KAAKqP,aA5HL1F,EA4HkC3J,KAAK2J,UA5HR5C,EA4HmB/G,KAAK+G,MAAQ,GA3HjF4C,GAAaA,EAAU8F,cAAgB7N,OAAOiN,KAAKlF,EAAU8F,cAAclM,OAAS,EAC/EoG,EAAU8F,aAAa1I,GAEzB,MA0HL,IAAKyI,EAGH,OAFAF,QAAQC,KAAK,gBAAgBvP,KAAK+G,KAAI,gDAAiD2I,KAAKC,UAAU3P,KAAK2J,UAAW,KAAM,SAC5H3J,KAAKqN,WAAY,GAKnB,IAAMuC,EAAqBJ,EAAYK,OAAM,SAAClG,GAAyD,OAAAI,EAAeJ,MAElH3J,KAAK8P,qBAAuBF,GAC9B5P,KAAKoP,KAAK9O,mBAAmBN,KAAK8P,oBAAoB/P,YACpD,CACEsP,WAAYG,IAEhBxP,KAAKqN,WAAY,GAEjBrN,KAAKmM,iBAAiBG,cAAckD,GACjCrE,MAAK,SAACZ,GAAe,OAAAA,EAAW1J,SAAQ,SAAC8I,EAAWoG,GAC/CtJ,EAAKuJ,qBAAuBjG,EAAeJ,EAAUiC,qBACvDnF,EAAKwJ,0BAA0BtG,EAAUiC,oBAAqBmE,GAE9DtJ,EAAKyJ,yBAAyBvG,EAAWoG,GAE3CtJ,EAAK4G,WAAY,QACflC,MAAK,WACP1E,EAAKuG,kBAAkBmD,eACvB1J,EAAK2E,OAAOgF,KAAK3J,EAAKM,WAKtB+F,EAAA7M,UAAAgQ,0BAAA,SACNtG,EACAoG,GAKA/P,KAAKoP,KAAK9O,mBAAmBN,KAAKgQ,mBAAmBjQ,YACnD,CACE4J,UAASA,EACToG,MAAKA,KAIHjD,EAAA7M,UAAAiQ,yBAAA,SAAyBvG,EAAmCoG,GAClE,IAAKpG,EAAUkC,wBAAyB,CACtC,IAAM7B,EAAiBL,EAAUiC,oBAA2C5B,cAC5EsF,QAAQlM,MACN,eAAepD,KAAK+G,KAAI,+BAA+BiD,EAAa,IACpE,6FAEaA,EAAa,YAAYA,EAAa,2BAIrDL,EAAUkC,wBAA0B7L,KAAKiN,0BAG3C,IAAMd,EACJxC,EAAUwC,kBAAoBnM,KAAKoM,yBAAyBC,wBAAwB1C,EAAUkC,yBAI1FwE,EAAsBrQ,KAAKoP,KAAKkB,gBAAgBnE,EAAkB4D,GACpE/P,KAAKoN,sBACPpN,KAAK0D,SAASuB,aAAaoL,EAAoBE,SAASpJ,cAAenH,KAAKoN,qBAAsB,IAGpG,IAAMkB,EAAoB+B,EAAoBG,SAC9ClC,EAAkB3E,UAAYA,EAAUiC,oBACpC5L,KAAKwN,SACPxN,KAAKuO,oBAAoBD,EAAmBtO,KAAKwN,SAE/CxN,KAAK4O,SACP5O,KAAK2O,2BAA2BL,EAAmBtO,KAAK4O,SAE1D5O,KAAKkN,oBAAoB/J,KAAKmL,6BApMjCpE,EAAAA,UAAS9I,KAAA,CAAC,CACTC,SAAU,kCACV8I,SAAU,mMAxCVsG,EAAAA,gCAQAC,EAAAA,uBAc+BtG,SAxB/BuG,EAAAA,yBAKApJ,EAAAA,kBAUAD,EAAAA,iBAEAsJ,EAAAA,KAAIC,WAAA,CAAA,CAAA/F,KAkED+B,EAAAA,OAAMzL,KAAA,CAACkI,sCA5BT9H,EAAAA,yBACAA,EAAAA,0BACAA,EAAAA,uBACAA,EAAAA,sBAEAsP,EAAAA,qBAGAC,EAAAA,UAAS3P,KAAA,CAAC,OAAQ,CAAE4P,KAAM1P,EAAAA,iBAAkB2P,QAAQ,gCACpDC,EAAAA,aAAY9P,KAAA,CAAC+P,EAAqB,CAAEF,QAAQ,iCAC5CC,EAAAA,aAAY9P,KAAA,CAACgQ,EAAsB,CAAEH,QAAQ,gCAC7CC,EAAAA,aAAY9P,KAAA,CAACiQ,EAA6B,CAAEJ,QAAQ,oBAEpDzP,EAAAA,0BCtDD,SAAA8P,EACUxR,EACAC,GADAC,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,EAPmBC,KAAA6D,UAAW,SAUxCyN,EAAArR,UAAAC,YAAA,SAAYC,IACNA,EAAe,OAAKA,EAAkB,YACnCH,KAAKI,UACRJ,KAAKF,cAAcO,QACnBL,KAAKI,QAAUJ,KAAKF,cAAcQ,mBAAmBN,KAAKD,cAG5DC,KAAKO,eAID+Q,EAAArR,UAAAM,WAAA,WACN,IAAMC,EAAQR,KAAKQ,MACnB,GAAKA,IAAWA,EAAMqD,UAAarD,EAAMC,OAAzC,CAIA,IAAM8Q,EAAQ/Q,EAAMqD,UAAY7D,KAAK6D,SAAWrD,EAAMqD,SAAWrD,EAAMC,MACvET,KAAKI,QAAQQ,UAAUC,SAAQ,SAACC,GAC9BA,EAAKE,UAAYuQ,gCApCtBpQ,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,4DAJuEC,EAAAA,wBAAbC,EAAAA,iDAUnEC,EAAAA,MAAKJ,KAAA,CAAC,qCAGNI,EAAAA,MAAKJ,KAAA,CAAC,kCCKP,SAAAoQ,EACU1R,EACAC,GADAC,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,EAVeC,KAAA6D,UAAW,EAGb7D,KAAAyR,QAAS,SAUhCD,EAAAvR,UAAAC,YAAA,SAAYC,IACNA,EAAe,OAAKA,EAAkB,UAAKA,EAAgB,UACxDH,KAAKI,UACRJ,KAAKF,cAAcO,QACnBL,KAAKI,QAAUJ,KAAKF,cAAcQ,mBAAmBN,KAAKD,cAG5DC,KAAKO,eAIDiR,EAAAvR,UAAAM,WAAA,WACN,IAAMC,EAAQR,KAAKQ,MACfqD,EAAW7D,KAAK6D,SAEpB,GAAKrD,IAAWA,EAAMqD,UAAarD,EAAMC,OAAzC,CAKKT,KAAKyR,SACR5N,GAAW,GAGb,IAAM0N,EAAO/Q,EAAMqD,UAAYA,EAAWrD,EAAMqD,SAAWrD,EAAMC,MAC3DiR,EAAiBlR,EAAMqD,UAAYA,IAAa7D,KAAKyR,OAE3DzR,KAAKI,QAAQQ,UAAUC,SAAQ,SAACC,GAC1B4Q,EACF5Q,EAAKE,UAAYuQ,EAEjBzQ,EAAKoH,YAAcqJ,gCAnD1BpQ,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,wDAJuEC,EAAAA,wBAAbC,EAAAA,iDAUnEC,EAAAA,MAAKJ,KAAA,CAAC,kCAGNI,EAAAA,MAAKJ,KAAA,CAAC,+BAGNI,EAAAA,MAAKJ,KAAA,CAAC,mBCdT,aCIQuQ,EAAyCC,EAAAA,QAAOD,eAAhCE,EAAyBD,EAAAA,QAAOC,kCAGxD,SAAAC,YACiBA,EAAAC,sBAAP,SAA6B3O,GACnC,IAAM4O,EAAqB,IAAIC,EACzBC,EAAW9O,EAAM8O,SAOvB,OANIA,IACFF,EAAmBG,OAASD,EAASC,OACrCH,EAAmBI,WAAaF,EAASE,WACzCJ,EAAmBK,KAAOH,EAASG,MAG9BC,EAAAA,WAAgBN,IAGzBF,EAAA7R,UAAAsS,aAAA,SAAaC,EAAeC,GAC1B,OAAOC,EAAAA,KAAYf,EAAea,EAAOC,IACtCxD,KAAK0D,EAAAA,WAAWb,EAAcC,yBAGnCD,EAAA7R,UAAA2S,mBAAA,SACEJ,EACAK,EACAJ,GAEA,OAAOC,EAAAA,KAAYb,EAAqBgB,EAAiBL,EAAOC,IAC7DxD,KAAK0D,EAAAA,WAAWb,EAAcC,kDAzBpCrF,EAAAA,8BCiBC,SAAAoG,EACUhT,EACAC,EACAgT,GAFA/S,KAAAF,cAAAA,EACAE,KAAAD,YAAAA,EACAC,KAAA+S,SAAAA,EARe/S,KAAA6D,UAAW,SAWpCiP,EAAA7S,UAAAC,YAAA,SAAYC,IACNA,EAAe,OAAKA,EAAgB,UACjCH,KAAKI,UACRJ,KAAKF,cAAcO,QACnBL,KAAKI,QAAUJ,KAAKF,cAAcQ,mBAAmBN,KAAKD,cAG5DC,KAAKO,eAIDuS,EAAA7S,UAAAM,WAAA,WAAA,IAAAkG,EAAAzG,KACAQ,EAAQR,KAAKQ,MAEnB,GAAKA,IAAWA,EAAMqD,UAAarD,EAAMC,OAAzC,CAIA,IAAM8Q,EAAO/Q,EAAMqD,UAAY7D,KAAK6D,SAAWrD,EAAMqD,SAAWrD,EAAMC,MAChEiR,EAAiBlR,EAAMqD,UAAY7D,KAAK6D,SAE9C7D,KAAKI,QAAQQ,UAAUC,SAAQ,SAACC,GAC1B4Q,EACF5Q,EAAKE,UAAYuQ,EAEjBzQ,EAAKoH,YAAczB,EAAKsM,SAASC,UAAUzB,EAAM9K,EAAKwM,OAAQxM,EAAKyM,SAAUzM,EAAK0M,sCApDzFhS,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,wDAJuEC,EAAAA,wBAAbC,EAAAA,mBAD7D6R,EAAAA,4CAWN5R,EAAAA,MAAKJ,KAAA,CAAC,kCAGNI,EAAAA,MAAKJ,KAAA,CAAC,kCAGNI,EAAAA,MAAKJ,KAAA,CAAC,kCAGNI,EAAAA,MAAKJ,KAAA,CAAC,iCAGNI,EAAAA,MAAKJ,KAAA,CAAC,mBCbT,iCARC8I,EAAAA,UAAS9I,KAAA,CAAC,CACTC,SAAU,uBACV8I,SAAU,kRAOT3I,EAAAA,0BCqCD,SAAA6R,EACUjH,EACAW,EACAZ,EACiDc,GAHjDjN,KAAAoM,yBAAAA,EACApM,KAAA+M,QAAAA,EACA/M,KAAAmM,iBAAAA,EACiDnM,KAAAiN,0BAAAA,EAlBnDjN,KAAAmN,WAAY,SAMpBvL,OAAA2L,eACI8F,EAAApT,UAAA,SAAM,KADV,SACWQ,GACTT,KAAKwN,QAAU/M,GACVT,KAAKyN,SAAWhN,IACnBT,KAAKyN,QAAUzN,KAAK+M,QAAQW,KAAKjN,GAAO4B,2CAW5CgR,EAAApT,UAAAC,YAAA,SAAYC,GACNA,EAAmB,WACrBH,KAAK6N,WAIDwF,EAAApT,UAAAsO,oBAAA,SAAoBD,EAAwBE,GAClD5M,OAAOgD,QAAQ4J,GAAQ3N,SAAQ,SAACgE,OAAAC,EAAAxC,EAAAuC,EAAA,GAAC4J,EAAK3J,EAAA,GAAE4J,EAAU5J,EAAA,GAAM,OAAAwJ,EAAkBG,GAASC,MAG7E2E,EAAApT,UAAA0O,2BAAA,SAA2BL,EAAwBM,GAAnD,IAAAnI,EAAAzG,KACN4B,OAAOiN,KAAKD,GACTE,QAAO,SAACC,GAAW,OAAAT,EAAkBS,IAAWT,EAAkBS,aAAmBC,EAAAA,cACrFnO,SAAQ,SAACkO,GAAY,OAAAT,EAAkBS,GACrCE,KACDC,EAAAA,WAAU,WAAM,OAACzI,EAAK0G,cAEvBgC,UAAUP,EAAQG,QAGfsE,EAAApT,UAAA4N,QAAA,WAAA,IAAApH,EAAAzG,MACNA,KAAKoP,KAAK/O,QAELL,KAAK2J,aAIgDI,EAAe/J,KAAK2J,WAC1E+B,QAAQC,QAAQ,CAAEE,wBAAyBrC,EAAcoC,oBAAqB5L,KAAK2J,YACnF3J,KAAKmM,iBAAiBZ,aAAavL,KAAK2J,YAE3BwB,MAAK,SAACxB,GACrB,IAAKA,EAAUkC,wBAAyB,CACtC,IAAM7B,EAAiBL,EAAUiC,oBAA2C5B,cAC5EsF,QAAQlM,MACN,yCAAyC4G,EAAa,IAAK,iGAE9CA,EAAa,YAAYA,EAAa,6BAIrDL,EAAUkC,wBAA0BpF,EAAKwG,0BAG3C,IAAMd,EACJxC,EAAUwC,kBAAoB1F,EAAK2F,yBAAyBC,wBAAwB1C,EAAUkC,yBAE1FyC,EAAoB7H,EAAK2I,KAAKkB,gBAAgBnE,EAAkB,GAAGqE,SACzElC,EAAkB3E,UAAYA,EAAUiC,oBACpCnF,EAAK+G,SACP/G,EAAK8H,oBAAoBD,EAAmB7H,EAAK+G,SAE/C/G,EAAKmI,SACPnI,EAAKkI,2BAA2BL,EAAmB7H,EAAKmI,sCAnF/D1E,EAAAA,UAAS9I,KAAA,CAAC,CACTC,SAAU,sBACV8I,SAAU,2FAzBVsG,EAAAA,gCAIAC,EAAAA,uBAU+BtG,SAP/BwG,EAAAA,KAAIC,WAAA,CAAA,CAAA/F,KA2CD+B,EAAAA,OAAMzL,KAAA,CAACkI,2CAhBT9H,EAAAA,uBACAA,EAAAA,oBACAuP,EAAAA,UAAS3P,KAAA,CAAC,OAAQ,CAAE4P,KAAM1P,EAAAA,iBAAkB2P,QAAQ,oBAEpDzP,EAAAA,0BCmCH,SAAA8R,YAKSA,EAAAC,QAAP,WACE,MAAO,CACLC,SAAUF,EACVG,UAAW,CACT3B,EACAsB,EAAAA,SACAhJ,KAMCkJ,EAAAI,SAAP,SAAgBlI,GACd,MAAO,CACLgI,SAAUF,EACVG,UAAW,CACT,CAAEE,QAASC,EAAAA,6BAA8BC,SAAUrI,EAAWsI,OAAO,GACrE,CAAEH,QAASI,EAAAA,OAAQF,SAAU,GAAIC,OAAO,GACxC,CAAEH,QAASpK,EAAmBsK,SAAUrI,MASvC8H,EAAAU,eAAP,SAAsBzJ,EAAoCC,GACxD,MAAO,CACLgJ,SAAUF,EACVG,UAASpQ,EAAA,CACP,CACEsQ,QAASC,EAAAA,6BACTC,SAAUtJ,EACVuJ,OAAO,GAET,CAAEH,QAASxK,EAAwB0K,SAAUtJ,GAC7C,CAAEoJ,QAAStK,EAA6BwK,SAAUrJ,GAAkB,IACpE,CAAEmJ,QAASI,EAAAA,OAAQF,SAAUrJ,GAAkB,GAAIsJ,OAAO,GAC1D,CAAEH,QAASrK,EAAyCuK,SAAUI,IAC1DX,EAAUC,UAAUE,sCAtF/BS,EAAAA,SAAQ9S,KAAA,CAAC,CACR+S,QAAS,CACPC,EAAAA,cAEFC,aAAc,CACZxU,EACA4D,EACA+D,EACAW,EACAQ,EACAmK,EACA3B,EACAC,EACAC,EACAgC,EACAvG,EACAtD,EACA8H,EACAE,EACAyC,GAEFK,QAAS,CACPzU,EACA4D,EACAqP,EACAtL,EACAW,EACAQ,EACAwI,EACAC,EACAiC,EACAvG,EACAuE,EACAC,EACAE,GAEF+C,gBAAiB,CACf/K,EACAyK","sourcesContent":["import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { FileField } from './rendering-field';\r\n\r\n/**\r\n * File fields cannot be managed via the EE. We never output \"editable.\"\r\n */\r\n@Directive({ selector: '[scFile]' })\r\nexport class FileDirective implements OnChanges {\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scFile') field: FileField;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['field']) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n\r\n if (!field || (!field.value && !field.src)) {\r\n return;\r\n }\r\n\r\n const file = field.src ? field : field.value;\r\n this.viewRef.rootNodes.forEach((node) => {\r\n node.href = file.src;\r\n if (node.innerHTML === '') {\r\n node.innerHTML = file.title || file.displayName;\r\n }\r\n });\r\n }\r\n}\r\n","/*! *****************************************************************************\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 { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { mediaApi } from '@sitecore-jss/sitecore-jss';\r\nimport { ImageField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scImage]' })\r\nexport class ImageDirective implements OnChanges {\r\n private inlineRef: HTMLSpanElement | null = null;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImage') field: ImageField | '';\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImageEditable') editable = true;\r\n\r\n /**\r\n * Custom regexp that finds media URL prefix that will be replaced by `/-/jssmedia` or `/~/jssmedia`.\r\n * @example\r\n * /\\/([-~]{1})assets\\//i\r\n * /-assets/website -> /-/jssmedia/website\r\n * /~assets/website -> /~/jssmedia/website\r\n */\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImageMediaUrlPrefix') mediaUrlPrefix?: RegExp;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImageUrlParams') urlParams = {};\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImageAttrs') attrs = {};\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['editable'] || changes['urlParams'] || changes['attrs']) {\r\n this.viewContainer.clear();\r\n if (this.inlineRef) {\r\n this.inlineRef.remove();\r\n this.inlineRef = null;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const overrideAttrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n const media = this.field;\r\n\r\n if (!media || (!media.editable && !media.value && !media.src)) {\r\n return;\r\n }\r\n\r\n let attrs: any = {};\r\n\r\n // we likely have an experience editor value, should be a string\r\n if (this.editable && media.editable) {\r\n const foundImg = mediaApi.findEditorImageTag(media.editable);\r\n if (!foundImg) {\r\n return this.renderInlineWrapper(media.editable);\r\n }\r\n attrs = this.getImageAttrs(foundImg.attrs, overrideAttrs, this.urlParams);\r\n if (!attrs) {\r\n return this.renderInlineWrapper(media.editable);\r\n }\r\n const tempImg: HTMLImageElement = this.renderer.createElement('img');\r\n Object.entries(attrs).forEach(([key, attrValue]: [string, any]) =>\r\n tempImg.setAttribute(key, attrValue)\r\n );\r\n const editableMarkup = media.editable.replace(foundImg.imgTag, tempImg.outerHTML);\r\n return this.renderInlineWrapper(editableMarkup);\r\n }\r\n\r\n // some wise-guy/gal is passing in a 'raw' image object value\r\n const img = media.src ? media : media.value;\r\n if (!img) {\r\n return null;\r\n }\r\n\r\n attrs = this.getImageAttrs(img, overrideAttrs, this.urlParams);\r\n if (attrs) {\r\n this.renderTemplate(attrs);\r\n }\r\n }\r\n\r\n private getImageAttrs(fieldAttrs: any, parsedAttrs: any, imageParams: any): any {\r\n const combinedAttrs = {\r\n ...fieldAttrs,\r\n ...parsedAttrs,\r\n };\r\n // tslint:disable-next-line:prefer-const\r\n let { src, srcSet, ...otherAttrs } = combinedAttrs;\r\n if (!src) {\r\n return null;\r\n }\r\n const newAttrs = {\r\n ...otherAttrs,\r\n };\r\n // update image URL for jss handler and image rendering params\r\n src = mediaApi.updateImageUrl(src, imageParams, this.mediaUrlPrefix);\r\n if (srcSet) {\r\n // replace with HTML-formatted srcset, including updated image URLs\r\n newAttrs.srcSet = mediaApi.getSrcSet(src, srcSet, imageParams, this.mediaUrlPrefix);\r\n } else {\r\n newAttrs.src = src;\r\n }\r\n return newAttrs;\r\n }\r\n\r\n private renderTemplate(imageProps: any) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(imageProps).forEach(([key, imgPropVal]: [string, any]) => this.renderer.setAttribute(node, key, imgPropVal));\r\n });\r\n }\r\n\r\n private getElementAttrs(): { [key: string]: any; } {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n return {};\r\n }\r\n const attrs: { [key: string]: any; } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n return attrs;\r\n }\r\n\r\n private renderInlineWrapper(editable: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-image-wrapper';\r\n span.innerHTML = editable;\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n parentNode.removeChild(this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scLink]' })\r\nexport class LinkDirective implements OnChanges {\r\n private inlineRef: HTMLSpanElement | null = null;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scLinkEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scLinkAttrs') attrs: any = {};\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scLink') field: LinkField;\r\n\r\n constructor(\r\n protected viewContainer: ViewContainerRef,\r\n protected templateRef: TemplateRef<any>,\r\n protected renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['editable'] || changes['attrs']) {\r\n this.viewContainer.clear();\r\n if (this.inlineRef) {\r\n this.inlineRef.remove();\r\n this.inlineRef = null;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n if (this.editable && field && field.editableFirstPart && field.editableLastPart) {\r\n this.renderInlineWrapper(field.editableFirstPart, field.editableLastPart);\r\n } else if (field && (field.href || field.value)) {\r\n const props = field.href ? field : field.value;\r\n const linkText = field.text || field.value.text || field.href || field.value.href;\r\n const mergedAttrs = { ...props, ...this.attrs };\r\n this.renderTemplate(mergedAttrs, linkText);\r\n }\r\n }\r\n\r\n protected renderTemplate(props: any, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]: [string, any]) => {\r\n if (key === 'href') {\r\n const isInvalidLink = !propValue || /^https?:\\/\\/$/.test(propValue);\r\n\r\n if (isInvalidLink) {\r\n if (!node.href) {\r\n return;\r\n }\r\n\r\n propValue = node.href;\r\n }\r\n }\r\n\r\n if (key === 'class' && node.className) {\r\n propValue += ` ${node.className}`;\r\n }\r\n\r\n this.renderer.setAttribute(node, key, propValue)\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n\r\n private renderInlineWrapper(editableFirstPart: string, editableLastPart: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-link-wrapper';\r\n span.innerHTML = editableFirstPart + editableLastPart;\r\n\r\n // assign attributes from template to inline wrapper\r\n const attrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n Object.entries(attrs).forEach(([key, attrValue]: [string, any]) => \r\n this.renderer.setAttribute(span, key, attrValue)\r\n );\r\n\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n\r\n private getElementAttrs(): { [key: string]: any; } {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n return {};\r\n }\r\n const attrs: { [key: string]: any; } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n return attrs;\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LinkDirective } from './link.directive';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scRouterLink]' })\r\nexport class RouterLinkDirective extends LinkDirective {\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRouterLinkEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRouterLinkAttrs') attrs: any = {};\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRouterLink') field: LinkField;\r\n\r\n constructor(\r\n viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<any>,\r\n renderer: Renderer2,\r\n elementRef: ElementRef,\r\n private router: Router\r\n ) {\r\n super(viewContainer, templateRef, renderer, elementRef);\r\n }\r\n\r\n protected renderTemplate(props: any, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]: [string, any]) => {\r\n this.renderer.setAttribute(node, key, propValue);\r\n\r\n if (key === 'href') {\r\n this.renderer.listen(node, 'click', (event) => {\r\n this.router.navigate([propValue]);\r\n event.preventDefault();\r\n });\r\n }\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Router, NavigationExtras } from '@angular/router';\r\nimport { LinkDirective } from './link.directive';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scGenericLink]' })\r\nexport class GenericLinkDirective extends LinkDirective {\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scGenericLinkEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scGenericLinkAttrs') attrs: any = {};\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scGenericLink') field: LinkField;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scGenericLinkExtras') extras?: NavigationExtras;\r\n\r\n constructor(\r\n viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<any>,\r\n renderer: Renderer2,\r\n elementRef: ElementRef,\r\n private router: Router\r\n ) {\r\n super(viewContainer, templateRef, renderer, elementRef);\r\n }\r\n\r\n protected renderTemplate(props: any, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]: [string, any]) => {\r\n if (key === 'href' && !this.isAbsoluteUrl(propValue)) {\r\n const urlTree = this.router.createUrlTree([propValue], this.extras);\r\n this.renderer.setAttribute(node, key, this.router.serializeUrl(urlTree));\r\n this.renderer.listen(node, 'click', (event) => {\r\n this.router.navigate([propValue], this.extras);\r\n event.preventDefault();\r\n });\r\n } else {\r\n this.renderer.setAttribute(node, key, propValue);\r\n }\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n\r\n private isAbsoluteUrl(url?: string) {\r\n if (url == null) {\r\n return false;\r\n }\r\n if (typeof url !== 'string') {\r\n throw new TypeError('Expected a string');\r\n }\r\n\r\n return /^[a-z][a-z0-9+.-]*:/.test(url);\r\n }\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\n\r\n/** Registers a statically loaded component */\r\nexport class ComponentNameAndType {\r\n name: string;\r\n type: Type<any>;\r\n}\r\n\r\n/** Registers a lazily loaded component by name and module to lazy load when it's needed */\r\nexport interface ComponentNameAndModule {\r\n /** Name of the component */\r\n path: string;\r\n /**\r\n * Dynamic import of the component,\r\n * e.g. () => import('./path/to/lazyloadedcomponent.module').then(m => m.LazyLoadedComponentModuleExportName)\r\n */\r\n loadChildren: () => Promise<any>;\r\n}\r\n\r\nexport function instanceOfComponentNameAndType(object: any): object is ComponentNameAndType {\r\n return 'type' in object;\r\n}\r\n\r\nexport function instanceOfComponentNameAndModule(object: any): object is ComponentNameAndModule {\r\n return 'module' in object;\r\n}\r\n\r\nexport const PLACEHOLDER_COMPONENTS = new InjectionToken<ComponentNameAndType[]>('Sc.placeholder.components');\r\nexport const PLACEHOLDER_LAZY_COMPONENTS = new InjectionToken<ComponentNameAndType[]>('Sc.placeholder.lazyComponents');\r\nexport const PLACEHOLDER_MISSING_COMPONENT_COMPONENT = new InjectionToken<Type<any>>('Sc.placeholder.missingComponentComponent');\r\nexport const DYNAMIC_COMPONENT = new InjectionToken<Type<any> | {[s: string]: any}> ('Sc.placeholder.dynamicComponent');\r\n","import { Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\n\r\n@Component({\r\n selector: 'sc-raw',\r\n template: ``,\r\n})\r\nexport class RawComponent implements OnInit {\r\n @Input() rendering: HtmlElementRendering;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n const el = this.renderer.createElement(this.rendering.name);\r\n const contents = this.renderer.createText(this.rendering.contents || '');\r\n const attributes = this.rendering.attributes;\r\n for (const attr in attributes) {\r\n if ((attributes as any).hasOwnProperty(attr)) {\r\n const value = attributes[attr];\r\n this.renderer.setAttribute(el, attr, value || '');\r\n }\r\n }\r\n\r\n this.renderer.appendChild(el, contents);\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, el, this.elementRef.nativeElement);\r\n parentNode.removeChild(this.elementRef.nativeElement);\r\n }\r\n}\r\n","import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\n\r\nexport function isRawRendering(rendering: HtmlElementRendering | ComponentRendering): rendering is HtmlElementRendering {\r\n return !(rendering as ComponentRendering).componentName && (rendering as HtmlElementRendering).name !== undefined;\r\n}\r\n","import {\r\n ComponentFactory,\r\n Inject,\r\n Injectable,\r\n Injector,\r\n Type,\r\n Compiler,\r\n NgModuleFactory\r\n} from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\nimport {\r\n ComponentNameAndModule,\r\n ComponentNameAndType,\r\n DYNAMIC_COMPONENT,\r\n PLACEHOLDER_COMPONENTS,\r\n PLACEHOLDER_LAZY_COMPONENTS\r\n} from './components/placeholder.token';\r\nimport { RawComponent } from './components/raw.component';\r\nimport { isRawRendering } from './components/rendering';\r\n\r\nexport interface ComponentFactoryResult {\r\n componentImplementation?: Type<any>;\r\n componentDefinition: ComponentRendering | HtmlElementRendering;\r\n componentFactory?: ComponentFactory<any>;\r\n}\r\n\r\n@Injectable()\r\nexport class JssComponentFactoryService {\r\n private componentMap: Map<string, Type<any>>;\r\n private lazyComponentMap: Map<string, ComponentNameAndModule>;\r\n\r\n constructor(\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n @Inject(PLACEHOLDER_COMPONENTS) private components: ComponentNameAndType[],\r\n @Inject(PLACEHOLDER_LAZY_COMPONENTS) private lazyComponents: ComponentNameAndModule[]\r\n ) {\r\n this.componentMap = new Map();\r\n this.lazyComponentMap = new Map();\r\n\r\n this.components.forEach((c) => this.componentMap.set(c.name, c.type));\r\n\r\n if (this.lazyComponents) {\r\n this.lazyComponents.forEach((c) => this.lazyComponentMap.set(c.path, c));\r\n }\r\n }\r\n\r\n private loadModuleFactory(lazyComponent: ComponentNameAndModule): Promise<NgModuleFactory<any>> {\r\n return lazyComponent.loadChildren().then(loaded => {\r\n if (loaded instanceof NgModuleFactory) {\r\n return loaded\r\n } else {\r\n return this.compiler.compileModuleAsync(loaded)\r\n }\r\n })\r\n }\r\n\r\n getComponent(component: ComponentRendering): Promise<ComponentFactoryResult> {\r\n const loadedComponent = this.componentMap.get(component.componentName);\r\n\r\n if (loadedComponent) {\r\n return Promise.resolve({\r\n componentDefinition: component,\r\n componentImplementation: this.componentMap.get(component.componentName),\r\n });\r\n }\r\n\r\n const lazyComponent = this.lazyComponentMap.get(component.componentName);\r\n\r\n if (lazyComponent) {\r\n return this.loadModuleFactory(lazyComponent)\r\n .then((ngModuleFactory) => {\r\n let componentType = null;\r\n const moduleRef = ngModuleFactory.create(this.injector);\r\n const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);\r\n if (!dynamicComponentType) {\r\n throw new Error(\r\n // tslint:disable-next-line:max-line-length\r\n `JssComponentFactoryService: Lazy load module for component \"${lazyComponent.path}\" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`\r\n );\r\n }\r\n\r\n if (component.componentName in dynamicComponentType) {\r\n componentType = (dynamicComponentType as {[s: string]: any})[component.componentName];\r\n } else {\r\n if (typeof dynamicComponentType === 'function') {\r\n componentType = dynamicComponentType;\r\n } else {\r\n throw new Error(\r\n // tslint:disable-next-line:max-line-length\r\n `JssComponentFactoryService: Lazy load module for component \"${lazyComponent.path}\" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`\r\n );\r\n }\r\n }\r\n\r\n return {\r\n componentDefinition: component,\r\n componentImplementation: componentType,\r\n componentFactory: moduleRef.componentFactoryResolver.resolveComponentFactory(componentType),\r\n };\r\n });\r\n }\r\n\r\n return Promise.resolve({\r\n componentDefinition: component,\r\n });\r\n }\r\n\r\n getComponents(components: Array<ComponentRendering | HtmlElementRendering>): Promise<ComponentFactoryResult[]> {\r\n // acquire all components and keep them in order while handling their potential async-ness\r\n return Promise.all(\r\n components.map((component) => isRawRendering(component)\r\n ? this.getRawComponent(component)\r\n : this.getComponent(component))\r\n );\r\n }\r\n\r\n private getRawComponent(component: HtmlElementRendering): Promise<ComponentFactoryResult> {\r\n return Promise.resolve({\r\n componentImplementation: RawComponent,\r\n componentDefinition: component,\r\n });\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[scPlaceholderLoading]',\r\n})\r\nexport class PlaceholderLoadingDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[renderEach]',\r\n})\r\nexport class RenderEachDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[renderEmpty]',\r\n})\r\nexport class RenderEmptyDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ContentChild,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\nimport { Observable } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport { ComponentFactoryResult, JssComponentFactoryService } from '../jss-component-factory.service';\r\nimport { PlaceholderLoadingDirective } from './placeholder-loading.directive';\r\nimport {\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT\r\n} from './placeholder.token';\r\nimport { RenderEachDirective } from './render-each.directive';\r\nimport { RenderEmptyDirective } from './render-empty.directive';\r\nimport { isRawRendering } from './rendering';\r\n\r\nfunction getPlaceholder(rendering: ComponentRendering, name: string) {\r\n if (rendering && rendering.placeholders && Object.keys(rendering.placeholders).length > 0) {\r\n return rendering.placeholders[name];\r\n }\r\n return null;\r\n}\r\n\r\n@Component({\r\n selector: 'sc-placeholder,[sc-placeholder]',\r\n template: `\r\n <ng-template *ngIf=\"isLoading\" [ngTemplateOutlet]=\"placeholderLoading?.templateRef\"></ng-template>\r\n <ng-template #view></ng-template>\r\n `,\r\n})\r\nexport class PlaceholderComponent implements OnInit, OnChanges, DoCheck, OnDestroy {\r\n private _inputs: { [key: string]: any };\r\n private _differ: KeyValueDiffer<string, any>;\r\n private _componentInstances: any[] = [];\r\n private destroyed = false;\r\n private parentStyleAttribute: string = '';\r\n public isLoading = true;\r\n\r\n @Input() name?: string;\r\n @Input() rendering: ComponentRendering;\r\n @Input() renderings?: Array<ComponentRendering | HtmlElementRendering>;\r\n @Input() outputs: { [k: string]: (eventType: any) => void };\r\n\r\n @Output()\r\n loaded = new EventEmitter<string | undefined>();\r\n\r\n @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n @ContentChild(RenderEachDirective, { static: true }) renderEachTemplate: RenderEachDirective;\r\n @ContentChild(RenderEmptyDirective, { static: true }) renderEmptyTemplate: RenderEmptyDirective;\r\n @ContentChild(PlaceholderLoadingDirective, { static: true }) placeholderLoading?: PlaceholderLoadingDirective;\r\n\r\n @Input()\r\n set inputs(value: { [key: string]: any }) {\r\n this._inputs = value;\r\n if (!this._differ && value) {\r\n this._differ = this.differs.find(value).create();\r\n }\r\n }\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private differs: KeyValueDiffers,\r\n private componentFactory: JssComponentFactoryService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n @Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT) private missingComponentComponent: Type<any>\r\n ) { }\r\n\r\n ngOnInit() {\r\n // just to ensure the element exists\r\n const elem = this.elementRef.nativeElement;\r\n\r\n if (elem) {\r\n const attributes: NamedNodeMap = elem.attributes;\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr: Attr | null = attributes.item(i);\r\n if (attr && attr.name.indexOf('_ngcontent') !== -1) {\r\n this.parentStyleAttribute = attr.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed = true;\r\n this._componentInstances = [];\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['rendering'] || changes['renderings']) {\r\n this._render();\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n if (!this._differ || !this._inputs || this._componentInstances.length === 0) {\r\n return;\r\n }\r\n\r\n const changes = this._differ.diff(this._inputs);\r\n if (!changes) {\r\n return;\r\n }\r\n const updates: { [key: string]: any } = {};\r\n changes.forEachRemovedItem((change) => updates[change.key] = null);\r\n changes.forEachAddedItem((change) => updates[change.key] = change.currentValue);\r\n changes.forEachChangedItem((change) => updates[change.key] = change.currentValue);\r\n this._componentInstances.forEach((componentInstance) => this._setComponentInputs(componentInstance, updates));\r\n }\r\n\r\n private _setComponentInputs(componentInstance: any, inputs: { [key: string]: any }) {\r\n Object.entries(inputs).forEach(([input, inputValue]) => componentInstance[input] = inputValue);\r\n }\r\n\r\n private _subscribeComponentOutputs(componentInstance: any, outputs: { [k: string]: (eventType: any) => void }) {\r\n Object.keys(outputs)\r\n .filter((output) => componentInstance[output] && componentInstance[output] instanceof Observable)\r\n .forEach((output) => (componentInstance[output] as Observable<any>)\r\n .pipe(\r\n takeWhile(() => !this.destroyed)\r\n )\r\n .subscribe(outputs[output]));\r\n }\r\n\r\n private _render() {\r\n this._componentInstances = [];\r\n this.view.clear();\r\n\r\n if (!this.rendering && !this.renderings) {\r\n return;\r\n }\r\n\r\n if (!this.name && !this.renderings) {\r\n // tslint:disable-next-line:max-line-length\r\n console.warn(`Placeholder name was not specified, and explicit renderings array was not passed. Placeholder requires either name and rendering, or renderings.`);\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n const placeholder = this.renderings || getPlaceholder(this.rendering, this.name || '');\r\n\r\n if (!placeholder) {\r\n console.warn(`Placeholder '${this.name}' was not found in the current rendering data`, JSON.stringify(this.rendering, null, 2));\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n // if the placeholder is empty (contains only raw renderings), then we may need to use the empty template if it's defined\r\n const placeholderIsEmpty = placeholder.every((rendering: ComponentRendering | HtmlElementRendering) => isRawRendering(rendering));\r\n\r\n if (this.renderEmptyTemplate && placeholderIsEmpty) {\r\n this.view.createEmbeddedView(this.renderEmptyTemplate.templateRef,\r\n {\r\n renderings: placeholder,\r\n });\r\n this.isLoading = false;\r\n } else {\r\n this.componentFactory.getComponents(placeholder)\r\n .then((components) => components.forEach((rendering, index) => {\r\n if (this.renderEachTemplate && !isRawRendering(rendering.componentDefinition)) {\r\n this._renderTemplatedComponent(rendering.componentDefinition, index);\r\n } else {\r\n this._renderEmbeddedComponent(rendering, index);\r\n }\r\n this.isLoading = false;\r\n })).then(() => {\r\n this.changeDetectorRef.markForCheck();\r\n this.loaded.emit(this.name);\r\n });\r\n }\r\n }\r\n\r\n private _renderTemplatedComponent(\r\n rendering: ComponentRendering | HtmlElementRendering,\r\n index: number\r\n ) {\r\n // the render-each template takes care of all component mapping etc\r\n // generally using <sc-render-component> which is about like _renderEmbeddedComponent()\r\n // as a separate component\r\n this.view.createEmbeddedView(this.renderEachTemplate.templateRef,\r\n {\r\n rendering,\r\n index,\r\n });\r\n }\r\n\r\n private _renderEmbeddedComponent(rendering: ComponentFactoryResult, index: number) {\r\n if (!rendering.componentImplementation) {\r\n const componentName = (rendering.componentDefinition as ComponentRendering).componentName;\r\n console.error(\r\n `Placeholder ${this.name} contains unknown component ${componentName}.`,\r\n `Ensure component is mapped, like:\r\n JssModule.withComponents([\r\n { name: '${componentName}', type: ${componentName}Component }\r\n ])`\r\n );\r\n\r\n rendering.componentImplementation = this.missingComponentComponent;\r\n }\r\n\r\n const componentFactory =\r\n rendering.componentFactory || this.componentFactoryResolver.resolveComponentFactory(rendering.componentImplementation);\r\n\r\n // apply the parent style attribute _ngcontent\r\n // work-around for https://github.com/angular/angular/issues/12215\r\n const createdComponentRef = this.view.createComponent(componentFactory, index);\r\n if (this.parentStyleAttribute) {\r\n this.renderer.setAttribute(createdComponentRef.location.nativeElement, this.parentStyleAttribute, '');\r\n }\r\n\r\n const componentInstance = createdComponentRef.instance;\r\n componentInstance.rendering = rendering.componentDefinition;\r\n if (this._inputs) {\r\n this._setComponentInputs(componentInstance, this._inputs);\r\n }\r\n if (this.outputs) {\r\n this._subscribeComponentOutputs(componentInstance, this.outputs);\r\n }\r\n this._componentInstances.push(componentInstance);\r\n }\r\n}\r\n","import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { RichTextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scRichText]',\r\n})\r\nexport class RichTextDirective implements OnChanges {\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRichTextEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRichText') field: RichTextField;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['editable']) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n const html = (field.editable && this.editable ? field.editable : field.value);\r\n this.viewRef.rootNodes.forEach((node) => {\r\n node.innerHTML = html;\r\n });\r\n }\r\n}\r\n","import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scText]',\r\n})\r\nexport class TextDirective implements OnChanges {\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scTextEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scTextEncode') encode = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scText') field: TextField;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['editable'] || changes['encode']) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n let editable = this.editable;\r\n\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n // can't use editable value if we want to output unencoded\r\n if (!this.encode) {\r\n editable = false;\r\n }\r\n\r\n const html = field.editable && editable ? field.editable : field.value;\r\n const setDangerously = field.editable && editable || !this.encode;\r\n\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (setDangerously) {\r\n node.innerHTML = html;\r\n } else {\r\n node.textContent = html;\r\n }\r\n });\r\n }\r\n}\r\n","import { LayoutServiceContextData } from '@sitecore-jss/sitecore-jss';\r\n\r\nexport class LayoutServiceError {\r\n status: number;\r\n statusText: string;\r\n data?: { sitecore?: LayoutServiceContextData };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { dataApi, LayoutServiceData, LayoutServiceRequestOptions, PlaceholderData } from '@sitecore-jss/sitecore-jss';\r\nimport { from as fromPromise, Observable, throwError as observableThrow } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { LayoutServiceError } from './layout-service-error';\r\n\r\nconst { fetchRouteData, fetchPlaceholderData } = dataApi;\r\n\r\n@Injectable()\r\nexport class LayoutService {\r\n private static getLayoutServiceError(error: any): Observable<LayoutServiceError> {\r\n const layoutServiceError = new LayoutServiceError();\r\n const response = error.response;\r\n if (response) {\r\n layoutServiceError.status = response.status;\r\n layoutServiceError.statusText = response.statusText;\r\n layoutServiceError.data = response.data;\r\n }\r\n\r\n return observableThrow(layoutServiceError);\r\n }\r\n\r\n getRouteData(route: string, options: LayoutServiceRequestOptions<LayoutServiceData>): Observable<LayoutServiceData | LayoutServiceError> {\r\n return fromPromise(fetchRouteData(route, options))\r\n .pipe(catchError(LayoutService.getLayoutServiceError));\r\n }\r\n\r\n getPlaceholderData(\r\n route: string,\r\n placeholderName: string,\r\n options: LayoutServiceRequestOptions<PlaceholderData>\r\n ): Observable<PlaceholderData | LayoutServiceError> {\r\n return fromPromise(fetchPlaceholderData(placeholderName, route, options))\r\n .pipe(catchError(LayoutService.getLayoutServiceError));\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scDate]',\r\n})\r\nexport class DateDirective implements OnChanges {\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDateFormat') format?: string;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDateTimezone') timezone?: string;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDateLocale') locale?: string;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDateEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDate') field: TextField;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n private datePipe: DatePipe\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['format']) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n const html = field.editable && this.editable ? field.editable : field.value;\r\n const setDangerously = field.editable && this.editable;\r\n\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (setDangerously) {\r\n node.innerHTML = html;\r\n } else {\r\n node.textContent = this.datePipe.transform(html, this.format, this.timezone, this.locale);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sc-missing-component',\r\n template: `\r\n<div style=\"background: darkorange; outline: 5px solid orange; padding: 10px; color: white; max-width: 500px;\">\r\n <h2>{{ rendering.componentName }}</h2>\r\n <p>JSS component is missing Angular component implementation.</p>\r\n</div>`,\r\n})\r\nexport class MissingComponentComponent {\r\n @Input() rendering: any;\r\n}\r\n","import {\r\n Component,\r\n ComponentFactoryResolver,\r\n Inject,\r\n Input,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n OnChanges,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\nimport { Observable } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport { ComponentFactoryResult, JssComponentFactoryService } from '../jss-component-factory.service';\r\nimport { PLACEHOLDER_MISSING_COMPONENT_COMPONENT } from './placeholder.token';\r\nimport { RawComponent } from './raw.component';\r\nimport { isRawRendering } from './rendering';\r\n\r\n/**\r\n * Renders a single JSS component given a rendering definition.\r\n * Useful inside templated placeholders.\r\n */\r\n@Component({\r\n selector: 'sc-render-component',\r\n template: `\r\n <ng-template #view></ng-template>\r\n `,\r\n})\r\nexport class RenderComponentComponent implements OnChanges {\r\n private _inputs: { [key: string]: any };\r\n private _differ: KeyValueDiffer<string, any>;\r\n private destroyed = false;\r\n\r\n @Input() rendering: ComponentRendering | HtmlElementRendering;\r\n @Input() outputs: { [k: string]: (eventType: any) => void };\r\n @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n\r\n @Input()\r\n set inputs(value: { [key: string]: any }) {\r\n this._inputs = value;\r\n if (!this._differ && value) {\r\n this._differ = this.differs.find(value).create();\r\n }\r\n }\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private differs: KeyValueDiffers,\r\n private componentFactory: JssComponentFactoryService,\r\n @Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT) private missingComponentComponent: Type<any>\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['rendering']) {\r\n this._render();\r\n }\r\n }\r\n\r\n private _setComponentInputs(componentInstance: any, inputs: { [key: string]: any }) {\r\n Object.entries(inputs).forEach(([input, inputValue]) => componentInstance[input] = inputValue);\r\n }\r\n\r\n private _subscribeComponentOutputs(componentInstance: any, outputs: { [k: string]: (eventType: any) => void }) {\r\n Object.keys(outputs)\r\n .filter((output) => componentInstance[output] && componentInstance[output] instanceof Observable)\r\n .forEach((output) => (componentInstance[output] as Observable<any>)\r\n .pipe(\r\n takeWhile(() => !this.destroyed)\r\n )\r\n .subscribe(outputs[output]));\r\n }\r\n\r\n private _render() {\r\n this.view.clear();\r\n\r\n if (!this.rendering) {\r\n return;\r\n }\r\n\r\n const resolveComponent: Promise<ComponentFactoryResult> = isRawRendering(this.rendering)\r\n ? Promise.resolve({ componentImplementation: RawComponent, componentDefinition: this.rendering })\r\n : this.componentFactory.getComponent(this.rendering);\r\n\r\n resolveComponent.then((rendering) => {\r\n if (!rendering.componentImplementation) {\r\n const componentName = (rendering.componentDefinition as ComponentRendering).componentName;\r\n console.error(\r\n `Attempted to render unknown component ${componentName}.`, `Ensure component is mapped, like:\r\n JssModule.withComponents([\r\n { name: '${componentName}', type: ${componentName}Component }\r\n ])`\r\n );\r\n\r\n rendering.componentImplementation = this.missingComponentComponent;\r\n }\r\n\r\n const componentFactory =\r\n rendering.componentFactory || this.componentFactoryResolver.resolveComponentFactory(rendering.componentImplementation);\r\n\r\n const componentInstance = this.view.createComponent(componentFactory, 0).instance;\r\n componentInstance.rendering = rendering.componentDefinition;\r\n if (this._inputs) {\r\n this._setComponentInputs(componentInstance, this._inputs);\r\n }\r\n if (this.outputs) {\r\n this._subscribeComponentOutputs(componentInstance, this.outputs);\r\n }\r\n });\r\n }\r\n}\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport {\r\n ANALYZE_FOR_ENTRY_COMPONENTS,\r\n ModuleWithProviders,\r\n NgModule,\r\n Type\r\n} from '@angular/core';\r\nimport { ROUTES } from '@angular/router';\r\nimport { DateDirective } from './components/date.directive';\r\nimport { FileDirective } from './components/file.directive';\r\nimport { GenericLinkDirective } from './components/generic-link.directive';\r\nimport { ImageDirective } from './components/image.directive';\r\nimport { LinkDirective } from './components/link.directive';\r\nimport { MissingComponentComponent } from './components/missing-component.component';\r\nimport { PlaceholderLoadingDirective } from './components/placeholder-loading.directive';\r\nimport { PlaceholderComponent } from './components/placeholder.component';\r\nimport {\r\n ComponentNameAndModule,\r\n ComponentNameAndType,\r\n DYNAMIC_COMPONENT,\r\n PLACEHOLDER_COMPONENTS,\r\n PLACEHOLDER_LAZY_COMPONENTS,\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT\r\n} from './components/placeholder.token';\r\nimport { RawComponent } from './components/raw.component';\r\nimport { RenderComponentComponent } from './components/render-component.component';\r\nimport { RenderEachDirective } from './components/render-each.directive';\r\nimport { RenderEmptyDirective } from './components/render-empty.directive';\r\nimport { RichTextDirective } from './components/rich-text.directive';\r\nimport { RouterLinkDirective } from './components/router-link.directive';\r\nimport { TextDirective } from './components/text.directive';\r\nimport { JssComponentFactoryService } from './jss-component-factory.service';\r\nimport { LayoutService } from './layout.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n declarations: [\r\n FileDirective,\r\n ImageDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n DateDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n PlaceholderLoadingDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n RawComponent,\r\n RichTextDirective,\r\n TextDirective,\r\n MissingComponentComponent,\r\n ],\r\n exports: [\r\n FileDirective,\r\n ImageDirective,\r\n DateDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n PlaceholderLoadingDirective,\r\n RichTextDirective,\r\n TextDirective,\r\n ],\r\n entryComponents: [\t\r\n RawComponent,\t\r\n MissingComponentComponent,\t\r\n ],\r\n})\r\nexport class JssModule {\r\n /**\r\n * Instantiates the JSS module with no component factory.\r\n * Useful for using it from libraries. Most of the time you'd want withComponents()\r\n */\r\n static forRoot(): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n LayoutService,\r\n DatePipe,\r\n JssComponentFactoryService,\r\n ],\r\n };\r\n }\r\n\r\n /** Instantiates a module for a lazy-loaded JSS component */\r\n static forChild(component: Type<any>): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n { provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: component, multi: true },\r\n { provide: ROUTES, useValue: [], multi: true },\r\n { provide: DYNAMIC_COMPONENT, useValue: component },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Instantiates the JSS module and specifies the mapping from component name to component implementation.\r\n * Appropriate when defining the set of JSS components that your app is aware of.\r\n */\r\n static withComponents(components: ComponentNameAndType[], lazyComponents?: ComponentNameAndModule[]): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n {\r\n provide: ANALYZE_FOR_ENTRY_COMPONENTS,\r\n useValue: components,\r\n multi: true,\r\n },\r\n { provide: PLACEHOLDER_COMPONENTS, useValue: components },\r\n { provide: PLACEHOLDER_LAZY_COMPONENTS, useValue: lazyComponents || [] },\r\n { provide: ROUTES, useValue: lazyComponents || [], multi: true },\r\n { provide: PLACEHOLDER_MISSING_COMPONENT_COMPONENT, useValue: MissingComponentComponent },\r\n ...(JssModule.forRoot().providers as any[]),\r\n ],\r\n };\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/file.directive.ts","../../node_modules/tslib/tslib.es6.js","../../src/components/image.directive.ts","../../src/components/link.directive.ts","../../src/components/router-link.directive.ts","../../src/components/generic-link.directive.ts","../../src/components/placeholder.token.ts","../../src/components/raw.component.ts","../../src/components/rendering.ts","../../src/jss-component-factory.service.ts","../../src/components/placeholder-loading.directive.ts","../../src/components/render-each.directive.ts","../../src/components/render-empty.directive.ts","../../src/components/placeholder.component.ts","../../src/components/rich-text.directive.ts","../../src/components/text.directive.ts","../../src/layout-service-error.ts","../../src/layout.service.ts","../../src/components/date.directive.ts","../../src/components/missing-component.component.ts","../../src/components/render-component.component.ts","../../src/lib.module.ts"],"names":["FileDirective","viewContainer","templateRef","this","prototype","ngOnChanges","changes","viewRef","clear","createEmbeddedView","updateView","field","value","src","file","rootNodes","forEach","node","href","innerHTML","title","displayName","Directive","args","selector","ViewContainerRef","TemplateRef","Input","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","create","__read","o","n","m","Symbol","iterator","r","e","i","call","ar","next","done","push","error","__spread","arguments","length","concat","ImageDirective","renderer","elementRef","inlineRef","editable","urlParams","attrs","remove","overrideAttrs","assign","getElementAttrs","media","foundImg","mediaApi","findEditorImageTag","renderInlineWrapper","getImageAttrs","tempImg_1","createElement","entries","_a","_b","key","attrValue","setAttribute","editableMarkup","replace","imgTag","outerHTML","img","renderTemplate","fieldAttrs","parsedAttrs","imageParams","combinedAttrs","srcSet","otherAttrs","s","t","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","newAttrs","updateImageUrl","mediaUrlPrefix","getSrcSet","imageProps","_this","imgPropVal","element","attributes","attr","item","name","span","className","parentNode","nativeElement","insertBefore","removeChild","Renderer2","ElementRef","LinkDirective","editableFirstPart","editableLastPart","props","linkText","text","mergedAttrs","propValue","test","childNodes","textContent","RouterLinkDirective","router","_super","listen","event","navigateByUrl","preventDefault","Router","GenericLinkDirective","isAbsoluteUrl","urlTree","createUrlTree","extras","serializeUrl","navigate","url","TypeError","PLACEHOLDER_COMPONENTS","InjectionToken","PLACEHOLDER_LAZY_COMPONENTS","PLACEHOLDER_MISSING_COMPONENT_COMPONENT","DYNAMIC_COMPONENT","RawComponent","ngOnInit","el","rendering","contents","createText","appendChild","isRawRendering","componentName","undefined","Component","template","JssComponentFactoryService","injector","compiler","components","lazyComponents","componentMap","Map","lazyComponentMap","c","set","type","path","loadModuleFactory","lazyComponent","loadChildren","then","loaded","NgModuleFactory","compileModuleAsync","getComponent","component","get","Promise","resolve","componentDefinition","componentImplementation","ngModuleFactory","componentType","moduleRef","dynamicComponentType","Error","componentFactory","componentFactoryResolver","resolveComponentFactory","getComponents","all","map","getRawComponent","Injectable","Injector","Compiler","Inject","PlaceholderComponent","differs","changeDetectorRef","missingComponentComponent","_componentInstances","destroyed","parentStyleAttribute","isLoading","EventEmitter","defineProperty","_inputs","_differ","find","elem","ngOnDestroy","_render","ngDoCheck","diff","updates","forEachRemovedItem","change","forEachAddedItem","currentValue","forEachChangedItem","componentInstance","_setComponentInputs","inputs","input","inputValue","_subscribeComponentOutputs","outputs","keys","filter","output","Observable","pipe","takeWhile","subscribe","view","renderings","console","warn","placeholder","placeholders","JSON","stringify","placeholderIsEmpty","every","renderEmptyTemplate","index","renderEachTemplate","_renderTemplatedComponent","_renderEmbeddedComponent","markForCheck","emit","createdComponentRef","createComponent","location","instance","ComponentFactoryResolver","KeyValueDiffers","ChangeDetectorRef","Type","decorators","Output","ViewChild","read","static","ContentChild","RenderEachDirective","RenderEmptyDirective","PlaceholderLoadingDirective","RichTextDirective","html","TextDirective","encode","setDangerously","fetchRouteData","dataApi","fetchPlaceholderData","LayoutService","getLayoutServiceError","layoutServiceError","LayoutServiceError","response","status","statusText","data","observableThrow","getRouteData","route","options","fromPromise","catchError","getPlaceholderData","placeholderName","DateDirective","datePipe","transform","format","timezone","locale","DatePipe","RenderComponentComponent","JssModule","forRoot","ngModule","providers","forChild","provide","ANALYZE_FOR_ENTRY_COMPONENTS","useValue","multi","ROUTES","withComponents","MissingComponentComponent","NgModule","imports","CommonModule","declarations","exports","entryComponents"],"mappings":"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","sourcesContent":["import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { FileField } from './rendering-field';\r\n\r\n/**\r\n * File fields cannot be managed via the EE. We never output \"editable.\"\r\n */\r\n@Directive({ selector: '[scFile]' })\r\nexport class FileDirective implements OnChanges {\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scFile') field: FileField;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['field']) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n\r\n if (!field || (!field.value && !field.src)) {\r\n return;\r\n }\r\n\r\n const file = field.src ? field : field.value;\r\n this.viewRef.rootNodes.forEach((node) => {\r\n node.href = file.src;\r\n if (node.innerHTML === '') {\r\n node.innerHTML = file.title || file.displayName;\r\n }\r\n });\r\n }\r\n}\r\n","/*! *****************************************************************************\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 { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { mediaApi } from '@sitecore-jss/sitecore-jss';\r\nimport { ImageField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scImage]' })\r\nexport class ImageDirective implements OnChanges {\r\n private inlineRef: HTMLSpanElement | null = null;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImage') field: ImageField | '';\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImageEditable') editable = true;\r\n\r\n /**\r\n * Custom regexp that finds media URL prefix that will be replaced by `/-/jssmedia` or `/~/jssmedia`.\r\n * @example\r\n * /\\/([-~]{1})assets\\//i\r\n * /-assets/website -> /-/jssmedia/website\r\n * /~assets/website -> /~/jssmedia/website\r\n */\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImageMediaUrlPrefix') mediaUrlPrefix?: RegExp;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImageUrlParams') urlParams = {};\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scImageAttrs') attrs = {};\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['editable'] || changes['urlParams'] || changes['attrs']) {\r\n this.viewContainer.clear();\r\n if (this.inlineRef) {\r\n this.inlineRef.remove();\r\n this.inlineRef = null;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const overrideAttrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n const media = this.field;\r\n\r\n if (!media || (!media.editable && !media.value && !media.src)) {\r\n return;\r\n }\r\n\r\n let attrs: any = {};\r\n\r\n // we likely have an experience editor value, should be a string\r\n if (this.editable && media.editable) {\r\n const foundImg = mediaApi.findEditorImageTag(media.editable);\r\n if (!foundImg) {\r\n return this.renderInlineWrapper(media.editable);\r\n }\r\n attrs = this.getImageAttrs(foundImg.attrs, overrideAttrs, this.urlParams);\r\n if (!attrs) {\r\n return this.renderInlineWrapper(media.editable);\r\n }\r\n const tempImg: HTMLImageElement = this.renderer.createElement('img');\r\n Object.entries(attrs).forEach(([key, attrValue]: [string, any]) =>\r\n tempImg.setAttribute(key, attrValue)\r\n );\r\n const editableMarkup = media.editable.replace(foundImg.imgTag, tempImg.outerHTML);\r\n return this.renderInlineWrapper(editableMarkup);\r\n }\r\n\r\n // some wise-guy/gal is passing in a 'raw' image object value\r\n const img = media.src ? media : media.value;\r\n if (!img) {\r\n return null;\r\n }\r\n\r\n attrs = this.getImageAttrs(img, overrideAttrs, this.urlParams);\r\n if (attrs) {\r\n this.renderTemplate(attrs);\r\n }\r\n }\r\n\r\n private getImageAttrs(fieldAttrs: any, parsedAttrs: any, imageParams: any): any {\r\n const combinedAttrs = {\r\n ...fieldAttrs,\r\n ...parsedAttrs,\r\n };\r\n // tslint:disable-next-line:prefer-const\r\n let { src, srcSet, ...otherAttrs } = combinedAttrs;\r\n if (!src) {\r\n return null;\r\n }\r\n const newAttrs = {\r\n ...otherAttrs,\r\n };\r\n // update image URL for jss handler and image rendering params\r\n src = mediaApi.updateImageUrl(src, imageParams, this.mediaUrlPrefix);\r\n if (srcSet) {\r\n // replace with HTML-formatted srcset, including updated image URLs\r\n newAttrs.srcSet = mediaApi.getSrcSet(src, srcSet, imageParams, this.mediaUrlPrefix);\r\n } else {\r\n newAttrs.src = src;\r\n }\r\n return newAttrs;\r\n }\r\n\r\n private renderTemplate(imageProps: any) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(imageProps).forEach(([key, imgPropVal]: [string, any]) => this.renderer.setAttribute(node, key, imgPropVal));\r\n });\r\n }\r\n\r\n private getElementAttrs(): { [key: string]: any; } {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n return {};\r\n }\r\n const attrs: { [key: string]: any; } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n return attrs;\r\n }\r\n\r\n private renderInlineWrapper(editable: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-image-wrapper';\r\n span.innerHTML = editable;\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n parentNode.removeChild(this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scLink]' })\r\nexport class LinkDirective implements OnChanges {\r\n private inlineRef: HTMLSpanElement | null = null;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scLinkEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scLinkAttrs') attrs: any = {};\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scLink') field: LinkField;\r\n\r\n constructor(\r\n protected viewContainer: ViewContainerRef,\r\n protected templateRef: TemplateRef<any>,\r\n protected renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['editable'] || changes['attrs']) {\r\n this.viewContainer.clear();\r\n if (this.inlineRef) {\r\n this.inlineRef.remove();\r\n this.inlineRef = null;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n if (this.editable && field && field.editableFirstPart && field.editableLastPart) {\r\n this.renderInlineWrapper(field.editableFirstPart, field.editableLastPart);\r\n } else if (field && (field.href || field.value)) {\r\n const props = field.href ? field : field.value;\r\n const linkText = field.text || field.value.text || field.href || field.value.href;\r\n const mergedAttrs = { ...props, ...this.attrs };\r\n this.renderTemplate(mergedAttrs, linkText);\r\n }\r\n }\r\n\r\n protected renderTemplate(props: any, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]: [string, any]) => {\r\n if (key === 'href') {\r\n const isInvalidLink = !propValue || /^https?:\\/\\/$/.test(propValue);\r\n\r\n if (isInvalidLink) {\r\n if (!node.href) {\r\n return;\r\n }\r\n\r\n propValue = node.href;\r\n }\r\n }\r\n\r\n if (key === 'class' && node.className) {\r\n propValue += ` ${node.className}`;\r\n }\r\n\r\n this.renderer.setAttribute(node, key, propValue)\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n\r\n private renderInlineWrapper(editableFirstPart: string, editableLastPart: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-link-wrapper';\r\n span.innerHTML = editableFirstPart + editableLastPart;\r\n\r\n // assign attributes from template to inline wrapper\r\n const attrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n Object.entries(attrs).forEach(([key, attrValue]: [string, any]) => \r\n this.renderer.setAttribute(span, key, attrValue)\r\n );\r\n\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n\r\n private getElementAttrs(): { [key: string]: any; } {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n return {};\r\n }\r\n const attrs: { [key: string]: any; } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n return attrs;\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LinkDirective } from './link.directive';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scRouterLink]' })\r\nexport class RouterLinkDirective extends LinkDirective {\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRouterLinkEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRouterLinkAttrs') attrs: any = {};\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRouterLink') field: LinkField;\r\n\r\n constructor(\r\n viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<any>,\r\n renderer: Renderer2,\r\n elementRef: ElementRef,\r\n private router: Router\r\n ) {\r\n super(viewContainer, templateRef, renderer, elementRef);\r\n }\r\n\r\n protected renderTemplate(props: any, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]: [string, any]) => {\r\n this.renderer.setAttribute(node, key, propValue);\r\n\r\n if (key === 'href') {\r\n this.renderer.listen(node, 'click', (event) => {\r\n this.router.navigateByUrl(propValue);\r\n event.preventDefault();\r\n });\r\n }\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Router, NavigationExtras } from '@angular/router';\r\nimport { LinkDirective } from './link.directive';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scGenericLink]' })\r\nexport class GenericLinkDirective extends LinkDirective {\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scGenericLinkEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scGenericLinkAttrs') attrs: any = {};\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scGenericLink') field: LinkField;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scGenericLinkExtras') extras?: NavigationExtras;\r\n\r\n constructor(\r\n viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<any>,\r\n renderer: Renderer2,\r\n elementRef: ElementRef,\r\n private router: Router\r\n ) {\r\n super(viewContainer, templateRef, renderer, elementRef);\r\n }\r\n\r\n protected renderTemplate(props: any, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]: [string, any]) => {\r\n if (key === 'href' && !this.isAbsoluteUrl(propValue)) {\r\n const urlTree = this.router.createUrlTree([propValue], this.extras);\r\n this.renderer.setAttribute(node, key, this.router.serializeUrl(urlTree));\r\n this.renderer.listen(node, 'click', (event) => {\r\n this.router.navigate([propValue], this.extras);\r\n event.preventDefault();\r\n });\r\n } else {\r\n this.renderer.setAttribute(node, key, propValue);\r\n }\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n\r\n private isAbsoluteUrl(url?: string) {\r\n if (url == null) {\r\n return false;\r\n }\r\n if (typeof url !== 'string') {\r\n throw new TypeError('Expected a string');\r\n }\r\n\r\n return /^[a-z][a-z0-9+.-]*:/.test(url);\r\n }\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\n\r\n/** Registers a statically loaded component */\r\nexport class ComponentNameAndType {\r\n name: string;\r\n type: Type<any>;\r\n}\r\n\r\n/** Registers a lazily loaded component by name and module to lazy load when it's needed */\r\nexport interface ComponentNameAndModule {\r\n /** Name of the component */\r\n path: string;\r\n /**\r\n * Dynamic import of the component,\r\n * e.g. () => import('./path/to/lazyloadedcomponent.module').then(m => m.LazyLoadedComponentModuleExportName)\r\n */\r\n loadChildren: () => Promise<any>;\r\n}\r\n\r\nexport function instanceOfComponentNameAndType(object: any): object is ComponentNameAndType {\r\n return 'type' in object;\r\n}\r\n\r\nexport function instanceOfComponentNameAndModule(object: any): object is ComponentNameAndModule {\r\n return 'module' in object;\r\n}\r\n\r\nexport const PLACEHOLDER_COMPONENTS = new InjectionToken<ComponentNameAndType[]>('Sc.placeholder.components');\r\nexport const PLACEHOLDER_LAZY_COMPONENTS = new InjectionToken<ComponentNameAndType[]>('Sc.placeholder.lazyComponents');\r\nexport const PLACEHOLDER_MISSING_COMPONENT_COMPONENT = new InjectionToken<Type<any>>('Sc.placeholder.missingComponentComponent');\r\nexport const DYNAMIC_COMPONENT = new InjectionToken<Type<any> | {[s: string]: any}> ('Sc.placeholder.dynamicComponent');\r\n","import { Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\n\r\n@Component({\r\n selector: 'sc-raw',\r\n template: ``,\r\n})\r\nexport class RawComponent implements OnInit {\r\n @Input() rendering: HtmlElementRendering;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n const el = this.renderer.createElement(this.rendering.name);\r\n const contents = this.renderer.createText(this.rendering.contents || '');\r\n const attributes = this.rendering.attributes;\r\n for (const attr in attributes) {\r\n if ((attributes as any).hasOwnProperty(attr)) {\r\n const value = attributes[attr];\r\n this.renderer.setAttribute(el, attr, value || '');\r\n }\r\n }\r\n\r\n this.renderer.appendChild(el, contents);\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, el, this.elementRef.nativeElement);\r\n parentNode.removeChild(this.elementRef.nativeElement);\r\n }\r\n}\r\n","import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\n\r\nexport function isRawRendering(rendering: HtmlElementRendering | ComponentRendering): rendering is HtmlElementRendering {\r\n return !(rendering as ComponentRendering).componentName && (rendering as HtmlElementRendering).name !== undefined;\r\n}\r\n","import {\r\n ComponentFactory,\r\n Inject,\r\n Injectable,\r\n Injector,\r\n Type,\r\n Compiler,\r\n NgModuleFactory\r\n} from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\nimport {\r\n ComponentNameAndModule,\r\n ComponentNameAndType,\r\n DYNAMIC_COMPONENT,\r\n PLACEHOLDER_COMPONENTS,\r\n PLACEHOLDER_LAZY_COMPONENTS\r\n} from './components/placeholder.token';\r\nimport { RawComponent } from './components/raw.component';\r\nimport { isRawRendering } from './components/rendering';\r\n\r\nexport interface ComponentFactoryResult {\r\n componentImplementation?: Type<any>;\r\n componentDefinition: ComponentRendering | HtmlElementRendering;\r\n componentFactory?: ComponentFactory<any>;\r\n}\r\n\r\n@Injectable()\r\nexport class JssComponentFactoryService {\r\n private componentMap: Map<string, Type<any>>;\r\n private lazyComponentMap: Map<string, ComponentNameAndModule>;\r\n\r\n constructor(\r\n private injector: Injector,\r\n private compiler: Compiler,\r\n @Inject(PLACEHOLDER_COMPONENTS) private components: ComponentNameAndType[],\r\n @Inject(PLACEHOLDER_LAZY_COMPONENTS) private lazyComponents: ComponentNameAndModule[]\r\n ) {\r\n this.componentMap = new Map();\r\n this.lazyComponentMap = new Map();\r\n\r\n this.components.forEach((c) => this.componentMap.set(c.name, c.type));\r\n\r\n if (this.lazyComponents) {\r\n this.lazyComponents.forEach((c) => this.lazyComponentMap.set(c.path, c));\r\n }\r\n }\r\n\r\n private loadModuleFactory(lazyComponent: ComponentNameAndModule): Promise<NgModuleFactory<any>> {\r\n return lazyComponent.loadChildren().then(loaded => {\r\n if (loaded instanceof NgModuleFactory) {\r\n return loaded\r\n } else {\r\n return this.compiler.compileModuleAsync(loaded)\r\n }\r\n })\r\n }\r\n\r\n getComponent(component: ComponentRendering): Promise<ComponentFactoryResult> {\r\n const loadedComponent = this.componentMap.get(component.componentName);\r\n\r\n if (loadedComponent) {\r\n return Promise.resolve({\r\n componentDefinition: component,\r\n componentImplementation: this.componentMap.get(component.componentName),\r\n });\r\n }\r\n\r\n const lazyComponent = this.lazyComponentMap.get(component.componentName);\r\n\r\n if (lazyComponent) {\r\n return this.loadModuleFactory(lazyComponent)\r\n .then((ngModuleFactory) => {\r\n let componentType = null;\r\n const moduleRef = ngModuleFactory.create(this.injector);\r\n const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);\r\n if (!dynamicComponentType) {\r\n throw new Error(\r\n // tslint:disable-next-line:max-line-length\r\n `JssComponentFactoryService: Lazy load module for component \"${lazyComponent.path}\" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`\r\n );\r\n }\r\n\r\n if (component.componentName in dynamicComponentType) {\r\n componentType = (dynamicComponentType as {[s: string]: any})[component.componentName];\r\n } else {\r\n if (typeof dynamicComponentType === 'function') {\r\n componentType = dynamicComponentType;\r\n } else {\r\n throw new Error(\r\n // tslint:disable-next-line:max-line-length\r\n `JssComponentFactoryService: Lazy load module for component \"${lazyComponent.path}\" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`\r\n );\r\n }\r\n }\r\n\r\n return {\r\n componentDefinition: component,\r\n componentImplementation: componentType,\r\n componentFactory: moduleRef.componentFactoryResolver.resolveComponentFactory(componentType),\r\n };\r\n });\r\n }\r\n\r\n return Promise.resolve({\r\n componentDefinition: component,\r\n });\r\n }\r\n\r\n getComponents(components: Array<ComponentRendering | HtmlElementRendering>): Promise<ComponentFactoryResult[]> {\r\n // acquire all components and keep them in order while handling their potential async-ness\r\n return Promise.all(\r\n components.map((component) => isRawRendering(component)\r\n ? this.getRawComponent(component)\r\n : this.getComponent(component))\r\n );\r\n }\r\n\r\n private getRawComponent(component: HtmlElementRendering): Promise<ComponentFactoryResult> {\r\n return Promise.resolve({\r\n componentImplementation: RawComponent,\r\n componentDefinition: component,\r\n });\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[scPlaceholderLoading]',\r\n})\r\nexport class PlaceholderLoadingDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[renderEach]',\r\n})\r\nexport class RenderEachDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[renderEmpty]',\r\n})\r\nexport class RenderEmptyDirective {\r\n constructor(public templateRef: TemplateRef<any>) {}\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ContentChild,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\nimport { Observable } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport { ComponentFactoryResult, JssComponentFactoryService } from '../jss-component-factory.service';\r\nimport { PlaceholderLoadingDirective } from './placeholder-loading.directive';\r\nimport {\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT\r\n} from './placeholder.token';\r\nimport { RenderEachDirective } from './render-each.directive';\r\nimport { RenderEmptyDirective } from './render-empty.directive';\r\nimport { isRawRendering } from './rendering';\r\n\r\nfunction getPlaceholder(rendering: ComponentRendering, name: string) {\r\n if (rendering && rendering.placeholders && Object.keys(rendering.placeholders).length > 0) {\r\n return rendering.placeholders[name];\r\n }\r\n return null;\r\n}\r\n\r\n@Component({\r\n selector: 'sc-placeholder,[sc-placeholder]',\r\n template: `\r\n <ng-template *ngIf=\"isLoading\" [ngTemplateOutlet]=\"placeholderLoading?.templateRef\"></ng-template>\r\n <ng-template #view></ng-template>\r\n `,\r\n})\r\nexport class PlaceholderComponent implements OnInit, OnChanges, DoCheck, OnDestroy {\r\n private _inputs: { [key: string]: any };\r\n private _differ: KeyValueDiffer<string, any>;\r\n private _componentInstances: any[] = [];\r\n private destroyed = false;\r\n private parentStyleAttribute: string = '';\r\n public isLoading = true;\r\n\r\n @Input() name?: string;\r\n @Input() rendering: ComponentRendering;\r\n @Input() renderings?: Array<ComponentRendering | HtmlElementRendering>;\r\n @Input() outputs: { [k: string]: (eventType: any) => void };\r\n\r\n @Output()\r\n loaded = new EventEmitter<string | undefined>();\r\n\r\n @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n @ContentChild(RenderEachDirective, { static: true }) renderEachTemplate: RenderEachDirective;\r\n @ContentChild(RenderEmptyDirective, { static: true }) renderEmptyTemplate: RenderEmptyDirective;\r\n @ContentChild(PlaceholderLoadingDirective, { static: true }) placeholderLoading?: PlaceholderLoadingDirective;\r\n\r\n @Input()\r\n set inputs(value: { [key: string]: any }) {\r\n this._inputs = value;\r\n if (!this._differ && value) {\r\n this._differ = this.differs.find(value).create();\r\n }\r\n }\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private differs: KeyValueDiffers,\r\n private componentFactory: JssComponentFactoryService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n @Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT) private missingComponentComponent: Type<any>\r\n ) { }\r\n\r\n ngOnInit() {\r\n // just to ensure the element exists\r\n const elem = this.elementRef.nativeElement;\r\n\r\n if (elem) {\r\n const attributes: NamedNodeMap = elem.attributes;\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr: Attr | null = attributes.item(i);\r\n if (attr && attr.name.indexOf('_ngcontent') !== -1) {\r\n this.parentStyleAttribute = attr.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed = true;\r\n this._componentInstances = [];\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['rendering'] || changes['renderings']) {\r\n this._render();\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n if (!this._differ || !this._inputs || this._componentInstances.length === 0) {\r\n return;\r\n }\r\n\r\n const changes = this._differ.diff(this._inputs);\r\n if (!changes) {\r\n return;\r\n }\r\n const updates: { [key: string]: any } = {};\r\n changes.forEachRemovedItem((change) => updates[change.key] = null);\r\n changes.forEachAddedItem((change) => updates[change.key] = change.currentValue);\r\n changes.forEachChangedItem((change) => updates[change.key] = change.currentValue);\r\n this._componentInstances.forEach((componentInstance) => this._setComponentInputs(componentInstance, updates));\r\n }\r\n\r\n private _setComponentInputs(componentInstance: any, inputs: { [key: string]: any }) {\r\n Object.entries(inputs).forEach(([input, inputValue]) => componentInstance[input] = inputValue);\r\n }\r\n\r\n private _subscribeComponentOutputs(componentInstance: any, outputs: { [k: string]: (eventType: any) => void }) {\r\n Object.keys(outputs)\r\n .filter((output) => componentInstance[output] && componentInstance[output] instanceof Observable)\r\n .forEach((output) => (componentInstance[output] as Observable<any>)\r\n .pipe(\r\n takeWhile(() => !this.destroyed)\r\n )\r\n .subscribe(outputs[output]));\r\n }\r\n\r\n private _render() {\r\n this._componentInstances = [];\r\n this.view.clear();\r\n\r\n if (!this.rendering && !this.renderings) {\r\n return;\r\n }\r\n\r\n if (!this.name && !this.renderings) {\r\n // tslint:disable-next-line:max-line-length\r\n console.warn(`Placeholder name was not specified, and explicit renderings array was not passed. Placeholder requires either name and rendering, or renderings.`);\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n const placeholder = this.renderings || getPlaceholder(this.rendering, this.name || '');\r\n\r\n if (!placeholder) {\r\n console.warn(`Placeholder '${this.name}' was not found in the current rendering data`, JSON.stringify(this.rendering, null, 2));\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n // if the placeholder is empty (contains only raw renderings), then we may need to use the empty template if it's defined\r\n const placeholderIsEmpty = placeholder.every((rendering: ComponentRendering | HtmlElementRendering) => isRawRendering(rendering));\r\n\r\n if (this.renderEmptyTemplate && placeholderIsEmpty) {\r\n this.view.createEmbeddedView(this.renderEmptyTemplate.templateRef,\r\n {\r\n renderings: placeholder,\r\n });\r\n this.isLoading = false;\r\n } else {\r\n this.componentFactory.getComponents(placeholder)\r\n .then((components) => components.forEach((rendering, index) => {\r\n if (this.renderEachTemplate && !isRawRendering(rendering.componentDefinition)) {\r\n this._renderTemplatedComponent(rendering.componentDefinition, index);\r\n } else {\r\n this._renderEmbeddedComponent(rendering, index);\r\n }\r\n this.isLoading = false;\r\n })).then(() => {\r\n this.changeDetectorRef.markForCheck();\r\n this.loaded.emit(this.name);\r\n });\r\n }\r\n }\r\n\r\n private _renderTemplatedComponent(\r\n rendering: ComponentRendering | HtmlElementRendering,\r\n index: number\r\n ) {\r\n // the render-each template takes care of all component mapping etc\r\n // generally using <sc-render-component> which is about like _renderEmbeddedComponent()\r\n // as a separate component\r\n this.view.createEmbeddedView(this.renderEachTemplate.templateRef,\r\n {\r\n rendering,\r\n index,\r\n });\r\n }\r\n\r\n private _renderEmbeddedComponent(rendering: ComponentFactoryResult, index: number) {\r\n if (!rendering.componentImplementation) {\r\n const componentName = (rendering.componentDefinition as ComponentRendering).componentName;\r\n console.error(\r\n `Placeholder ${this.name} contains unknown component ${componentName}.`,\r\n `Ensure component is mapped, like:\r\n JssModule.withComponents([\r\n { name: '${componentName}', type: ${componentName}Component }\r\n ])`\r\n );\r\n\r\n rendering.componentImplementation = this.missingComponentComponent;\r\n }\r\n\r\n const componentFactory =\r\n rendering.componentFactory || this.componentFactoryResolver.resolveComponentFactory(rendering.componentImplementation);\r\n\r\n // apply the parent style attribute _ngcontent\r\n // work-around for https://github.com/angular/angular/issues/12215\r\n const createdComponentRef = this.view.createComponent(componentFactory, index);\r\n if (this.parentStyleAttribute) {\r\n this.renderer.setAttribute(createdComponentRef.location.nativeElement, this.parentStyleAttribute, '');\r\n }\r\n\r\n const componentInstance = createdComponentRef.instance;\r\n componentInstance.rendering = rendering.componentDefinition;\r\n if (this._inputs) {\r\n this._setComponentInputs(componentInstance, this._inputs);\r\n }\r\n if (this.outputs) {\r\n this._subscribeComponentOutputs(componentInstance, this.outputs);\r\n }\r\n this._componentInstances.push(componentInstance);\r\n }\r\n}\r\n","import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { RichTextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scRichText]',\r\n})\r\nexport class RichTextDirective implements OnChanges {\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRichTextEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scRichText') field: RichTextField;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['editable']) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n const html = (field.editable && this.editable ? field.editable : field.value);\r\n this.viewRef.rootNodes.forEach((node) => {\r\n node.innerHTML = html;\r\n });\r\n }\r\n}\r\n","import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scText]',\r\n})\r\nexport class TextDirective implements OnChanges {\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scTextEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scTextEncode') encode = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scText') field: TextField;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['editable'] || changes['encode']) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n let editable = this.editable;\r\n\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n // can't use editable value if we want to output unencoded\r\n if (!this.encode) {\r\n editable = false;\r\n }\r\n\r\n const html = field.editable && editable ? field.editable : field.value;\r\n const setDangerously = field.editable && editable || !this.encode;\r\n\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (setDangerously) {\r\n node.innerHTML = html;\r\n } else {\r\n node.textContent = html;\r\n }\r\n });\r\n }\r\n}\r\n","import { LayoutServiceContextData } from '@sitecore-jss/sitecore-jss';\r\n\r\nexport class LayoutServiceError {\r\n status: number;\r\n statusText: string;\r\n data?: { sitecore?: LayoutServiceContextData };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { dataApi, LayoutServiceData, LayoutServiceRequestOptions, PlaceholderData } from '@sitecore-jss/sitecore-jss';\r\nimport { from as fromPromise, Observable, throwError as observableThrow } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { LayoutServiceError } from './layout-service-error';\r\n\r\nconst { fetchRouteData, fetchPlaceholderData } = dataApi;\r\n\r\n@Injectable()\r\nexport class LayoutService {\r\n private static getLayoutServiceError(error: any): Observable<LayoutServiceError> {\r\n const layoutServiceError = new LayoutServiceError();\r\n const response = error.response;\r\n if (response) {\r\n layoutServiceError.status = response.status;\r\n layoutServiceError.statusText = response.statusText;\r\n layoutServiceError.data = response.data;\r\n }\r\n\r\n return observableThrow(layoutServiceError);\r\n }\r\n\r\n getRouteData(route: string, options: LayoutServiceRequestOptions<LayoutServiceData>): Observable<LayoutServiceData | LayoutServiceError> {\r\n return fromPromise(fetchRouteData(route, options))\r\n .pipe(catchError(LayoutService.getLayoutServiceError));\r\n }\r\n\r\n getPlaceholderData(\r\n route: string,\r\n placeholderName: string,\r\n options: LayoutServiceRequestOptions<PlaceholderData>\r\n ): Observable<PlaceholderData | LayoutServiceError> {\r\n return fromPromise(fetchPlaceholderData(placeholderName, route, options))\r\n .pipe(catchError(LayoutService.getLayoutServiceError));\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scDate]',\r\n})\r\nexport class DateDirective implements OnChanges {\r\n private viewRef: EmbeddedViewRef<any>;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDateFormat') format?: string;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDateTimezone') timezone?: string;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDateLocale') locale?: string;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDateEditable') editable = true;\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('scDate') field: TextField;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n private datePipe: DatePipe\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['field'] || changes['format']) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n const html = field.editable && this.editable ? field.editable : field.value;\r\n const setDangerously = field.editable && this.editable;\r\n\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (setDangerously) {\r\n node.innerHTML = html;\r\n } else {\r\n node.textContent = this.datePipe.transform(html, this.format, this.timezone, this.locale);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sc-missing-component',\r\n template: `\r\n<div style=\"background: darkorange; outline: 5px solid orange; padding: 10px; color: white; max-width: 500px;\">\r\n <h2>{{ rendering.componentName }}</h2>\r\n <p>JSS component is missing Angular component implementation.</p>\r\n</div>`,\r\n})\r\nexport class MissingComponentComponent {\r\n @Input() rendering: any;\r\n}\r\n","import {\r\n Component,\r\n ComponentFactoryResolver,\r\n Inject,\r\n Input,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n OnChanges,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss';\r\nimport { Observable } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport { ComponentFactoryResult, JssComponentFactoryService } from '../jss-component-factory.service';\r\nimport { PLACEHOLDER_MISSING_COMPONENT_COMPONENT } from './placeholder.token';\r\nimport { RawComponent } from './raw.component';\r\nimport { isRawRendering } from './rendering';\r\n\r\n/**\r\n * Renders a single JSS component given a rendering definition.\r\n * Useful inside templated placeholders.\r\n */\r\n@Component({\r\n selector: 'sc-render-component',\r\n template: `\r\n <ng-template #view></ng-template>\r\n `,\r\n})\r\nexport class RenderComponentComponent implements OnChanges {\r\n private _inputs: { [key: string]: any };\r\n private _differ: KeyValueDiffer<string, any>;\r\n private destroyed = false;\r\n\r\n @Input() rendering: ComponentRendering | HtmlElementRendering;\r\n @Input() outputs: { [k: string]: (eventType: any) => void };\r\n @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n\r\n @Input()\r\n set inputs(value: { [key: string]: any }) {\r\n this._inputs = value;\r\n if (!this._differ && value) {\r\n this._differ = this.differs.find(value).create();\r\n }\r\n }\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private differs: KeyValueDiffers,\r\n private componentFactory: JssComponentFactoryService,\r\n @Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT) private missingComponentComponent: Type<any>\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['rendering']) {\r\n this._render();\r\n }\r\n }\r\n\r\n private _setComponentInputs(componentInstance: any, inputs: { [key: string]: any }) {\r\n Object.entries(inputs).forEach(([input, inputValue]) => componentInstance[input] = inputValue);\r\n }\r\n\r\n private _subscribeComponentOutputs(componentInstance: any, outputs: { [k: string]: (eventType: any) => void }) {\r\n Object.keys(outputs)\r\n .filter((output) => componentInstance[output] && componentInstance[output] instanceof Observable)\r\n .forEach((output) => (componentInstance[output] as Observable<any>)\r\n .pipe(\r\n takeWhile(() => !this.destroyed)\r\n )\r\n .subscribe(outputs[output]));\r\n }\r\n\r\n private _render() {\r\n this.view.clear();\r\n\r\n if (!this.rendering) {\r\n return;\r\n }\r\n\r\n const resolveComponent: Promise<ComponentFactoryResult> = isRawRendering(this.rendering)\r\n ? Promise.resolve({ componentImplementation: RawComponent, componentDefinition: this.rendering })\r\n : this.componentFactory.getComponent(this.rendering);\r\n\r\n resolveComponent.then((rendering) => {\r\n if (!rendering.componentImplementation) {\r\n const componentName = (rendering.componentDefinition as ComponentRendering).componentName;\r\n console.error(\r\n `Attempted to render unknown component ${componentName}.`, `Ensure component is mapped, like:\r\n JssModule.withComponents([\r\n { name: '${componentName}', type: ${componentName}Component }\r\n ])`\r\n );\r\n\r\n rendering.componentImplementation = this.missingComponentComponent;\r\n }\r\n\r\n const componentFactory =\r\n rendering.componentFactory || this.componentFactoryResolver.resolveComponentFactory(rendering.componentImplementation);\r\n\r\n const componentInstance = this.view.createComponent(componentFactory, 0).instance;\r\n componentInstance.rendering = rendering.componentDefinition;\r\n if (this._inputs) {\r\n this._setComponentInputs(componentInstance, this._inputs);\r\n }\r\n if (this.outputs) {\r\n this._subscribeComponentOutputs(componentInstance, this.outputs);\r\n }\r\n });\r\n }\r\n}\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport {\r\n ANALYZE_FOR_ENTRY_COMPONENTS,\r\n ModuleWithProviders,\r\n NgModule,\r\n Type\r\n} from '@angular/core';\r\nimport { ROUTES } from '@angular/router';\r\nimport { DateDirective } from './components/date.directive';\r\nimport { FileDirective } from './components/file.directive';\r\nimport { GenericLinkDirective } from './components/generic-link.directive';\r\nimport { ImageDirective } from './components/image.directive';\r\nimport { LinkDirective } from './components/link.directive';\r\nimport { MissingComponentComponent } from './components/missing-component.component';\r\nimport { PlaceholderLoadingDirective } from './components/placeholder-loading.directive';\r\nimport { PlaceholderComponent } from './components/placeholder.component';\r\nimport {\r\n ComponentNameAndModule,\r\n ComponentNameAndType,\r\n DYNAMIC_COMPONENT,\r\n PLACEHOLDER_COMPONENTS,\r\n PLACEHOLDER_LAZY_COMPONENTS,\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT\r\n} from './components/placeholder.token';\r\nimport { RawComponent } from './components/raw.component';\r\nimport { RenderComponentComponent } from './components/render-component.component';\r\nimport { RenderEachDirective } from './components/render-each.directive';\r\nimport { RenderEmptyDirective } from './components/render-empty.directive';\r\nimport { RichTextDirective } from './components/rich-text.directive';\r\nimport { RouterLinkDirective } from './components/router-link.directive';\r\nimport { TextDirective } from './components/text.directive';\r\nimport { JssComponentFactoryService } from './jss-component-factory.service';\r\nimport { LayoutService } from './layout.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n declarations: [\r\n FileDirective,\r\n ImageDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n DateDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n PlaceholderLoadingDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n RawComponent,\r\n RichTextDirective,\r\n TextDirective,\r\n MissingComponentComponent,\r\n ],\r\n exports: [\r\n FileDirective,\r\n ImageDirective,\r\n DateDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n PlaceholderLoadingDirective,\r\n RichTextDirective,\r\n TextDirective,\r\n ],\r\n entryComponents: [\t\r\n RawComponent,\t\r\n MissingComponentComponent,\t\r\n ],\r\n})\r\nexport class JssModule {\r\n /**\r\n * Instantiates the JSS module with no component factory.\r\n * Useful for using it from libraries. Most of the time you'd want withComponents()\r\n */\r\n static forRoot(): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n LayoutService,\r\n DatePipe,\r\n JssComponentFactoryService,\r\n ],\r\n };\r\n }\r\n\r\n /** Instantiates a module for a lazy-loaded JSS component */\r\n static forChild(component: Type<any>): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n { provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: component, multi: true },\r\n { provide: ROUTES, useValue: [], multi: true },\r\n { provide: DYNAMIC_COMPONENT, useValue: component },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Instantiates the JSS module and specifies the mapping from component name to component implementation.\r\n * Appropriate when defining the set of JSS components that your app is aware of.\r\n */\r\n static withComponents(components: ComponentNameAndType[], lazyComponents?: ComponentNameAndModule[]): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n {\r\n provide: ANALYZE_FOR_ENTRY_COMPONENTS,\r\n useValue: components,\r\n multi: true,\r\n },\r\n { provide: PLACEHOLDER_COMPONENTS, useValue: components },\r\n { provide: PLACEHOLDER_LAZY_COMPONENTS, useValue: lazyComponents || [] },\r\n { provide: ROUTES, useValue: lazyComponents || [], multi: true },\r\n { provide: PLACEHOLDER_MISSING_COMPONENT_COMPONENT, useValue: MissingComponentComponent },\r\n ...(JssModule.forRoot().providers as any[]),\r\n ],\r\n };\r\n }\r\n}\r\n"]}
|
|
@@ -51,4 +51,4 @@ DateDirective.propDecorators = {
|
|
|
51
51
|
editable: [{ type: Input, args: ['scDateEditable',] }],
|
|
52
52
|
field: [{ type: Input, args: ['scDate',] }]
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiQzovV29yay9TaXRlY29yZS5KU1Mvc2NyaXB0cy9wdWJsaXNoL2pzcy1naXRodWIvcGFja2FnZXMvc2l0ZWNvcmUtanNzLWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9kYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBbUIsS0FBSyxFQUE0QixXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0gsTUFBTSxPQUFPLGFBQWE7SUFrQnhCLFlBQ1UsYUFBK0IsRUFDL0IsV0FBNkIsRUFDN0IsUUFBa0I7UUFGbEIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBVDVCLDJDQUEyQztRQUNsQixhQUFRLEdBQUcsSUFBSSxDQUFDO0lBU3JDLENBQUM7SUFFTCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3hFO1lBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9DLE9BQU87U0FDUjtRQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUM1RSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDM0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXZERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7YUFDckI7OztZQUxrRixnQkFBZ0I7WUFBN0IsV0FBVztZQUR4RSxRQUFROzs7cUJBV2QsS0FBSyxTQUFDLGNBQWM7dUJBR3BCLEtBQUssU0FBQyxnQkFBZ0I7cUJBR3RCLEtBQUssU0FBQyxjQUFjO3VCQUdwQixLQUFLLFNBQUMsZ0JBQWdCO29CQUd0QixLQUFLLFNBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbWJlZGRlZFZpZXdSZWYsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRleHRGaWVsZCB9IGZyb20gJy4vcmVuZGVyaW5nLWZpZWxkJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NjRGF0ZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSB2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2NEYXRlRm9ybWF0JykgZm9ybWF0Pzogc3RyaW5nO1xyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzY0RhdGVUaW1lem9uZScpIHRpbWV6b25lPzogc3RyaW5nO1xyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzY0RhdGVMb2NhbGUnKSBsb2NhbGU/OiBzdHJpbmc7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NjRGF0ZUVkaXRhYmxlJykgZWRpdGFibGUgPSB0cnVlO1xyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzY0RhdGUnKSBmaWVsZDogVGV4dEZpZWxkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWVsZCddIHx8IGNoYW5nZXNbJ2Zvcm1hdCddKSB7XHJcbiAgICAgIGlmICghdGhpcy52aWV3UmVmKSB7XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy52aWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVZpZXcoKSB7XHJcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGQ7XHJcblxyXG4gICAgaWYgKCFmaWVsZCB8fCAoIWZpZWxkLmVkaXRhYmxlICYmICFmaWVsZC52YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGh0bWwgPSBmaWVsZC5lZGl0YWJsZSAmJiB0aGlzLmVkaXRhYmxlID8gZmllbGQuZWRpdGFibGUgOiBmaWVsZC52YWx1ZTtcclxuICAgIGNvbnN0IHNldERhbmdlcm91c2x5ID0gZmllbGQuZWRpdGFibGUgJiYgdGhpcy5lZGl0YWJsZTtcclxuXHJcbiAgICB0aGlzLnZpZXdSZWYucm9vdE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKHNldERhbmdlcm91c2x5KSB7XHJcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShodG1sLCB0aGlzLmZvcm1hdCwgdGhpcy50aW1lem9uZSwgdGhpcy5sb2NhbGUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|