diff --git a/.cache/storybook/default/dev-server/storybook-0c9aba2732f8798ca2ae104c09855acc b/.cache/storybook/default/dev-server/storybook-0c9aba2732f8798ca2ae104c09855acc
index 280d23118..d35bb6a9e 100644
--- a/.cache/storybook/default/dev-server/storybook-0c9aba2732f8798ca2ae104c09855acc
+++ b/.cache/storybook/default/dev-server/storybook-0c9aba2732f8798ca2ae104c09855acc
@@ -1 +1 @@
-{"key":"lastEvents","content":{"boot":{"body":{"eventType":"boot","eventId":"A8jXowjhrqlGngZdP7isn","sessionId":"8GK5Lso9_o9tHWOFOOWFE","payload":{"eventType":"build"},"context":{"inCI":true,"platform":"Linux","nodeVersion":"20.18.1","cliVersion":"8.4.4"}},"timestamp":1734003433433}}}
\ No newline at end of file
+{"key":"lastEvents","content":{"boot":{"body":{"eventType":"boot","eventId":"_0nSNR75LcVFbbX9nrSVv","sessionId":"VZot8jf2ykKsvjrRI4vF7","payload":{"eventType":"build"},"context":{"inCI":true,"platform":"Linux","nodeVersion":"20.18.1","cliVersion":"8.4.4"}},"timestamp":1734009590506}}}
\ No newline at end of file
diff --git a/.cache/storybook/default/dev-server/storybook-21d6f40cfb511982e4424e0e250a9557 b/.cache/storybook/default/dev-server/storybook-21d6f40cfb511982e4424e0e250a9557
index 50a255e8f..5841db4c4 100644
--- a/.cache/storybook/default/dev-server/storybook-21d6f40cfb511982e4424e0e250a9557
+++ b/.cache/storybook/default/dev-server/storybook-21d6f40cfb511982e4424e0e250a9557
@@ -1 +1 @@
-{"key":"session","content":{"id":"8GK5Lso9_o9tHWOFOOWFE","lastUsed":1734003433413}}
\ No newline at end of file
+{"key":"session","content":{"id":"VZot8jf2ykKsvjrRI4vF7","lastUsed":1734009590490}}
\ No newline at end of file
diff --git a/1917.dfa7eaa2.iframe.bundle.js b/1917.dfa7eaa2.iframe.bundle.js
deleted file mode 100644
index 277340adb..000000000
--- a/1917.dfa7eaa2.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[1917],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/animations/slideDown.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{V4:()=>slideOutFromBottom,sb:()=>slideUpFromBottom,st:()=>slideRight});var _angular_animations__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const inactiveStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({opacity:.2,transform:"translateY(50%)"}),activeStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({opacity:1,transform:"translateY(0%)"}),slideUpFromBottom=((0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-out",activeStyle)]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-in",inactiveStyle)])]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideUpFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-out",activeStyle)])])),slideOutFromBottom=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideOutFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-in",inactiveStyle)])]),inactiveSlideRightStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({transform:"translateX(100%)"}),activeSlideRightStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({transform:"translateX(0%)"}),slideRight=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideRight",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveSlideRightStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("250ms ease-in-out",activeSlideRightStyle)]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeSlideRightStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("250ms ease-in-out",inactiveSlideRightStyle)])])},"./src/design/atoms/arrow-button/arrow-button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>ArrowButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var arrow_button_componentngResource=__webpack_require__("./src/design/atoms/arrow-button/arrow-button.component.scss?ngResource"),arrow_button_componentngResource_default=__webpack_require__.n(arrow_button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let ArrowButtonComponent=class ArrowButtonComponent{constructor(){this.icon=core.input.required(),this.kind=(0,core.input)("SECONDARY"),this.outline=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.iconName=(0,core.computed)((()=>`arrow-${this.icon()}-long`))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}],kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!1,transform:void 0}]}],outline:[{type:core.Input,args:[{isSignal:!0,alias:"outline",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ArrowButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-arrow-button",template:' \n',standalone:!0,imports:[icon_component.R,button_component.Q],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[arrow_button_componentngResource_default()]})],ArrowButtonComponent)},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'
\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/diaryentry-encounters/diaryentry-encounters.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{j:()=>DiaryentryEncountersComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var diaryentry_encounters_componentngResource=__webpack_require__("./src/design/organisms/diaryentry-encounters/diaryentry-encounters.component.scss?ngResource"),diaryentry_encounters_componentngResource_default=__webpack_require__.n(diaryentry_encounters_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");const ORDER_INDEX_INCREMENT=10;function hasShiftedOrderIndex(encounter){return encounter.order_index%ORDER_INDEX_INCREMENT>0}function getUnshiftedOrderIndex(encounter){return Math.floor(encounter.order_index/ORDER_INDEX_INCREMENT)*ORDER_INDEX_INCREMENT}function nextOrderIndex(encounter){return getUnshiftedOrderIndex(encounter)+ORDER_INDEX_INCREMENT}var rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),ngrx_signals=__webpack_require__("./node_modules/@ngrx/signals/fesm2022/ngrx-signals.mjs"),shareReplay=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js"),take=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/take.js"),switchMap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js"),clipboard=__webpack_require__("./src/utils/clipboard.ts");function httpErrorToast(err){if(!("number"===err.status?.constructor?.name.toLowerCase()))throw err;const buttons=500===err.status?[{label:"Copy to Clipboard",icon:"clipboard",onClick:()=>(0,clipboard.l)(err.error)}]:[];return{type:"DANGER",body:{text:`\n Please copy the error and send it to the developer: \n ${error=err,JSON.stringify(error.error)}\n `,buttons},header:{text:getErrorHeading(err)}};var error}function getErrorHeading(error){switch(error.status){case 0:case 504:return"This can't be done without an internet connection";case 200:return"The target URL for the requested action does not seem to exist";case 500:return"The server exploded somehow!";default:return"An error occurred"}}var http=__webpack_require__("./node_modules/@angular/common/fesm2022/http.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),base_service=__webpack_require__("./src/app/_services/base.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts");let CharacterService=class CharacterService extends base_service.d{constructor(routingService,http){super(http,"character"),this.routingService=routingService}getPlayerCharacters(campaign){const url=`${this.baseUrl}/${campaign}/playercharacters/`;return this.http.get(url).pipe((0,map.T)((entries=>entries.map((entry=>this.parseOverviewEntity(entry))))))}getNonPlayerCharacters(campaign){const url=`${this.baseUrl}/${campaign}/nonplayercharacters/`;return this.http.get(url).pipe((0,map.T)((entries=>entries.map((entry=>this.parseOverviewEntity(entry))))))}parseEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const campaignName=data.campaign_details.name,characterName=data.name;return()=>this.routingService.getRoutePath("character",{name:characterName,campaign:campaignName})}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};CharacterService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],CharacterService);let DiaryentryService=class DiaryentryService extends base_service.d{constructor(routingService,http){super(http,"diaryentry"),this.routingService=routingService}readByParam(campaign,params){const authorName=params.name,url=`${this.baseUrl}/${campaign}/${params.sessionNumber}/${params.isMainSession}/${authorName}/`;return this.http.get(url).pipe((0,map.T)((diaryEntry=>this.parseDiaryEntry(diaryEntry))))}parseDiaryEntry(entry){return{...entry,author:entry?.author_details?.pk,session:entry?.session_details?.pk}}parseEntity(data){return{...data,author:data?.author_details?.pk,session:data?.session_details?.pk,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const campaignName=data.campaign_details.name,sessionNumber=data.session_details.session_number,isMainSession=data.session_details.is_main_session_int,authorName=data.author_details.name;return()=>this.routingService.getRoutePath("diaryentry",{sessionNumber,isMainSession,authorName,campaign:campaignName})}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};DiaryentryService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],DiaryentryService);let EncounterConnectionService=class EncounterConnectionService extends base_service.d{constructor(http){super(http,"encounterconnection")}create(data){return super.create({...data,character:`${data.character}`})}parseEntity(data){return data}parseOverviewEntity(data){throw"CharacterPlayerClassConnection does not have an overview endpoint"}static{this.ctorParameters=()=>[{type:http.Qq}]}};EncounterConnectionService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],EncounterConnectionService);let EncounterService=class EncounterService extends base_service.d{constructor(routingService,http){super(http,"encounter"),this.routingService=routingService}getDiaryEntryEncounters(session_pk,authorName){const url=`${this.baseUrl}/session/${session_pk}/${authorName}`;return this.http.get(url).pipe((0,map.T)((entries=>entries.map((entry=>this.parseEntity(entry))))))}createForDiaryentry(encounter){const url=`${this.baseUrl}/`;return this.http.post(url,encounter).pipe((0,map.T)((entries=>entries.map((entry=>this.parseEntity(entry))))))}swapEncounterOrder(campaign,encounter1_pk,encounter2_pk){const url=`${this.baseUrl}/${campaign}/orderswap/`,requestBody={encounter1:encounter1_pk,encounter2:encounter2_pk};return this.http.patch(url,requestBody).pipe((0,map.T)((entries=>entries.map((entry=>this.parseEntity(entry))))))}cutInsertEncounter(campaign,encounter,newOrderIndex){const url=`${this.baseUrl}/${campaign}/cutinsert/`,requestBody={encounter:encounter.pk,old_order_index:encounter.order_index,new_order_index:newOrderIndex};return this.http.patch(url,requestBody).pipe((0,map.T)((entries=>entries.map((entry=>this.parseEntity(entry))))))}parseEntity(data){return{...data,pk:data.id??data.pk,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const campaignName=data.campaign_details?.name,sessionNumber=data.diaryentry_details?.session_number,isMainSession=data.diaryentry_details?.is_main_session,authorName=data.diaryentry_details?.author_name,encounterTitle=data.title;return campaignName&&sessionNumber&&isMainSession&&authorName&&encounterTitle?()=>this.routingService.getRoutePath("diaryentry-encounter",{sessionNumber,isMainSession,authorName,campaign:campaignName,encounterTitle}):()=>""}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};EncounterService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],EncounterService);let LocationService=class LocationService extends base_service.d{constructor(routingService,http){super(http,"location"),this.routingService=routingService}readByParam(campaign,params){const locationName=params.name,url=`${this.baseUrl}/${campaign}/${params.parentLocationName}/${locationName}/`;return this.http.get(url).pipe((0,map.T)((data=>this.parseEntity(data))))}parseEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data),getAbsoluteRouterUrlForParentLocation:this.generateParentLocationUrlCallback(data)}}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const campaignName=data.campaign_details.name,locationName=data.name,parentLocationName=data.parent_location_details.name??"NONE";return()=>this.routingService.getRoutePath("location",{name:locationName,parent_name:parentLocationName,campaign:campaignName})}generateParentLocationUrlCallback(data){if(!(null!=data.parent_location_details))return null;const campaignName=data.campaign_details.name,parentLocationName=data.parent_location_details.name,grandParentLocationName=data.parent_location_details.parent_location??"NONE";return()=>this.routingService.getRoutePath("location",{name:parentLocationName,parent_name:grandParentLocationName,campaign:campaignName})}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};LocationService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],LocationService);var global_store=__webpack_require__("./src/app/global.store.ts"),toast_overlay_component=__webpack_require__("./src/design/organisms/toast-overlay/toast-overlay.component.ts"),array=__webpack_require__("./src/utils/array.ts"),logging=__webpack_require__("./src/utils/logging.ts"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts"),ngrx_operators=__webpack_require__("./node_modules/@ngrx/operators/fesm2022/ngrx-operators.mjs"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),noop=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js"),isObservable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isObservable.js");function rxMethod(generator,config){config?.injector||(0,core.assertInInjectionContext)(rxMethod);const sourceInjector=config?.injector??(0,core.inject)(core.Injector),source$=new Subject.B,sourceSub=generator(source$).subscribe();sourceInjector.get(core.DestroyRef).onDestroy((()=>sourceSub.unsubscribe()));const rxMethodFn=(input,config)=>{if(function isStatic(value){return!(0,core.isSignal)(value)&&!(0,isObservable.A)(value)}(input))return source$.next(input),{unsubscribe:noop.l};const instanceInjector=config?.injector??function getCallerInjector(){try{return(0,core.inject)(core.Injector)}catch{return null}}()??sourceInjector;if((0,core.isSignal)(input)){const watcher=(0,core.effect)((()=>{const value=input();(0,core.untracked)((()=>source$.next(value)))}),{injector:instanceInjector}),instanceSub={unsubscribe:()=>watcher.destroy()};return sourceSub.add(instanceSub),instanceSub}const instanceSub=input.subscribe((value=>source$.next(value)));return sourceSub.add(instanceSub),instanceInjector!==sourceInjector&&instanceInjector.get(core.DestroyRef).onDestroy((()=>instanceSub.unsubscribe())),instanceSub};return rxMethodFn.unsubscribe=sourceSub.unsubscribe.bind(sourceSub),rxMethodFn}var pipe=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/pipe.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),string=__webpack_require__("./src/utils/string.ts");function getKeys(name){return{name,dataField:(0,string.YF)(name),errorField:`${(0,string.YF)(name)}Error`,queryStateField:`${(0,string.YF)(name)}QueryState`,loadMethod:`load${(0,string.ZH)(name)}`}}const initialState={diaryEntryDeleteState:"init",encounterServerModel:void 0,_encountersInUpdateStateIds:new Set,_encountersBeingCreated:[],isUpdatingGlobally:!1},DiaryentryPageStore=(0,ngrx_signals.Eu)({providedIn:"root"},(0,ngrx_signals.Q2)(initialState),function withQueries(queriesFactory){return store=>{const queries=queriesFactory({...store.stateSignals,...store.computedSignals,...store.methods}),storeWithState=function withQueriesState(queries){return(0,ngrx_signals.Mj)((0,ngrx_signals.Q2)((()=>Object.keys(queries).map((queryName=>getKeys(queryName))).map((keys=>({[keys.dataField]:void 0,[keys.errorField]:void 0,[keys.queryStateField]:"init"}))).reduce(((acc,RequestState)=>({...acc,...RequestState})),{}))))}(queries)(store);return function withQueryMethods(queries){return(0,ngrx_signals.Mj)((0,ngrx_signals.RI)((store=>Object.keys(queries).map((queryName=>getKeys(queryName))).map((keys=>({[keys.loadMethod]:rxMethod((0,pipe.F)((0,tap.M)((()=>(0,ngrx_signals.M8)(store,{[keys.queryStateField]:"loading",[keys.errorField]:void 0}))),(0,switchMap.n)((params=>queries[keys.name](params))),(0,ngrx_operators.Hn)({next:val=>(0,ngrx_signals.M8)(store,{[keys.dataField]:val,[keys.queryStateField]:"success"}),error:err=>{(0,ngrx_signals.M8)(store,{[keys.errorField]:err,[keys.queryStateField]:"error"})}})))}))).reduce(((acc,queryLoadFunction)=>({...acc,...queryLoadFunction})),{}))))}(queries)(storeWithState)}}((()=>{const diaryentryService=(0,core.inject)(DiaryentryService),characterService=(0,core.inject)(CharacterService),locationService=(0,core.inject)(LocationService),globalStore=(0,core.inject)(global_store.v),campaignName$=(0,rxjs_interop.br)(globalStore.campaignName).pipe((0,rxjs_operators.u5)(),(0,shareReplay.t)(1));return{diaryentry:params=>campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>diaryentryService.readByParam(campaignName,params)))),campaignCharacters:()=>campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>characterService.getNonPlayerCharacters(campaignName)))),campaignLocations:()=>campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>locationService.campaignList(campaignName))))}})),(0,ngrx_signals.QO)((store=>({hasWritePermission:(0,core.inject)(global_store.v).hasRoleOrBetter("member"),diaryEntryEncounters:(0,core.computed)((()=>{const allEncounters=[...store.diaryentry()?.encounters??[],...store._encountersBeingCreated()];return(0,array.Z)(allEncounters,"order_index").map(((encounter,index)=>({encounter,isUpdating:store._encountersInUpdateStateIds().has(index)})))})),isUpdatingAnyEncounters:(0,core.computed)((()=>store._encountersInUpdateStateIds().size>0)),realEncounters:(0,core.computed)((()=>store.diaryentry()?.encounters??[]))}))),(0,ngrx_signals.RI)((store=>{const toastService=(0,core.inject)(toast_overlay_component.f),diaryentryService=(0,core.inject)(DiaryentryService),encounterConnectionService=(0,core.inject)(EncounterConnectionService),encounterService=(0,core.inject)(EncounterService),globalStore=(0,core.inject)(global_store.v),campaignName$=(0,rxjs_interop.br)(globalStore.campaignName).pipe((0,rxjs_operators.u5)(),(0,shareReplay.t)(1)),updateEncounterList=newEncounterList=>{const newDiaryEntry={...store.diaryentry(),encounters:newEncounterList};(0,ngrx_signals.M8)(store,{diaryentry:newDiaryEntry})},markAsBeingUpdated=encounterPk=>{const updatedIds=new Set(store._encountersInUpdateStateIds());updatedIds.add(encounterPk),(0,ngrx_signals.M8)(store,{_encountersInUpdateStateIds:updatedIds})},unmarkAsBeingUpdated=encounterPk=>{const updatedIds=new Set(store._encountersInUpdateStateIds());updatedIds.delete(encounterPk),(0,ngrx_signals.M8)(store,{_encountersInUpdateStateIds:updatedIds})};return{reset:()=>(0,ngrx_signals.M8)(store,{diaryentry:void 0,diaryentryError:void 0,diaryEntryDeleteState:"init",encounterServerModel:void 0,diaryentryQueryState:"init"}),addEmptyEncounterForCreation:encounter=>{(0,ngrx_signals.M8)(store,{_encountersBeingCreated:[...store._encountersBeingCreated(),encounter]})},removeEmptyEncounterForCreation:encounter=>{(0,ngrx_signals.M8)(store,{_encountersBeingCreated:store._encountersBeingCreated().filter((enc=>enc.order_index!==encounter.order_index))})},addEncounter:encounter=>{encounterService.createForDiaryentry(encounter).pipe((0,take.s)(1)).subscribe({next:newEncounterList=>{updateEncounterList(newEncounterList),(0,ngrx_signals.M8)(store,{_encountersBeingCreated:store._encountersBeingCreated().filter((enc=>enc.order_index!==encounter.order_index))})},error:err=>toastService.addToast(httpErrorToast(err))})},removeEncounter:encounter=>{markAsBeingUpdated(encounter.pk),encounterService.delete(encounter.pk).pipe((0,take.s)(1)).subscribe({next:()=>{unmarkAsBeingUpdated(encounter.pk);const newEncounterList=store.diaryentry()?.encounters?.filter((listEnc=>listEnc.pk!==encounter.pk))??[];updateEncounterList(newEncounterList)},error:err=>toastService.addToast(httpErrorToast(err))})},updateEncounter:encounter=>{markAsBeingUpdated(encounter.pk),encounterService.update(encounter.pk,encounter).pipe((0,take.s)(1)).subscribe({next:newEncounter=>{unmarkAsBeingUpdated(encounter.pk);const diaryentry=store.diaryentry(),newEncounterList=(0,array.U1)(diaryentry.encounters??[],newEncounter,"pk");updateEncounterList(newEncounterList)},error:err=>toastService.addToast(httpErrorToast(err))})},swapEncounters:(encounter1Pk,encounter2Pk)=>{markAsBeingUpdated(encounter1Pk),markAsBeingUpdated(encounter2Pk),(0,ngrx_signals.M8)(store,{isUpdatingGlobally:!0}),campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>encounterService.swapEncounterOrder(campaignName,encounter1Pk,encounter2Pk)))).subscribe({next:([updatedEnc1,updatedEnc2])=>{unmarkAsBeingUpdated(encounter1Pk),unmarkAsBeingUpdated(encounter2Pk);const newEncounterList1=(0,array.U1)(store.realEncounters(),updatedEnc1,"pk"),newEncounterList2=(0,array.U1)(newEncounterList1,updatedEnc2,"pk");updateEncounterList(newEncounterList2),(0,ngrx_signals.M8)(store,{isUpdatingGlobally:!1})},error:err=>toastService.addToast(httpErrorToast(err))})},cutInsertEncounter:(encounter,newOrderIndex)=>{markAsBeingUpdated(encounter.pk),(0,ngrx_signals.M8)(store,{isUpdatingGlobally:!0}),campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>encounterService.cutInsertEncounter(campaignName,encounter,newOrderIndex)))).subscribe({next:newEncounterList=>{unmarkAsBeingUpdated(encounter.pk),updateEncounterList(newEncounterList),(0,ngrx_signals.M8)(store,{isUpdatingGlobally:!1})},error:err=>toastService.addToast(httpErrorToast(err))})},addEncounterConnection:connection=>encounterConnectionService.create(connection).pipe((0,take.s)(1)).subscribe({next:newConnection=>{const diaryentry=store.diaryentry(),encounter=diaryentry.encounters.find((enc=>enc.pk===newConnection.encounter)),newEncounter={...encounter,encounterConnections:[...encounter.encounterConnections??[],newConnection]},newEncounterList=(0,array.U1)(diaryentry.encounters??[],newEncounter,"pk");updateEncounterList(newEncounterList)},error:err=>toastService.addToast(httpErrorToast(err))}),removeEncounterConnection:connection=>{encounterConnectionService.delete(connection.pk).pipe((0,take.s)(1)).subscribe((()=>{const diaryentry=store.diaryentry(),encounter=diaryentry.encounters.find((enc=>enc.pk===connection.encounter)),newEncounter={...encounter,encounterConnections:encounter.encounterConnections?.filter((con=>con.pk!==connection.pk))},newEncounterList=(0,array.U1)(diaryentry.encounters??[],newEncounter,"pk");updateEncounterList(newEncounterList)}))},deleteDiaryEntry:()=>{(0,ngrx_signals.M8)(store,{diaryEntryDeleteState:"loading"}),diaryentryService.delete(store.diaryentry()?.pk).pipe((0,take.s)(1)).subscribe({next:()=>(0,ngrx_signals.M8)(store,{diaryentry:void 0,diaryentryError:void 0,diaryEntryDeleteState:"success"}),error:err=>toastService.addToast(httpErrorToast(err))})}}})),(0,ngrx_signals.TK)((store=>({onInit:()=>{(0,logging.R)("DiaryEntryPageStore",store)}}))));var router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),slideDown=__webpack_require__("./src/design/animations/slideDown.ts"),arrow_button_component=__webpack_require__("./src/design/atoms/arrow-button/arrow-button.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts"),encounter_component=__webpack_require__("./src/design/organisms/encounter/encounter.component.ts");let DiaryentryEncountersComponent=class DiaryentryEncountersComponent{constructor(){this.store=(0,core.inject)(DiaryentryPageStore),this.route=(0,core.inject)(router.nX),this.diaryEntryPk=(0,core.computed)((()=>this.store.diaryentry()?.pk)),this.campaignCharacters=this.store.campaignCharacters,this.campaignLocations=this.store.campaignLocations,this.encounterServerModel=this.store.encounterServerModel,this.canUpdate=this.store.hasWritePermission,this.canDelete=this.store.hasWritePermission,this.canCreate=this.store.hasWritePermission,this.state=(0,core.input)("READ"),this.encounterElements=(0,core.viewChildren)("encounter"),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter,this.encounterCreate=new core.EventEmitter,this.encounterCutInsert=new core.EventEmitter,this.encounterSwap=new core.EventEmitter,this.addUnfinishedEncounter=(0,core.output)(),this.encountersToAdd=(0,core.signal)([]),this.isUpdatingGlobally=this.store.isUpdatingGlobally,this.isUpdatingAnything=this.store.isUpdatingAnyEncounters,this.cutEncounterIndex=(0,core.signal)(void 0),this.diaryEntryEncounters=this.store.diaryEntryEncounters;const encounterTitle=this.route.snapshot.params.encounterTitle;encounterTitle&&this.scrollToEncounter(encounterTitle)}addEmptyEncounterAtIndex(listIndex){const newOrderIndex=this.getOrderIndexForNewEncounter(listIndex),newEncounter={diaryentry:this.diaryEntryPk(),title:"New Encounter",order_index:newOrderIndex,description:""};this.store.addEmptyEncounterForCreation(newEncounter)}onInsertExcisedEncounter(insertionIndex){const cutEncounterIndex=this.cutEncounterIndex();if(null==cutEncounterIndex)return;if([cutEncounterIndex,cutEncounterIndex-1].includes(insertionIndex))return;let newOrderIndex;if(insertionIndex>this.diaryEntryEncounters().length){newOrderIndex=nextOrderIndex(this.diaryEntryEncounters()[this.diaryEntryEncounters().length-1].encounter)}else{newOrderIndex=this.diaryEntryEncounters()[insertionIndex].encounter.order_index}const encounterToInsert=this.diaryEntryEncounters()[cutEncounterIndex].encounter;this.store.cutInsertEncounter(encounterToInsert,newOrderIndex)}onExcisionClick(encounterIndex){const isAlreadyCuttingEncounter=null!=this.cutEncounterIndex(),isCuttingThisEncounter=this.cutEncounterIndex()===encounterIndex;isAlreadyCuttingEncounter&&isCuttingThisEncounter?this.cutEncounterIndex.set(void 0):isAlreadyCuttingEncounter||this.cutEncounterIndex.set(encounterIndex)}onEncounterOrderIncrease(encounterIndex){if(encounterIndex===this.diaryEntryEncounters().length-1)return;const encounter=this.diaryEntryEncounters()[encounterIndex].encounter,nextEncounter=this.nextRealEncounter(encounterIndex+1);nextEncounter&&this.store.swapEncounters(encounter.pk,nextEncounter.pk)}onEncounterOrderDecrease(encounterIndex){if(0===encounterIndex)return;const encounter=this.diaryEntryEncounters()[encounterIndex].encounter,priorEncounter=this.priorRealEncounter(encounterIndex-1);priorEncounter&&this.store.swapEncounters(encounter.pk,priorEncounter.pk)}onEncounterCreateCancel(encounterIndex){const createEncounterToRemove=this.diaryEntryEncounters()[encounterIndex].encounter;this.store.removeEmptyEncounterForCreation(createEncounterToRemove)}onEncounterDelete(encounterIndex){const encounterToDelete=this.diaryEntryEncounters()[encounterIndex].encounter;this.store.removeEncounter(encounterToDelete)}onEncounterCreate(encounter){const newEncounter={...encounter,order_index:nextOrderIndex(encounter)};this.encounterCreate.emit(newEncounter),this.store.removeEmptyEncounterForCreation(encounter)}scrollToEncounter(encounterTitle){(0,rxjs_interop.br)(this.encounterElements).pipe((0,rxjs_interop.pQ)(),(0,map.T)((elements=>elements.find((el=>el.nativeElement.id===encounterTitle)))),(0,rxjs_operators.u5)(),(0,take.s)(1)).subscribe((encounterElement=>encounterElement.nativeElement.scrollIntoView({behavior:"instant"})))}getOrderIndexForNewEncounter(insertionIndex){const isNewFirstEncounter=insertionIndex<0,isEmptyDiaryEntry=0===this.store.realEncounters().length,isNewFirstEncounterInFullDiaryentry=isNewFirstEncounter&&!isEmptyDiaryEntry,isLastEncounterInFullDiaryentry=insertionIndex>=this.store.realEncounters().length&&!isEmptyDiaryEntry;if(isEmptyDiaryEntry)return 0;if(isNewFirstEncounterInFullDiaryentry){return function priorOrderIndex(encounter){return getUnshiftedOrderIndex(encounter)-ORDER_INDEX_INCREMENT}(this.store.realEncounters()[0])}if(isLastEncounterInFullDiaryentry){return nextOrderIndex(this.store.realEncounters()[this.store.realEncounters().length-1])}return function getShiftedOrderIndex(encounter){return hasShiftedOrderIndex(encounter)?encounter.order_index:encounter.order_index+1}(this.diaryEntryEncounters()[insertionIndex].encounter)}isRealEncounter(encounter){return"pk"in encounter}nextRealEncounter(encounterIndex){const realEncountersAfterIndex=this.diaryEntryEncounters().slice(encounterIndex).filter((encounter=>this.isRealEncounter(encounter.encounter)));return realEncountersAfterIndex[0]?.encounter}priorRealEncounter(encounterIndex){const realEncountersBeforeIndex=this.diaryEntryEncounters().slice(0,encounterIndex+1).reverse().filter((encounter=>this.isRealEncounter(encounter.encounter)));return realEncountersBeforeIndex[0]?.encounter}static{this.ctorParameters=()=>[]}static{this.propDecorators={state:[{type:core.Input,args:[{isSignal:!0,alias:"state",required:!1,transform:void 0}]}],encounterElements:[{type:core.ViewChildren,args:["encounter",{isSignal:!0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}],encounterCreate:[{type:core.Output}],encounterCutInsert:[{type:core.Output}],encounterSwap:[{type:core.Output}],addUnfinishedEncounter:[{type:core.Output,args:["addUnfinishedEncounter"]}]}}};DiaryentryEncountersComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-diaryentry-encounters",template:'\n @if (!isUpdatingGlobally()) {\n \x3c!-- Insert new first Encounter --\x3e\n @if (state() === "EDIT") {\n
\n
\n @if (canCreate()) {\n \n }\n @if (canUpdate()) {\n \n }\n
\n
\n }\n\n \x3c!-- Diaryentry - Encounters --\x3e\n
\n @for (entryEncounter of diaryEntryEncounters(); track entryEncounter) {\n \x3c!-- Encounter --\x3e\n
\n @switch (state()) {\n @case ("READ") {\n
\n }\n @case ("EDIT") {\n
\n }\n }\n\n \x3c!-- Insert new Encounter --\x3e\n @if (state() === "EDIT" && (canCreate() || canUpdate())) {\n
\n @if (canCreate()) {\n \n }\n @if (canUpdate()) {\n \n }\n
\n }\n
\n }\n
\n } @else {\n
\n }\n
\n\n\n \n {{ entryEncounter.encounter?.title }}\n \n \n \n\n\n \n @if (!context.entry.isUpdating) {\n \n @if (canUpdate() && context.entry.encounter.pk != null) {\n \n \n \n
\n }\n } @else {\n \n }\n \n \n\n\x3c!-- Loading Spinner --\x3e\n \n\n\n \n \n \n',standalone:!0,imports:[button_component.Q,card_component.i,html_text_component.m,encounter_component.L,arrow_button_component.R,spinner_component.t,common.NgTemplateOutlet],animations:[slideDown.sb],styles:[diaryentry_encounters_componentngResource_default()]})],DiaryentryEncountersComponent)},"./src/design/organisms/encounter/encounter.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{L:()=>EncounterComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var encounter_componentngResource=__webpack_require__("./src/design/organisms/encounter/encounter.component.scss?ngResource"),encounter_componentngResource_default=__webpack_require__.n(encounter_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),array=__webpack_require__("./src/utils/array.ts"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts");let EncounterComponent=class EncounterComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.characters=core.input.required(),this.locations=core.input.required(),this.encounter=(0,core.input)(),this.serverModel=(0,core.input)(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.initialState=(0,core.input)("DISPLAY"),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter,this.encounterCreate=new core.EventEmitter,this.encounterCreateCancel=new core.EventEmitter,this.userModel=(0,core.signal)({}),this.state=(0,core.signal)("DISPLAY"),this.badgeEntries=(0,core.computed)((()=>{const encounterConnections=this.encounter()?.encounterConnections??[];return this.parseConnection(encounterConnections)})),this.campaignName=(0,core.computed)((()=>this.encounter()?.campaign_details?.name)),this.locations$=(0,rxjs_interop.br)(this.locations).pipe((0,rxjs_operators.u5)()),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"title",inputKind:"STRING"}),this.formlyService.buildOverviewSelectConfig({key:"location",label:"Encounter Location",sortProp:"name_full",campaign:this.campaignName(),options$:this.locations$.pipe((0,map.T)((locs=>(0,array.Z)(locs,"name_full")))),labelProp:"name_full",required:!1}),this.formlyService.buildEditorConfig({key:"description",required:!0})]))}ngOnInit(){const model="CREATE"===this.initialState()&&this.canCreate()?{}:void 0;this.changeState(this.initialState(),model)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onEncounterCreate(encounter){this.encounterCreate.emit({...this.encounter(),...encounter}),this.changeState("DISPLAY",encounter)}onEncounterDelete(){this.encounterDelete.emit(this.encounter()),this.changeState("DISPLAY",void 0)}onEncounterUpdate(encounter){this.encounterUpdate.emit(encounter),this.changeState("DISPLAY",void 0)}onEncounterCreateCancel(){this.encounterCreateCancel.emit(),this.changeState("DISPLAY",void 0)}onConnectionDelete(connection){this.canDelete()&&this.connectionDelete.emit(connection)}onConnectionCreate(character){const newConnection={campaign:this.encounter()?.campaign_details?.id,encounter:this.encounter()?.pk,character:character.pk};this.connectionCreate.emit(newConnection)}onToggle(toggled){if("CREATE"===this.state())return void this.encounterCreateCancel.emit();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.encounter()}:void 0;this.changeState(nextState,nextModel)}parseConnection(connections){return connections.map((con=>{const characterName=con.character_details?.name;return{text:characterName,badgeValue:con,link:this.routingService.getRoutePath("character",{name:characterName,campaign:this.campaignName()})}}))}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={characters:[{type:core.Input,args:[{isSignal:!0,alias:"characters",required:!0,transform:void 0}]}],locations:[{type:core.Input,args:[{isSignal:!0,alias:"locations",required:!0,transform:void 0}]}],encounter:[{type:core.Input,args:[{isSignal:!0,alias:"encounter",required:!1,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],initialState:[{type:core.Input,args:[{isSignal:!0,alias:"initialState",required:!1,transform:void 0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}],encounterCreate:[{type:core.Output}],encounterCreateCancel:[{type:core.Output}]}}};EncounterComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-encounter",template:'@if (encounter() || state() === "CREATE") {\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n\n @if (canUpdate()) {\n \n }\n \n\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n {{ encounter()?.title }}\n \n\n\n \x3c!-- Encounter --\x3e\n @let encounterVal = encounter();\n @if (encounterVal) {\n \n }\n\n \n\n \x3c!-- Encounter Connections --\x3e\n \n\n \x3c!-- Encounter Footer/Delete Toggle --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update "{{ encounter()?.title }}" \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canUpdate() && state() === "UPDATE") {\n \n } @else if (canUpdate() && state() === "OUTDATEDUPDATE") {\n \n }\n \n\n Create new Encounter \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canCreate() && state() === "CREATE") {\n \n }\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,separator_component.F,molecules.pn,molecules.Ts,molecules.s2,molecules.zx],styles:[encounter_componentngResource_default()]})],EncounterComponent)},"./src/design/organisms/toast-overlay/toast-overlay.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{r:()=>ToastOverlayComponent,f:()=>ToastService});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var toast_overlay_componentngResource=__webpack_require__("./src/design/organisms/toast-overlay/toast-overlay.component.scss?ngResource"),toast_overlay_componentngResource_default=__webpack_require__.n(toast_overlay_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),slideDown=__webpack_require__("./src/design/animations/slideDown.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),logging=__webpack_require__("./src/utils/logging.ts");let ToastService=class ToastService{constructor(){this.toasts=(0,core.signal)([]),this.currentToast=(0,core.computed)((()=>this.toasts()[0]))}addToast(newToast){(0,logging.R)(this.addToast.name,newToast);const toasts=this.toasts();newToast.important?this.toasts.set([newToast,...toasts]):this.toasts.set([...toasts,newToast])}dismissToast(){const[_,...newToastList]=this.toasts();this.toasts.set(newToastList)}};ToastService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],ToastService);let ToastOverlayComponent=class ToastOverlayComponent{constructor(){this.toastService=(0,core.inject)(ToastService),this.currentToast=this.toastService.currentToast,this.icon=(0,core.computed)((()=>{const currentToast=this.currentToast();if(currentToast)return this.toHeaderIcon(currentToast.type,currentToast.header?.icon)}))}dismissCurrentToast(){const currentToast=this.currentToast();if(!currentToast)return;const onHide=currentToast.onHide;onHide&&onHide(),this.toastService.dismissToast()}toHeaderIcon(toastType,icon){if(null!=icon)return icon;switch(toastType){case"DANGER":return"triangle-exclamation";case"WARNING":return"circle-exclamation";case"INFO":return"info-circle";case"SUCCESS":return"check";default:return"info"}}};ToastOverlayComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-toast-overlay",standalone:!0,imports:[ng_bootstrap.VR,button_component.Q,icon_component.R,common.NgTemplateOutlet],animations:[slideDown.st],template:'@let toast = currentToast();\n@let onToastClick = toast?.onToastClick;\n@if (toast && onToastClick) {\n \n \n \n} @else if (toast) {\n \n}\n\n\n @if (toast) {\n @if (toast.header) {\n 0"\n [delay]="toast.dismissMs ? toast.dismissMs : 0"\n [ariaLive]="toast.important ? \'alert\' : \'polite\'"\n [animation]="true"\n (hidden)="dismissCurrentToast()"\n (shown)="toast.onShow ? toast.onShow() : undefined"\n >\n \n \n \n\n \n \n } @else {\n 0"\n [delay]="toast.dismissMs ? toast.dismissMs : 0"\n [ariaLive]="toast.important ? \'alert\' : \'polite\'"\n [animation]="true"\n (hidden)="dismissCurrentToast()"\n (shown)="toast.onShow ? toast.onShow() : undefined"\n >\n \n \n }\n }\n \n\n\n \n
\n @let bodyIcon = toast?.body?.icon;\n @if (bodyIcon) {\n \n }\n\n @if (toast?.body?.text) {\n
\n }\n \n\n
\n @let firstButton = toast?.body?.buttons?.[0];\n @if (firstButton) {\n \n }\n @let secondButton = toast?.body?.buttons?.[1];\n @if (secondButton) {\n \n }\n
\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[toast_overlay_componentngResource_default()]})],ToastOverlayComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/clipboard.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function copyToClipboard(text){const windowSelection=window.getSelection(),documentSelection=window.getSelection();var userSelectedTextRange=void 0;(function userHasElementsSelected(){const selection=document.getSelection();if(null==selection)return!1;return selection?.rangeCount>0})()&&(userSelectedTextRange=documentSelection.getRangeAt(0),windowSelection.removeRange(userSelectedTextRange));const textContainerElement=function createTextContainerElement(text){const textContainerElement=document.createElement("div");textContainerElement.innerHTML=text;const strippedText=textContainerElement.textContent;return textContainerElement.innerHTML=strippedText.replaceAll(">"," > ").slice(4),textContainerElement.style.position="absolute",textContainerElement.style.left="-9999px",textContainerElement}(text);document.body.appendChild(textContainerElement);const copyRange=function selectElement(element){const selectedRange=document.createRange();return selectedRange.selectNode(element),window.getSelection()?.addRange(selectedRange),selectedRange}(textContainerElement);!function copyCurrentSelection(){try{document.execCommand("copy")}catch(err){window.alert("Your Browser Doesn't support this! Error : "+err)}}(),windowSelection.removeRange(copyRange),document.body.removeChild(textContainerElement),userSelectedTextRange&&windowSelection.addRange(userSelectedTextRange)}__webpack_require__.d(__webpack_exports__,{l:()=>copyToClipboard})},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/arrow-button/arrow-button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".btn {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2rem;\n padding: var(--spacer-3) var(--spacer-2);\n}\n.btn-disabled {\n cursor: not-allowed;\n}\n.btn-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/diaryentry-encounters/diaryentry-encounters.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".list {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n}\n.list--loading {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.list__buttons {\n padding: 0;\n margin-bottom: var(--spacer-2);\n}\n\n.buttons {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.buttons__button {\n display: flex;\n}\n.buttons__button--right {\n display: none;\n}\n@media (min-width: 768px) {\n .buttons__button--right {\n display: flex;\n }\n}\n\n.repeated-unit {\n padding: 0;\n scroll-margin-top: var(--spacer-5);\n}\n@media (min-width: 768px) {\n .repeated-unit {\n padding: unset;\n }\n}\n\n.encounter-card {\n display: flex;\n justify-content: center;\n --card-flex-direction: column;\n --card-padding: var(--spacer-3);\n}\n@media (min-width: 768px) {\n .encounter-card {\n --card-flex-direction: row;\n }\n}\n.encounter-card__encounter {\n flex: 1;\n}\n.encounter-card__side-buttons {\n height: 100%;\n}\n\n.side-buttons {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n margin-left: var(--spacer-1);\n}\n@media (min-width: 768px) {\n .side-buttons {\n flex-direction: column;\n justify-content: unset;\n }\n}\n.side-buttons__button--edit {\n display: none;\n margin-bottom: var(--spacer-4);\n}\n@media (min-width: 768px) {\n .side-buttons__button--edit {\n display: unset;\n }\n}\n.side-buttons__button--arrow {\n padding: var(--spacer-1) var(--spacer-0);\n}\n\n.spinner {\n width: 100px;\n height: 100px;\n --thickness: 60px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/encounter/encounter.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--spacer-4);\n}\n.card__heading {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.card__text {\n margin-bottom: var(--spacer-1);\n}\n.card__connections {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n.card__edit-button {\n align-self: flex-start;\n}\n\n.connections {\n display: inline-flex;\n}\n.connections__label {\n margin-right: var(--spacer-4);\n}\n.connections__list {\n display: inline-flex;\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.connections__connection, .connections__create-form {\n margin: var(--spacer-0) var(--spacer-2) var(--spacer-2) var(--spacer-1);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/toast-overlay/toast-overlay.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n position: absolute;\n}\n\n.toast:focus, .toast:focus-within, .toast:hover, .toast:focus-visible {\n outline: var(--focus-outline);\n}\n\n.toast {\n position: fixed;\n bottom: 10%;\n width: 93%;\n right: 3.5%;\n --bs-light-rgb: var(--bs-white);\n --bs-toast-header-color: var(--bs-white);\n --bs-toast-color: var(--bs-white);\n --toast-padding-x: var(--bs-toast-padding-x);\n --toast-padding-y: calc(var(--bs-toast-padding-y) / 2);\n --bs-toast-border-width: 3px;\n}\n.toast--primary {\n --bs-border-color-translucent: var(--bs-primary);\n}\n.toast--secondary {\n --bs-border-color-translucent: var(--bs-secondary);\n}\n.toast--success {\n --bs-border-color-translucent: var(--bs-success);\n}\n.toast--danger {\n --bs-border-color-translucent: var(--bs-danger);\n}\n.toast--warning {\n --bs-border-color-translucent: var(--bs-warning);\n}\n.toast--info {\n --bs-border-color-translucent: var(--bs-info);\n}\n.toast--light {\n --bs-border-color-translucent: var(--bs-light);\n}\n.toast--dark {\n --bs-border-color-translucent: var(--bs-dark);\n}\n@media (min-width: 576px) {\n .toast {\n width: fit-content;\n max-width: 50%;\n bottom: 5%;\n }\n}\n\n.toast-header__text {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacer-2);\n flex: 1;\n font-weight: bold;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n}\n.body__text {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--spacer-2);\n text-align: start;\n}\n.body__text-container {\n max-height: calc(var(--bs-body-font-size) * 8);\n max-width: 100%;\n overflow: auto;\n}\n.body__button {\n width: fit-content;\n}\n.body__button-container {\n display: flex;\n flex-direction: row;\n gap: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/1917.f1582b57.iframe.bundle.js b/1917.f1582b57.iframe.bundle.js
new file mode 100644
index 000000000..abb214fb6
--- /dev/null
+++ b/1917.f1582b57.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[1917],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/animations/slideDown.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{V4:()=>slideOutFromBottom,sb:()=>slideUpFromBottom,st:()=>slideRight});var _angular_animations__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const inactiveStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({opacity:.2,transform:"translateY(50%)"}),activeStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({opacity:1,transform:"translateY(0%)"}),slideUpFromBottom=((0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-out",activeStyle)]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-in",inactiveStyle)])]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideUpFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-out",activeStyle)])])),slideOutFromBottom=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideOutFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-in",inactiveStyle)])]),inactiveSlideRightStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({transform:"translateX(100%)"}),activeSlideRightStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({transform:"translateX(0%)"}),slideRight=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideRight",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveSlideRightStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("250ms ease-in-out",activeSlideRightStyle)]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeSlideRightStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("250ms ease-in-out",inactiveSlideRightStyle)])])},"./src/design/atoms/arrow-button/arrow-button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>ArrowButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var arrow_button_componentngResource=__webpack_require__("./src/design/atoms/arrow-button/arrow-button.component.scss?ngResource"),arrow_button_componentngResource_default=__webpack_require__.n(arrow_button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let ArrowButtonComponent=class ArrowButtonComponent{constructor(){this.icon=core.input.required(),this.kind=(0,core.input)("SECONDARY"),this.outline=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.iconName=(0,core.computed)((()=>`arrow-${this.icon()}-long`))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}],kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!1,transform:void 0}]}],outline:[{type:core.Input,args:[{isSignal:!0,alias:"outline",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ArrowButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-arrow-button",template:' \n',standalone:!0,imports:[icon_component.R,button_component.Q],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[arrow_button_componentngResource_default()]})],ArrowButtonComponent)},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/diaryentry-encounters/diaryentry-encounters.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{j:()=>DiaryentryEncountersComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var diaryentry_encounters_componentngResource=__webpack_require__("./src/design/organisms/diaryentry-encounters/diaryentry-encounters.component.scss?ngResource"),diaryentry_encounters_componentngResource_default=__webpack_require__.n(diaryentry_encounters_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");const ORDER_INDEX_INCREMENT=10;function hasShiftedOrderIndex(encounter){return encounter.order_index%ORDER_INDEX_INCREMENT>0}function getUnshiftedOrderIndex(encounter){return Math.floor(encounter.order_index/ORDER_INDEX_INCREMENT)*ORDER_INDEX_INCREMENT}function nextOrderIndex(encounter){return getUnshiftedOrderIndex(encounter)+ORDER_INDEX_INCREMENT}var rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),ngrx_signals=__webpack_require__("./node_modules/@ngrx/signals/fesm2022/ngrx-signals.mjs"),shareReplay=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js"),take=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/take.js"),switchMap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js"),clipboard=__webpack_require__("./src/utils/clipboard.ts");function httpErrorToast(err){if(!("number"===err.status?.constructor?.name.toLowerCase()))throw err;const buttons=500===err.status?[{label:"Copy to Clipboard",icon:"clipboard",onClick:()=>(0,clipboard.l)(err.error)}]:[];return{type:"DANGER",body:{text:`\n Please copy the error and send it to the developer: \n ${error=err,JSON.stringify(error.error)}\n `,buttons},header:{text:getErrorHeading(err)}};var error}function getErrorHeading(error){switch(error.status){case 0:case 504:return"This can't be done without an internet connection";case 200:return"The target URL for the requested action does not seem to exist";case 500:return"The server exploded somehow!";default:return"An error occurred"}}var http=__webpack_require__("./node_modules/@angular/common/fesm2022/http.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),base_service=__webpack_require__("./src/app/_services/base.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts");let CharacterService=class CharacterService extends base_service.d{constructor(routingService,http){super(http,"character"),this.routingService=routingService}getPlayerCharacters(campaign){const url=`${this.baseUrl}/${campaign}/playercharacters/`;return this.http.get(url).pipe((0,map.T)((entries=>entries.map((entry=>this.parseOverviewEntity(entry))))))}getNonPlayerCharacters(campaign){const url=`${this.baseUrl}/${campaign}/nonplayercharacters/`;return this.http.get(url).pipe((0,map.T)((entries=>entries.map((entry=>this.parseOverviewEntity(entry))))))}parseEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const campaignName=data.campaign_details.name,characterName=data.name;return()=>this.routingService.getRoutePath("character",{name:characterName,campaign:campaignName})}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};CharacterService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],CharacterService);let DiaryentryService=class DiaryentryService extends base_service.d{constructor(routingService,http){super(http,"diaryentry"),this.routingService=routingService}readByParam(campaign,params){const authorName=params.name,url=`${this.baseUrl}/${campaign}/${params.sessionNumber}/${params.isMainSession}/${authorName}/`;return this.http.get(url).pipe((0,map.T)((diaryEntry=>this.parseDiaryEntry(diaryEntry))))}parseDiaryEntry(entry){return{...entry,author:entry?.author_details?.pk,session:entry?.session_details?.pk}}parseEntity(data){return{...data,author:data?.author_details?.pk,session:data?.session_details?.pk,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const campaignName=data.campaign_details.name,sessionNumber=data.session_details.session_number,isMainSession=data.session_details.is_main_session_int,authorName=data.author_details.name;return()=>this.routingService.getRoutePath("diaryentry",{sessionNumber,isMainSession,authorName,campaign:campaignName})}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};DiaryentryService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],DiaryentryService);let EncounterConnectionService=class EncounterConnectionService extends base_service.d{constructor(http){super(http,"encounterconnection")}create(data){return super.create({...data,character:`${data.character}`})}parseEntity(data){return data}parseOverviewEntity(data){throw"CharacterPlayerClassConnection does not have an overview endpoint"}static{this.ctorParameters=()=>[{type:http.Qq}]}};EncounterConnectionService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],EncounterConnectionService);let EncounterService=class EncounterService extends base_service.d{constructor(routingService,http){super(http,"encounter"),this.routingService=routingService}getDiaryEntryEncounters(session_pk,authorName){const url=`${this.baseUrl}/session/${session_pk}/${authorName}`;return this.http.get(url).pipe((0,map.T)((entries=>entries.map((entry=>this.parseEntity(entry))))))}createForDiaryentry(encounter){const url=`${this.baseUrl}/`;return this.http.post(url,encounter).pipe((0,map.T)((entries=>entries.map((entry=>this.parseEntity(entry))))))}swapEncounterOrder(campaign,encounter1_pk,encounter2_pk){const url=`${this.baseUrl}/${campaign}/orderswap/`,requestBody={encounter1:encounter1_pk,encounter2:encounter2_pk};return this.http.patch(url,requestBody).pipe((0,map.T)((entries=>entries.map((entry=>this.parseEntity(entry))))))}cutInsertEncounter(campaign,encounter,newOrderIndex){const url=`${this.baseUrl}/${campaign}/cutinsert/`,requestBody={encounter:encounter.pk,old_order_index:encounter.order_index,new_order_index:newOrderIndex};return this.http.patch(url,requestBody).pipe((0,map.T)((entries=>entries.map((entry=>this.parseEntity(entry))))))}parseEntity(data){return{...data,pk:data.id??data.pk,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const campaignName=data.campaign_details?.name,sessionNumber=data.diaryentry_details?.session_number,isMainSession=data.diaryentry_details?.is_main_session,authorName=data.diaryentry_details?.author_name,encounterTitle=data.title;return campaignName&&sessionNumber&&isMainSession&&authorName&&encounterTitle?()=>this.routingService.getRoutePath("diaryentry-encounter",{sessionNumber,isMainSession,authorName,campaign:campaignName,encounterTitle}):()=>""}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};EncounterService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],EncounterService);let LocationService=class LocationService extends base_service.d{constructor(routingService,http){super(http,"location"),this.routingService=routingService}readByParam(campaign,params){const locationName=params.name,url=`${this.baseUrl}/${campaign}/${params.parentLocationName}/${locationName}/`;return this.http.get(url).pipe((0,map.T)((data=>this.parseEntity(data))))}parseEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data),getAbsoluteRouterUrlForParentLocation:this.generateParentLocationUrlCallback(data)}}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const campaignName=data.campaign_details.name,locationName=data.name,parentLocationName=data.parent_location_details.name??"NONE";return()=>this.routingService.getRoutePath("location",{name:locationName,parent_name:parentLocationName,campaign:campaignName})}generateParentLocationUrlCallback(data){if(!(null!=data.parent_location_details))return null;const campaignName=data.campaign_details.name,parentLocationName=data.parent_location_details.name,grandParentLocationName=data.parent_location_details.parent_location??"NONE";return()=>this.routingService.getRoutePath("location",{name:parentLocationName,parent_name:grandParentLocationName,campaign:campaignName})}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};LocationService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],LocationService);var global_store=__webpack_require__("./src/app/global.store.ts"),toast_overlay_component=__webpack_require__("./src/design/organisms/toast-overlay/toast-overlay.component.ts"),array=__webpack_require__("./src/utils/array.ts"),logging=__webpack_require__("./src/utils/logging.ts"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts"),ngrx_operators=__webpack_require__("./node_modules/@ngrx/operators/fesm2022/ngrx-operators.mjs"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),noop=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js"),isObservable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isObservable.js");function rxMethod(generator,config){config?.injector||(0,core.assertInInjectionContext)(rxMethod);const sourceInjector=config?.injector??(0,core.inject)(core.Injector),source$=new Subject.B,sourceSub=generator(source$).subscribe();sourceInjector.get(core.DestroyRef).onDestroy((()=>sourceSub.unsubscribe()));const rxMethodFn=(input,config)=>{if(function isStatic(value){return!(0,core.isSignal)(value)&&!(0,isObservable.A)(value)}(input))return source$.next(input),{unsubscribe:noop.l};const instanceInjector=config?.injector??function getCallerInjector(){try{return(0,core.inject)(core.Injector)}catch{return null}}()??sourceInjector;if((0,core.isSignal)(input)){const watcher=(0,core.effect)((()=>{const value=input();(0,core.untracked)((()=>source$.next(value)))}),{injector:instanceInjector}),instanceSub={unsubscribe:()=>watcher.destroy()};return sourceSub.add(instanceSub),instanceSub}const instanceSub=input.subscribe((value=>source$.next(value)));return sourceSub.add(instanceSub),instanceInjector!==sourceInjector&&instanceInjector.get(core.DestroyRef).onDestroy((()=>instanceSub.unsubscribe())),instanceSub};return rxMethodFn.unsubscribe=sourceSub.unsubscribe.bind(sourceSub),rxMethodFn}var pipe=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/pipe.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),string=__webpack_require__("./src/utils/string.ts");function getKeys(name){return{name,dataField:(0,string.YF)(name),errorField:`${(0,string.YF)(name)}Error`,queryStateField:`${(0,string.YF)(name)}QueryState`,loadMethod:`load${(0,string.ZH)(name)}`}}const initialState={diaryEntryDeleteState:"init",encounterServerModel:void 0,_encountersInUpdateStateIds:new Set,_encountersBeingCreated:[],isUpdatingGlobally:!1},DiaryentryPageStore=(0,ngrx_signals.Eu)({providedIn:"root"},(0,ngrx_signals.Q2)(initialState),function withQueries(queriesFactory){return store=>{const queries=queriesFactory({...store.stateSignals,...store.computedSignals,...store.methods}),storeWithState=function withQueriesState(queries){return(0,ngrx_signals.Mj)((0,ngrx_signals.Q2)((()=>Object.keys(queries).map((queryName=>getKeys(queryName))).map((keys=>({[keys.dataField]:void 0,[keys.errorField]:void 0,[keys.queryStateField]:"init"}))).reduce(((acc,RequestState)=>({...acc,...RequestState})),{}))))}(queries)(store);return function withQueryMethods(queries){return(0,ngrx_signals.Mj)((0,ngrx_signals.RI)((store=>Object.keys(queries).map((queryName=>getKeys(queryName))).map((keys=>({[keys.loadMethod]:rxMethod((0,pipe.F)((0,tap.M)((()=>(0,ngrx_signals.M8)(store,{[keys.queryStateField]:"loading",[keys.errorField]:void 0}))),(0,switchMap.n)((params=>queries[keys.name](params))),(0,ngrx_operators.Hn)({next:val=>(0,ngrx_signals.M8)(store,{[keys.dataField]:val,[keys.queryStateField]:"success"}),error:err=>{(0,ngrx_signals.M8)(store,{[keys.errorField]:err,[keys.queryStateField]:"error"})}})))}))).reduce(((acc,queryLoadFunction)=>({...acc,...queryLoadFunction})),{}))))}(queries)(storeWithState)}}((()=>{const diaryentryService=(0,core.inject)(DiaryentryService),characterService=(0,core.inject)(CharacterService),locationService=(0,core.inject)(LocationService),globalStore=(0,core.inject)(global_store.v),campaignName$=(0,rxjs_interop.br)(globalStore.campaignName).pipe((0,rxjs_operators.u5)(),(0,shareReplay.t)(1));return{diaryentry:params=>campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>diaryentryService.readByParam(campaignName,params)))),campaignCharacters:()=>campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>characterService.getNonPlayerCharacters(campaignName)))),campaignLocations:()=>campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>locationService.campaignList(campaignName))))}})),(0,ngrx_signals.QO)((store=>({hasWritePermission:(0,core.inject)(global_store.v).hasRoleOrBetter("member"),diaryEntryEncounters:(0,core.computed)((()=>{const allEncounters=[...store.diaryentry()?.encounters??[],...store._encountersBeingCreated()];return(0,array.Z)(allEncounters,"order_index").map(((encounter,index)=>({encounter,isUpdating:store._encountersInUpdateStateIds().has(index)})))})),isUpdatingAnyEncounters:(0,core.computed)((()=>store._encountersInUpdateStateIds().size>0)),realEncounters:(0,core.computed)((()=>store.diaryentry()?.encounters??[]))}))),(0,ngrx_signals.RI)((store=>{const toastService=(0,core.inject)(toast_overlay_component.f),diaryentryService=(0,core.inject)(DiaryentryService),encounterConnectionService=(0,core.inject)(EncounterConnectionService),encounterService=(0,core.inject)(EncounterService),globalStore=(0,core.inject)(global_store.v),campaignName$=(0,rxjs_interop.br)(globalStore.campaignName).pipe((0,rxjs_operators.u5)(),(0,shareReplay.t)(1)),updateEncounterList=newEncounterList=>{const newDiaryEntry={...store.diaryentry(),encounters:newEncounterList};(0,ngrx_signals.M8)(store,{diaryentry:newDiaryEntry})},markAsBeingUpdated=encounterPk=>{const updatedIds=new Set(store._encountersInUpdateStateIds());updatedIds.add(encounterPk),(0,ngrx_signals.M8)(store,{_encountersInUpdateStateIds:updatedIds})},unmarkAsBeingUpdated=encounterPk=>{const updatedIds=new Set(store._encountersInUpdateStateIds());updatedIds.delete(encounterPk),(0,ngrx_signals.M8)(store,{_encountersInUpdateStateIds:updatedIds})};return{reset:()=>(0,ngrx_signals.M8)(store,{diaryentry:void 0,diaryentryError:void 0,diaryEntryDeleteState:"init",encounterServerModel:void 0,diaryentryQueryState:"init"}),addEmptyEncounterForCreation:encounter=>{(0,ngrx_signals.M8)(store,{_encountersBeingCreated:[...store._encountersBeingCreated(),encounter]})},removeEmptyEncounterForCreation:encounter=>{(0,ngrx_signals.M8)(store,{_encountersBeingCreated:store._encountersBeingCreated().filter((enc=>enc.order_index!==encounter.order_index))})},addEncounter:encounter=>{encounterService.createForDiaryentry(encounter).pipe((0,take.s)(1)).subscribe({next:newEncounterList=>{updateEncounterList(newEncounterList),(0,ngrx_signals.M8)(store,{_encountersBeingCreated:store._encountersBeingCreated().filter((enc=>enc.order_index!==encounter.order_index))})},error:err=>toastService.addToast(httpErrorToast(err))})},removeEncounter:encounter=>{markAsBeingUpdated(encounter.pk),encounterService.delete(encounter.pk).pipe((0,take.s)(1)).subscribe({next:()=>{unmarkAsBeingUpdated(encounter.pk);const newEncounterList=store.diaryentry()?.encounters?.filter((listEnc=>listEnc.pk!==encounter.pk))??[];updateEncounterList(newEncounterList)},error:err=>toastService.addToast(httpErrorToast(err))})},updateEncounter:encounter=>{markAsBeingUpdated(encounter.pk),encounterService.update(encounter.pk,encounter).pipe((0,take.s)(1)).subscribe({next:newEncounter=>{unmarkAsBeingUpdated(encounter.pk);const diaryentry=store.diaryentry(),newEncounterList=(0,array.U1)(diaryentry.encounters??[],newEncounter,"pk");updateEncounterList(newEncounterList)},error:err=>toastService.addToast(httpErrorToast(err))})},swapEncounters:(encounter1Pk,encounter2Pk)=>{markAsBeingUpdated(encounter1Pk),markAsBeingUpdated(encounter2Pk),(0,ngrx_signals.M8)(store,{isUpdatingGlobally:!0}),campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>encounterService.swapEncounterOrder(campaignName,encounter1Pk,encounter2Pk)))).subscribe({next:([updatedEnc1,updatedEnc2])=>{unmarkAsBeingUpdated(encounter1Pk),unmarkAsBeingUpdated(encounter2Pk);const newEncounterList1=(0,array.U1)(store.realEncounters(),updatedEnc1,"pk"),newEncounterList2=(0,array.U1)(newEncounterList1,updatedEnc2,"pk");updateEncounterList(newEncounterList2),(0,ngrx_signals.M8)(store,{isUpdatingGlobally:!1})},error:err=>toastService.addToast(httpErrorToast(err))})},cutInsertEncounter:(encounter,newOrderIndex)=>{markAsBeingUpdated(encounter.pk),(0,ngrx_signals.M8)(store,{isUpdatingGlobally:!0}),campaignName$.pipe((0,take.s)(1),(0,switchMap.n)((campaignName=>encounterService.cutInsertEncounter(campaignName,encounter,newOrderIndex)))).subscribe({next:newEncounterList=>{unmarkAsBeingUpdated(encounter.pk),updateEncounterList(newEncounterList),(0,ngrx_signals.M8)(store,{isUpdatingGlobally:!1})},error:err=>toastService.addToast(httpErrorToast(err))})},addEncounterConnection:connection=>encounterConnectionService.create(connection).pipe((0,take.s)(1)).subscribe({next:newConnection=>{const diaryentry=store.diaryentry(),encounter=diaryentry.encounters.find((enc=>enc.pk===newConnection.encounter)),newEncounter={...encounter,encounterConnections:[...encounter.encounterConnections??[],newConnection]},newEncounterList=(0,array.U1)(diaryentry.encounters??[],newEncounter,"pk");updateEncounterList(newEncounterList)},error:err=>toastService.addToast(httpErrorToast(err))}),removeEncounterConnection:connection=>{encounterConnectionService.delete(connection.pk).pipe((0,take.s)(1)).subscribe((()=>{const diaryentry=store.diaryentry(),encounter=diaryentry.encounters.find((enc=>enc.pk===connection.encounter)),newEncounter={...encounter,encounterConnections:encounter.encounterConnections?.filter((con=>con.pk!==connection.pk))},newEncounterList=(0,array.U1)(diaryentry.encounters??[],newEncounter,"pk");updateEncounterList(newEncounterList)}))},deleteDiaryEntry:()=>{(0,ngrx_signals.M8)(store,{diaryEntryDeleteState:"loading"}),diaryentryService.delete(store.diaryentry()?.pk).pipe((0,take.s)(1)).subscribe({next:()=>(0,ngrx_signals.M8)(store,{diaryentry:void 0,diaryentryError:void 0,diaryEntryDeleteState:"success"}),error:err=>toastService.addToast(httpErrorToast(err))})}}})),(0,ngrx_signals.TK)((store=>({onInit:()=>{(0,logging.R)("DiaryEntryPageStore",store)}}))));var router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),slideDown=__webpack_require__("./src/design/animations/slideDown.ts"),arrow_button_component=__webpack_require__("./src/design/atoms/arrow-button/arrow-button.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts"),encounter_component=__webpack_require__("./src/design/organisms/encounter/encounter.component.ts");let DiaryentryEncountersComponent=class DiaryentryEncountersComponent{constructor(){this.store=(0,core.inject)(DiaryentryPageStore),this.route=(0,core.inject)(router.nX),this.diaryEntryPk=(0,core.computed)((()=>this.store.diaryentry()?.pk)),this.campaignCharacters=this.store.campaignCharacters,this.campaignLocations=this.store.campaignLocations,this.encounterServerModel=this.store.encounterServerModel,this.canUpdate=this.store.hasWritePermission,this.canDelete=this.store.hasWritePermission,this.canCreate=this.store.hasWritePermission,this.state=(0,core.input)("READ"),this.encounterElements=(0,core.viewChildren)("encounter"),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter,this.encounterCreate=new core.EventEmitter,this.encounterCutInsert=new core.EventEmitter,this.encounterSwap=new core.EventEmitter,this.addUnfinishedEncounter=(0,core.output)(),this.encountersToAdd=(0,core.signal)([]),this.isUpdatingGlobally=this.store.isUpdatingGlobally,this.isUpdatingAnything=this.store.isUpdatingAnyEncounters,this.cutEncounterIndex=(0,core.signal)(void 0),this.diaryEntryEncounters=this.store.diaryEntryEncounters;const encounterTitle=this.route.snapshot.params.encounterTitle;encounterTitle&&this.scrollToEncounter(encounterTitle)}addEmptyEncounterAtIndex(listIndex){const newOrderIndex=this.getOrderIndexForNewEncounter(listIndex),newEncounter={diaryentry:this.diaryEntryPk(),title:"New Encounter",order_index:newOrderIndex,description:""};this.store.addEmptyEncounterForCreation(newEncounter)}onInsertExcisedEncounter(insertionIndex){const cutEncounterIndex=this.cutEncounterIndex();if(null==cutEncounterIndex)return;if([cutEncounterIndex,cutEncounterIndex-1].includes(insertionIndex))return;let newOrderIndex;if(insertionIndex>this.diaryEntryEncounters().length){newOrderIndex=nextOrderIndex(this.diaryEntryEncounters()[this.diaryEntryEncounters().length-1].encounter)}else{newOrderIndex=this.diaryEntryEncounters()[insertionIndex].encounter.order_index}const encounterToInsert=this.diaryEntryEncounters()[cutEncounterIndex].encounter;this.store.cutInsertEncounter(encounterToInsert,newOrderIndex)}onExcisionClick(encounterIndex){const isAlreadyCuttingEncounter=null!=this.cutEncounterIndex(),isCuttingThisEncounter=this.cutEncounterIndex()===encounterIndex;isAlreadyCuttingEncounter&&isCuttingThisEncounter?this.cutEncounterIndex.set(void 0):isAlreadyCuttingEncounter||this.cutEncounterIndex.set(encounterIndex)}onEncounterOrderIncrease(encounterIndex){if(encounterIndex===this.diaryEntryEncounters().length-1)return;const encounter=this.diaryEntryEncounters()[encounterIndex].encounter,nextEncounter=this.nextRealEncounter(encounterIndex+1);nextEncounter&&this.store.swapEncounters(encounter.pk,nextEncounter.pk)}onEncounterOrderDecrease(encounterIndex){if(0===encounterIndex)return;const encounter=this.diaryEntryEncounters()[encounterIndex].encounter,priorEncounter=this.priorRealEncounter(encounterIndex-1);priorEncounter&&this.store.swapEncounters(encounter.pk,priorEncounter.pk)}onEncounterCreateCancel(encounterIndex){const createEncounterToRemove=this.diaryEntryEncounters()[encounterIndex].encounter;this.store.removeEmptyEncounterForCreation(createEncounterToRemove)}onEncounterDelete(encounterIndex){const encounterToDelete=this.diaryEntryEncounters()[encounterIndex].encounter;this.store.removeEncounter(encounterToDelete)}onEncounterCreate(encounter){const newEncounter={...encounter,order_index:nextOrderIndex(encounter)};this.encounterCreate.emit(newEncounter),this.store.removeEmptyEncounterForCreation(encounter)}scrollToEncounter(encounterTitle){(0,rxjs_interop.br)(this.encounterElements).pipe((0,rxjs_interop.pQ)(),(0,map.T)((elements=>elements.find((el=>el.nativeElement.id===encounterTitle)))),(0,rxjs_operators.u5)(),(0,take.s)(1)).subscribe((encounterElement=>encounterElement.nativeElement.scrollIntoView({behavior:"instant"})))}getOrderIndexForNewEncounter(insertionIndex){const isNewFirstEncounter=insertionIndex<0,isEmptyDiaryEntry=0===this.store.realEncounters().length,isNewFirstEncounterInFullDiaryentry=isNewFirstEncounter&&!isEmptyDiaryEntry,isLastEncounterInFullDiaryentry=insertionIndex>=this.store.realEncounters().length&&!isEmptyDiaryEntry;if(isEmptyDiaryEntry)return 0;if(isNewFirstEncounterInFullDiaryentry){return function priorOrderIndex(encounter){return getUnshiftedOrderIndex(encounter)-ORDER_INDEX_INCREMENT}(this.store.realEncounters()[0])}if(isLastEncounterInFullDiaryentry){return nextOrderIndex(this.store.realEncounters()[this.store.realEncounters().length-1])}return function getShiftedOrderIndex(encounter){return hasShiftedOrderIndex(encounter)?encounter.order_index:encounter.order_index+1}(this.diaryEntryEncounters()[insertionIndex].encounter)}isRealEncounter(encounter){return"pk"in encounter}nextRealEncounter(encounterIndex){const realEncountersAfterIndex=this.diaryEntryEncounters().slice(encounterIndex).filter((encounter=>this.isRealEncounter(encounter.encounter)));return realEncountersAfterIndex[0]?.encounter}priorRealEncounter(encounterIndex){const realEncountersBeforeIndex=this.diaryEntryEncounters().slice(0,encounterIndex+1).reverse().filter((encounter=>this.isRealEncounter(encounter.encounter)));return realEncountersBeforeIndex[0]?.encounter}static{this.ctorParameters=()=>[]}static{this.propDecorators={state:[{type:core.Input,args:[{isSignal:!0,alias:"state",required:!1,transform:void 0}]}],encounterElements:[{type:core.ViewChildren,args:["encounter",{isSignal:!0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}],encounterCreate:[{type:core.Output}],encounterCutInsert:[{type:core.Output}],encounterSwap:[{type:core.Output}],addUnfinishedEncounter:[{type:core.Output,args:["addUnfinishedEncounter"]}]}}};DiaryentryEncountersComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-diaryentry-encounters",template:'\n @if (!isUpdatingGlobally()) {\n \x3c!-- Insert new first Encounter --\x3e\n @if (state() === "EDIT") {\n
\n
\n @if (canCreate()) {\n \n }\n @if (canUpdate()) {\n \n }\n
\n
\n }\n\n \x3c!-- Diaryentry - Encounters --\x3e\n
\n @for (entryEncounter of diaryEntryEncounters(); track entryEncounter) {\n \x3c!-- Encounter --\x3e\n
\n @switch (state()) {\n @case ("READ") {\n
\n }\n @case ("EDIT") {\n
\n }\n }\n\n \x3c!-- Insert new Encounter --\x3e\n @if (state() === "EDIT" && (canCreate() || canUpdate())) {\n
\n @if (canCreate()) {\n \n }\n @if (canUpdate()) {\n \n }\n
\n }\n
\n }\n
\n } @else {\n
\n }\n
\n\n\n \n {{ entryEncounter.encounter?.title }}\n \n \n \n\n\n \n @if (!context.entry.isUpdating) {\n \n @if (canUpdate() && context.entry.encounter.pk != null) {\n \n \n \n
\n }\n } @else {\n \n }\n \n \n\n\x3c!-- Loading Spinner --\x3e\n \n\n\n \n \n \n',standalone:!0,imports:[button_component.Q,card_component.i,html_text_component.m,encounter_component.L,arrow_button_component.R,spinner_component.t,common.NgTemplateOutlet],animations:[slideDown.sb],styles:[diaryentry_encounters_componentngResource_default()]})],DiaryentryEncountersComponent)},"./src/design/organisms/encounter/encounter.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{L:()=>EncounterComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var encounter_componentngResource=__webpack_require__("./src/design/organisms/encounter/encounter.component.scss?ngResource"),encounter_componentngResource_default=__webpack_require__.n(encounter_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),array=__webpack_require__("./src/utils/array.ts"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts");let EncounterComponent=class EncounterComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.characters=core.input.required(),this.locations=core.input.required(),this.encounter=(0,core.input)(),this.serverModel=(0,core.input)(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.initialState=(0,core.input)("DISPLAY"),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter,this.encounterCreate=new core.EventEmitter,this.encounterCreateCancel=new core.EventEmitter,this.userModel=(0,core.signal)({}),this.state=(0,core.signal)("DISPLAY"),this.badgeEntries=(0,core.computed)((()=>{const encounterConnections=this.encounter()?.encounterConnections??[];return this.parseConnection(encounterConnections)})),this.campaignName=(0,core.computed)((()=>this.encounter()?.campaign_details?.name)),this.locations$=(0,rxjs_interop.br)(this.locations).pipe((0,rxjs_operators.u5)()),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"title",inputKind:"STRING"}),this.formlyService.buildOverviewSelectConfig({key:"location",label:"Encounter Location",sortProp:"name_full",campaign:this.campaignName(),options$:this.locations$.pipe((0,map.T)((locs=>(0,array.Z)(locs,"name_full")))),labelProp:"name_full",required:!1}),this.formlyService.buildEditorConfig({key:"description",required:!0})]))}ngOnInit(){const model="CREATE"===this.initialState()&&this.canCreate()?{}:void 0;this.changeState(this.initialState(),model)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onEncounterCreate(encounter){this.encounterCreate.emit({...this.encounter(),...encounter}),this.changeState("DISPLAY",encounter)}onEncounterDelete(){this.encounterDelete.emit(this.encounter()),this.changeState("DISPLAY",void 0)}onEncounterUpdate(encounter){this.encounterUpdate.emit(encounter),this.changeState("DISPLAY",void 0)}onEncounterCreateCancel(){this.encounterCreateCancel.emit(),this.changeState("DISPLAY",void 0)}onConnectionDelete(connection){this.canDelete()&&this.connectionDelete.emit(connection)}onConnectionCreate(character){const newConnection={campaign:this.encounter()?.campaign_details?.id,encounter:this.encounter()?.pk,character:character.pk};this.connectionCreate.emit(newConnection)}onToggle(toggled){if("CREATE"===this.state())return void this.encounterCreateCancel.emit();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.encounter()}:void 0;this.changeState(nextState,nextModel)}parseConnection(connections){return connections.map((con=>{const characterName=con.character_details?.name;return{text:characterName,badgeValue:con,link:this.routingService.getRoutePath("character",{name:characterName,campaign:this.campaignName()})}}))}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={characters:[{type:core.Input,args:[{isSignal:!0,alias:"characters",required:!0,transform:void 0}]}],locations:[{type:core.Input,args:[{isSignal:!0,alias:"locations",required:!0,transform:void 0}]}],encounter:[{type:core.Input,args:[{isSignal:!0,alias:"encounter",required:!1,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],initialState:[{type:core.Input,args:[{isSignal:!0,alias:"initialState",required:!1,transform:void 0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}],encounterCreate:[{type:core.Output}],encounterCreateCancel:[{type:core.Output}]}}};EncounterComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-encounter",template:'@if (encounter() || state() === "CREATE") {\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n\n @if (canUpdate()) {\n \n }\n \n\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n {{ encounter()?.title }}\n \n\n\n \x3c!-- Encounter --\x3e\n @let encounterVal = encounter();\n @if (encounterVal) {\n \n }\n\n \n\n \x3c!-- Encounter Connections --\x3e\n \n\n \x3c!-- Encounter Footer/Delete Toggle --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update "{{ encounter()?.title }}" \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canUpdate() && state() === "UPDATE") {\n \n } @else if (canUpdate() && state() === "OUTDATEDUPDATE") {\n \n }\n \n\n Create new Encounter \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canCreate() && state() === "CREATE") {\n \n }\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,separator_component.F,molecules.pn,molecules.Ts,molecules.s2,molecules.zx],styles:[encounter_componentngResource_default()]})],EncounterComponent)},"./src/design/organisms/toast-overlay/toast-overlay.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{r:()=>ToastOverlayComponent,f:()=>ToastService});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var toast_overlay_componentngResource=__webpack_require__("./src/design/organisms/toast-overlay/toast-overlay.component.scss?ngResource"),toast_overlay_componentngResource_default=__webpack_require__.n(toast_overlay_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),slideDown=__webpack_require__("./src/design/animations/slideDown.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),logging=__webpack_require__("./src/utils/logging.ts");let ToastService=class ToastService{constructor(){this.toasts=(0,core.signal)([]),this.currentToast=(0,core.computed)((()=>this.toasts()[0]))}addToast(newToast){(0,logging.R)(this.addToast.name,newToast);const toasts=this.toasts();newToast.important?this.toasts.set([newToast,...toasts]):this.toasts.set([...toasts,newToast])}dismissToast(){const[_,...newToastList]=this.toasts();this.toasts.set(newToastList)}};ToastService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],ToastService);let ToastOverlayComponent=class ToastOverlayComponent{constructor(){this.toastService=(0,core.inject)(ToastService),this.currentToast=this.toastService.currentToast,this.icon=(0,core.computed)((()=>{const currentToast=this.currentToast();if(currentToast)return this.toHeaderIcon(currentToast.type,currentToast.header?.icon)}))}dismissCurrentToast(){const currentToast=this.currentToast();if(!currentToast)return;const onHide=currentToast.onHide;onHide&&onHide(),this.toastService.dismissToast()}toHeaderIcon(toastType,icon){if(null!=icon)return icon;switch(toastType){case"DANGER":return"triangle-exclamation";case"WARNING":return"circle-exclamation";case"INFO":return"info-circle";case"SUCCESS":return"check";default:return"info"}}};ToastOverlayComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-toast-overlay",standalone:!0,imports:[ng_bootstrap.VR,button_component.Q,icon_component.R,common.NgTemplateOutlet],animations:[slideDown.st],template:'@let toast = currentToast();\n@let onToastClick = toast?.onToastClick;\n@if (toast && onToastClick) {\n \n \n \n} @else if (toast) {\n \n}\n\n\n @if (toast) {\n @if (toast.header) {\n 0"\n [delay]="toast.dismissMs ? toast.dismissMs : 0"\n [ariaLive]="toast.important ? \'alert\' : \'polite\'"\n [animation]="true"\n (hidden)="dismissCurrentToast()"\n (shown)="toast.onShow ? toast.onShow() : undefined"\n >\n \n \n \n\n \n \n } @else {\n 0"\n [delay]="toast.dismissMs ? toast.dismissMs : 0"\n [ariaLive]="toast.important ? \'alert\' : \'polite\'"\n [animation]="true"\n (hidden)="dismissCurrentToast()"\n (shown)="toast.onShow ? toast.onShow() : undefined"\n >\n \n \n }\n }\n \n\n\n \n
\n @let bodyIcon = toast?.body?.icon;\n @if (bodyIcon) {\n \n }\n\n @if (toast?.body?.text) {\n
\n }\n \n\n
\n @let firstButton = toast?.body?.buttons?.[0];\n @if (firstButton) {\n \n }\n @let secondButton = toast?.body?.buttons?.[1];\n @if (secondButton) {\n \n }\n
\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[toast_overlay_componentngResource_default()]})],ToastOverlayComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/clipboard.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function copyToClipboard(text){const windowSelection=window.getSelection(),documentSelection=window.getSelection();var userSelectedTextRange=void 0;(function userHasElementsSelected(){const selection=document.getSelection();if(null==selection)return!1;return selection?.rangeCount>0})()&&(userSelectedTextRange=documentSelection.getRangeAt(0),windowSelection.removeRange(userSelectedTextRange));const textContainerElement=function createTextContainerElement(text){const textContainerElement=document.createElement("div");textContainerElement.innerHTML=text;const strippedText=textContainerElement.textContent;return textContainerElement.innerHTML=strippedText.replaceAll(">"," > ").slice(4),textContainerElement.style.position="absolute",textContainerElement.style.left="-9999px",textContainerElement}(text);document.body.appendChild(textContainerElement);const copyRange=function selectElement(element){const selectedRange=document.createRange();return selectedRange.selectNode(element),window.getSelection()?.addRange(selectedRange),selectedRange}(textContainerElement);!function copyCurrentSelection(){try{document.execCommand("copy")}catch(err){window.alert("Your Browser Doesn't support this! Error : "+err)}}(),windowSelection.removeRange(copyRange),document.body.removeChild(textContainerElement),userSelectedTextRange&&windowSelection.addRange(userSelectedTextRange)}__webpack_require__.d(__webpack_exports__,{l:()=>copyToClipboard})},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/arrow-button/arrow-button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".btn {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2rem;\n padding: var(--spacer-3) var(--spacer-2);\n}\n.btn-disabled {\n cursor: not-allowed;\n}\n.btn-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/diaryentry-encounters/diaryentry-encounters.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".list {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n}\n.list--loading {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.list__buttons {\n padding: 0;\n margin-bottom: var(--spacer-2);\n}\n\n.buttons {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.buttons__button {\n display: flex;\n}\n.buttons__button--right {\n display: none;\n}\n@media (min-width: 768px) {\n .buttons__button--right {\n display: flex;\n }\n}\n\n.repeated-unit {\n padding: 0;\n scroll-margin-top: var(--spacer-5);\n}\n@media (min-width: 768px) {\n .repeated-unit {\n padding: unset;\n }\n}\n\n.encounter-card {\n display: flex;\n justify-content: center;\n --card-flex-direction: column;\n --card-padding: var(--spacer-3);\n}\n@media (min-width: 768px) {\n .encounter-card {\n --card-flex-direction: row;\n }\n}\n.encounter-card__encounter {\n flex: 1;\n}\n.encounter-card__side-buttons {\n height: 100%;\n}\n\n.side-buttons {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n margin-left: var(--spacer-1);\n}\n@media (min-width: 768px) {\n .side-buttons {\n flex-direction: column;\n justify-content: unset;\n }\n}\n.side-buttons__button--edit {\n display: none;\n margin-bottom: var(--spacer-4);\n}\n@media (min-width: 768px) {\n .side-buttons__button--edit {\n display: unset;\n }\n}\n.side-buttons__button--arrow {\n padding: var(--spacer-1) var(--spacer-0);\n}\n\n.spinner {\n width: 100px;\n height: 100px;\n --thickness: 60px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/encounter/encounter.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--spacer-4);\n}\n.card__heading {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.card__text {\n margin-bottom: var(--spacer-1);\n}\n.card__connections {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n.card__edit-button {\n align-self: flex-start;\n}\n\n.connections {\n display: inline-flex;\n}\n.connections__label {\n margin-right: var(--spacer-4);\n}\n.connections__list {\n display: inline-flex;\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.connections__connection, .connections__create-form {\n margin: var(--spacer-0) var(--spacer-2) var(--spacer-2) var(--spacer-1);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/toast-overlay/toast-overlay.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n position: absolute;\n}\n\n.toast:focus, .toast:focus-within, .toast:hover, .toast:focus-visible {\n outline: var(--focus-outline);\n}\n\n.toast {\n position: fixed;\n bottom: 10%;\n width: 93%;\n right: 3.5%;\n --bs-light-rgb: var(--bs-white);\n --bs-toast-header-color: var(--bs-white);\n --bs-toast-color: var(--bs-white);\n --toast-padding-x: var(--bs-toast-padding-x);\n --toast-padding-y: calc(var(--bs-toast-padding-y) / 2);\n --bs-toast-border-width: 3px;\n}\n.toast--primary {\n --bs-border-color-translucent: var(--bs-primary);\n}\n.toast--secondary {\n --bs-border-color-translucent: var(--bs-secondary);\n}\n.toast--success {\n --bs-border-color-translucent: var(--bs-success);\n}\n.toast--danger {\n --bs-border-color-translucent: var(--bs-danger);\n}\n.toast--warning {\n --bs-border-color-translucent: var(--bs-warning);\n}\n.toast--info {\n --bs-border-color-translucent: var(--bs-info);\n}\n.toast--light {\n --bs-border-color-translucent: var(--bs-light);\n}\n.toast--dark {\n --bs-border-color-translucent: var(--bs-dark);\n}\n@media (min-width: 576px) {\n .toast {\n width: fit-content;\n max-width: 50%;\n bottom: 5%;\n }\n}\n\n.toast-header__text {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacer-2);\n flex: 1;\n font-weight: bold;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n}\n.body__text {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--spacer-2);\n text-align: start;\n}\n.body__text-container {\n max-height: calc(var(--bs-body-font-size) * 8);\n max-width: 100%;\n overflow: auto;\n}\n.body__button {\n width: fit-content;\n}\n.body__button-container {\n display: flex;\n flex-direction: row;\n gap: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/3569.3fdaf318.iframe.bundle.js b/3569.3fdaf318.iframe.bundle.js
deleted file mode 100644
index cf12278f6..000000000
--- a/3569.3fdaf318.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3569],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/rule/rule.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{M:()=>RuleComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var rule_componentngResource=__webpack_require__("./src/design/organisms/rule/rule.component.scss?ngResource"),rule_componentngResource_default=__webpack_require__.n(rule_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");let RuleComponent=class RuleComponent{constructor(formlyService){this.formlyService=formlyService,this.rule=core.input.required(),this.canUpdate=core.input.required(),this.canDelete=core.input.required(),this.canCreate=core.input.required(),this.serverModel=core.input.required(),this.cancelButtonType=(0,core.input)("SECONDARY"),this.submitButtonType=(0,core.input)("PRIMARY"),this.ruleDelete=new core.EventEmitter,this.ruleCreate=new core.EventEmitter,this.ruleUpdate=new core.EventEmitter,this.ruleCreateCancel=new core.EventEmitter,this.userModel=(0,core.signal)(void 0),this.state=(0,core.signal)("DISPLAY"),this.formlyFields=[this.formlyService.buildInputConfig({key:"name",inputKind:"NAME"}),this.formlyService.buildEditorConfig({key:"description"})]}ngOnInit(){null==this.rule()?.pk&&this.canCreate?this.changeState("CREATE",{}):this.changeState("DISPLAY",void 0)}onToggle(toggled){if("CREATE"===this.state())return void this.onRuleCreateCancel();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.rule()}:void 0;this.changeState(nextState,nextModel)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onRuleCreate(rule){this.ruleCreate.emit(rule),this.changeState("DISPLAY",void 0)}onRuleDelete(){this.ruleDelete.emit(this.rule())}onRuleUpdate(rule){this.ruleUpdate.emit(rule),this.changeState("DISPLAY",void 0)}onRuleCreateCancel(){this.changeState("DISPLAY",void 0),this.ruleCreateCancel.emit()}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={rule:[{type:core.Input,args:[{isSignal:!0,alias:"rule",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],submitButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"submitButtonType",required:!1,transform:void 0}]}],ruleDelete:[{type:core.Output}],ruleCreate:[{type:core.Output}],ruleUpdate:[{type:core.Output}],ruleCreateCancel:[{type:core.Output}]}}};RuleComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-rule",template:'@if (rule() || state() === "CREATE") {\n \n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n }\n \n\n @if (canUpdate() || canCreate()) {\n \n }\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n }\n}\n\n\n {{ rule()?.name }}\n \n\n\n @let ruleVal = rule();\n @if (ruleVal) {\n \n }\n\n \x3c!-- Delete Toggler --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update \'{{ rule()?.name }}\' \n\n\n \n \n\n Create new Rule \n\n\n @if (canCreate()) {\n \n }\n \n\n\n \n \n',standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,molecules.Ts,molecules.s2,molecules.zx],styles:[rule_componentngResource_default()]})],RuleComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/rule/rule.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card__heading {\n display: flex;\n justify-content: space-between;\n margin-bottom: var(--spacer-3);\n}\n.card__body {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n\n.heading__subtext {\n --bs-text-opacity: 1;\n color: #9b9a9a;\n}\n\n.body {\n margin-bottom: var(--spacer-4);\n}\n.body__entry {\n margin-bottom: var(--spacer-4);\n}\n.body__subheading {\n margin-bottom: var(--spacer-1);\n}\n.body__subbody {\n display: flex;\n flex-direction: column;\n margin-left: var(--spacer-4);\n}\n.body__subbody--list {\n margin-left: var(--spacer-2);\n}\n.body__link {\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/3569.533e5ce3.iframe.bundle.js b/3569.533e5ce3.iframe.bundle.js
new file mode 100644
index 000000000..a1b23934a
--- /dev/null
+++ b/3569.533e5ce3.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3569],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/rule/rule.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{M:()=>RuleComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var rule_componentngResource=__webpack_require__("./src/design/organisms/rule/rule.component.scss?ngResource"),rule_componentngResource_default=__webpack_require__.n(rule_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");let RuleComponent=class RuleComponent{constructor(formlyService){this.formlyService=formlyService,this.rule=core.input.required(),this.canUpdate=core.input.required(),this.canDelete=core.input.required(),this.canCreate=core.input.required(),this.serverModel=core.input.required(),this.cancelButtonType=(0,core.input)("SECONDARY"),this.submitButtonType=(0,core.input)("PRIMARY"),this.ruleDelete=new core.EventEmitter,this.ruleCreate=new core.EventEmitter,this.ruleUpdate=new core.EventEmitter,this.ruleCreateCancel=new core.EventEmitter,this.userModel=(0,core.signal)(void 0),this.state=(0,core.signal)("DISPLAY"),this.formlyFields=[this.formlyService.buildInputConfig({key:"name",inputKind:"NAME"}),this.formlyService.buildEditorConfig({key:"description"})]}ngOnInit(){null==this.rule()?.pk&&this.canCreate?this.changeState("CREATE",{}):this.changeState("DISPLAY",void 0)}onToggle(toggled){if("CREATE"===this.state())return void this.onRuleCreateCancel();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.rule()}:void 0;this.changeState(nextState,nextModel)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onRuleCreate(rule){this.ruleCreate.emit(rule),this.changeState("DISPLAY",void 0)}onRuleDelete(){this.ruleDelete.emit(this.rule())}onRuleUpdate(rule){this.ruleUpdate.emit(rule),this.changeState("DISPLAY",void 0)}onRuleCreateCancel(){this.changeState("DISPLAY",void 0),this.ruleCreateCancel.emit()}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={rule:[{type:core.Input,args:[{isSignal:!0,alias:"rule",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],submitButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"submitButtonType",required:!1,transform:void 0}]}],ruleDelete:[{type:core.Output}],ruleCreate:[{type:core.Output}],ruleUpdate:[{type:core.Output}],ruleCreateCancel:[{type:core.Output}]}}};RuleComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-rule",template:'@if (rule() || state() === "CREATE") {\n \n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n }\n \n\n @if (canUpdate() || canCreate()) {\n \n }\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n }\n}\n\n\n {{ rule()?.name }}\n \n\n\n @let ruleVal = rule();\n @if (ruleVal) {\n \n }\n\n \x3c!-- Delete Toggler --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update \'{{ rule()?.name }}\' \n\n\n \n \n\n Create new Rule \n\n\n @if (canCreate()) {\n \n }\n \n\n\n \n \n',standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,molecules.Ts,molecules.s2,molecules.zx],styles:[rule_componentngResource_default()]})],RuleComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/rule/rule.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card__heading {\n display: flex;\n justify-content: space-between;\n margin-bottom: var(--spacer-3);\n}\n.card__body {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n\n.heading__subtext {\n --bs-text-opacity: 1;\n color: #9b9a9a;\n}\n\n.body {\n margin-bottom: var(--spacer-4);\n}\n.body__entry {\n margin-bottom: var(--spacer-4);\n}\n.body__subheading {\n margin-bottom: var(--spacer-1);\n}\n.body__subbody {\n display: flex;\n flex-direction: column;\n margin-left: var(--spacer-4);\n}\n.body__subbody--list {\n margin-left: var(--spacer-2);\n}\n.body__link {\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/3881.12b9c2c5.iframe.bundle.js b/3881.12b9c2c5.iframe.bundle.js
new file mode 100644
index 000000000..96294f0d1
--- /dev/null
+++ b/3881.12b9c2c5.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3881],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/spell/spell.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{o:()=>SpellComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spell_componentngResource=__webpack_require__("./src/design/organisms/spell/spell.component.scss?ngResource"),spell_componentngResource_default=__webpack_require__.n(spell_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");const SPELL_CASTING_TIME=[{label:"1 Action",value:"1 Action"},{label:"1 Bonus Action",value:"1 Bonus Action"},{label:"1 Reaction",value:"1 Reaction"},{label:"1 Minute",value:"1 Minute"},{label:"10 Minutes",value:"10 Minutes"},{label:"1 Hour",value:"1 Hour"},{label:"8 Hours",value:"8 Hours"},{label:"12 Hours",value:"12 Hours"},{label:"24 Hours",value:"24 Hours"}],SPELL_SAVES=[{value:"ATK",label:"Attack"},{value:"STR",label:"Strength"},{value:"CON",label:"Constitution"},{value:"DEX",label:"Dexterity"},{value:"INT",label:"Intelligence"},{value:"WIS",label:"Wisdom"},{value:"CHA",label:"Charisma"}],SPELL_LEVELS=[{value:0,label:"Cantrip"},{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"},{value:6,label:"6"},{value:7,label:"7"},{value:8,label:"8"},{value:9,label:"9"}],SPELL_DURATION=[{value:"Instantaneous",label:"Instantaneous"},{value:"1 Round",label:"1 Round"},{value:"6 Rounds",label:"6 Rounds"},{value:"1 Minute",label:"1 Minute"},{value:"10 Minutes",label:"10 Minutes"},{value:"1 Hour",label:"1 Hour"},{value:"2 Hours",label:"2 Hours"},{value:"8 Hours",label:"8 Hours"},{value:"24 Hours",label:"24 Hours"},{value:"1 Day",label:"1 Day"},{value:"7 Day",label:"7 Days"},{value:"10 Day",label:"10 Days"},{value:"30 Day",label:"30 Days"},{value:"Special",label:"Special"},{value:"Until Dispelled",label:"Until Dispelled"}],SPELL_RANGES=[{value:"Self",label:"Self"},{value:"5 Feet",label:"5 Feet"},{value:"10 Feet",label:"10 Feet"},{value:"15 Feet",label:"15 Feet"},{value:"30 Feet",label:"30 Feet"},{value:"60 Feet",label:"60 Feet"},{value:"90 Feet",label:"90 Feet"},{value:"100 Feet",label:"100 Feet"},{value:"120 Feet",label:"120 Feet"},{value:"150 Feet",label:"150 Feet"},{value:"1 Mile",label:"1 Mile"},{value:"3 Miles",label:"3 Miles"},{value:"10 Miles",label:"10 Miles"}],SPELL_COMPONENTS=[{value:"V",label:"V"},{value:"S",label:"S"},{value:"M",label:"M"},{value:"VS",label:"VS"},{value:"VM",label:"VM"},{value:"SM",label:"SM"},{value:"VSM",label:"VSM"},{value:"VSM*",label:"VSM*"}],SPELL_SCHOOLS=[{value:"Abjuration",label:"Abjuration"},{value:"Conjuration",label:"Conjuration"},{value:"Divination",label:"Divination"},{value:"Enchantment",label:"Enchantment"},{value:"Evocation",label:"Evocation"},{value:"Illusion",label:"Illusion"},{value:"Necromancy",label:"Necromancy"},{value:"Transmutation",label:"Transmutation"}];let SpellComponent=class SpellComponent{constructor(formlyService){this.formlyService=formlyService,this.spell=core.input.required(),this.playerClasses=core.input.required(),this.canUpdate=core.input.required(),this.canDelete=core.input.required(),this.canCreate=core.input.required(),this.serverModel=core.input.required(),this.cancelButtonType=(0,core.input)("SECONDARY"),this.submitButtonType=(0,core.input)("PRIMARY"),this.spellDelete=new core.EventEmitter,this.spellCreate=new core.EventEmitter,this.spellUpdate=new core.EventEmitter,this.spellCreateCancel=new core.EventEmitter,this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.userModel=(0,core.signal)(void 0),this.state=(0,core.signal)("DISPLAY"),this.playerClassConnections=(0,core.computed)((()=>(this.spell()?.player_class_connections??[]).map((con=>({badgeValue:con,text:con.player_class_details?.name,link:void 0}))))),this.playerClassOptions=(0,core.computed)((()=>{const playerClassInSpell=new Set(this.playerClassConnections().map((con=>con.badgeValue.player_class)));return this.playerClasses().filter((playerClass=>playerClass.pk&&!playerClassInSpell.has(playerClass.pk)))})),this.formlyFields=[this.formlyService.buildCheckboxConfig({key:"concentration",label:"Concentration",defaultValue:!1,required:!1}),this.formlyService.buildCheckboxConfig({key:"ritual",defaultValue:!1,required:!1}),this.formlyService.buildInputConfig({key:"name",inputKind:"NAME"}),this.formlyService.buildStaticSelectConfig({key:"spell_level",label:"Spell Level",options:SPELL_LEVELS}),this.formlyService.buildStaticSelectConfig({key:"casting_time",label:"Casting Time",options:SPELL_CASTING_TIME}),this.formlyService.buildStaticSelectConfig({key:"duration",options:SPELL_DURATION}),this.formlyService.buildStaticSelectConfig({key:"range",options:SPELL_RANGES}),this.formlyService.buildStaticSelectConfig({key:"components",options:SPELL_COMPONENTS}),this.formlyService.buildStaticSelectConfig({key:"school",options:SPELL_SCHOOLS}),this.formlyService.buildStaticSelectConfig({key:"saving_throw",label:"Saving Throw",options:SPELL_SAVES,required:!1}),this.formlyService.buildInputConfig({key:"damage",label:"Effect",maxLength:40,required:!1,inputKind:"STRING"}),this.formlyService.buildEditorConfig({key:"description",required:!1})]}ngOnInit(){null==this.spell()?.pk&&this.canCreate()&&this.changeState("CREATE",{})}onToggle(toggled){if("CREATE"===this.state())return void this.onSpellCreateCancel();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.spell()}:void 0;this.changeState(nextState,nextModel)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onSpellCreate(spell){this.spellCreate.emit(spell),this.changeState("DISPLAY",void 0)}onSpellDelete(){this.spellDelete.emit(this.spell())}onSpellUpdate(spell){this.spellUpdate.emit(spell),this.changeState("DISPLAY",void 0)}onConnectionCreate(selectedClass){const connection={spell:this.spell()?.pk,player_class:selectedClass.pk};this.connectionCreate.emit(connection)}onSpellCreateCancel(){this.changeState("DISPLAY",void 0),this.spellCreateCancel.emit()}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={spell:[{type:core.Input,args:[{isSignal:!0,alias:"spell",required:!0,transform:void 0}]}],playerClasses:[{type:core.Input,args:[{isSignal:!0,alias:"playerClasses",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],submitButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"submitButtonType",required:!1,transform:void 0}]}],spellDelete:[{type:core.Output}],spellCreate:[{type:core.Output}],spellUpdate:[{type:core.Output}],spellCreateCancel:[{type:core.Output}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}]}}};SpellComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spell",template:'@if (spell() || state() === "CREATE") {\n \n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n }\n \n\n @if (canUpdate() || canCreate()) {\n \n }\n \n\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n {{ spell()?.name }}\n \n\n\n \x3c!-- Spell Table --\x3e\n \n
\n \x3c!-- Spell Level --\x3e\n
\n
SPELL LEVEL \n
\n {{ spell()?.spell_level }}\n
\n
\n\n \x3c!-- Casting Time --\x3e\n
\n
CASTING TIME \n
\n {{ spell()?.casting_time }}\n
\n
\n\n \x3c!-- Range/Area --\x3e\n
\n
RANGE/AREA \n
\n {{ spell()?.range }}\n
\n
\n\n \x3c!-- Components --\x3e\n
\n
COMPONENTS \n
\n {{ spell()?.components }}\n
\n
\n\n \x3c!-- Duration --\x3e\n
\n
DURATION \n
\n {{ spell()?.duration }}\n
\n
\n\n \x3c!-- School --\x3e\n
\n
SCHOOL \n
\n {{ spell()?.school }}\n
\n
\n\n \x3c!-- Attack/Save --\x3e\n
\n
ATTACK/SAVE \n
\n {{ spell()?.saving_throw }}\n
\n
\n\n \x3c!-- Damage/Effect --\x3e\n
\n
EFFECT \n
\n {{ spell()?.damage }}\n
\n
\n\n \x3c!-- Description --\x3e\n
\n
\n
\n\n \n\n \n\n \x3c!-- Delete Toggler --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update \'{{ spell()?.name }}\' \n\n\n \n \n\n Create new Spell \n\n\n @if (canCreate()) {\n \n }\n \n\n\n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,separator_component.F,molecules.pn,molecules.Ts,molecules.s2,molecules.zx],styles:[spell_componentngResource_default()]})],SpellComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/spell/spell.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --spell-heading-bg-color: hsla(0, 0%, 100%, 0.05);\n --spell-body-bg-color: rgba(27, 31, 34, 0.95);\n}\n\n.card__heading {\n display: flex;\n justify-content: space-between;\n margin-bottom: var(--spacer-3);\n}\n.card__body {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n\n.spell__entry {\n display: flex;\n flex-direction: column;\n padding: var(--spacer-0);\n}\n.spell__heading {\n border-bottom: solid 1px var(--bs-gray);\n background-color: var(--spell-heading-bg-color);\n padding: var(--spacer-2);\n}\n.spell__body {\n height: 100%;\n background-color: var(--spell-body-bg-color);\n padding: var(--spacer-2);\n}\n\n.heading__subtext {\n --bs-text-opacity: 1;\n color: #9b9a9a;\n}\n\n.body {\n margin-bottom: var(--spacer-4);\n}\n.body__entry {\n margin-bottom: var(--spacer-4);\n}\n.body__subheading {\n margin-bottom: var(--spacer-1);\n}\n.body__subbody {\n display: flex;\n flex-direction: column;\n margin-left: var(--spacer-4);\n}\n.body__subbody--list {\n margin-left: var(--spacer-2);\n}\n.body__link {\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/3881.944913c0.iframe.bundle.js b/3881.944913c0.iframe.bundle.js
deleted file mode 100644
index 4e0a6187b..000000000
--- a/3881.944913c0.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3881],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/spell/spell.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{o:()=>SpellComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spell_componentngResource=__webpack_require__("./src/design/organisms/spell/spell.component.scss?ngResource"),spell_componentngResource_default=__webpack_require__.n(spell_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");const SPELL_CASTING_TIME=[{label:"1 Action",value:"1 Action"},{label:"1 Bonus Action",value:"1 Bonus Action"},{label:"1 Reaction",value:"1 Reaction"},{label:"1 Minute",value:"1 Minute"},{label:"10 Minutes",value:"10 Minutes"},{label:"1 Hour",value:"1 Hour"},{label:"8 Hours",value:"8 Hours"},{label:"12 Hours",value:"12 Hours"},{label:"24 Hours",value:"24 Hours"}],SPELL_SAVES=[{value:"ATK",label:"Attack"},{value:"STR",label:"Strength"},{value:"CON",label:"Constitution"},{value:"DEX",label:"Dexterity"},{value:"INT",label:"Intelligence"},{value:"WIS",label:"Wisdom"},{value:"CHA",label:"Charisma"}],SPELL_LEVELS=[{value:0,label:"Cantrip"},{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"},{value:6,label:"6"},{value:7,label:"7"},{value:8,label:"8"},{value:9,label:"9"}],SPELL_DURATION=[{value:"Instantaneous",label:"Instantaneous"},{value:"1 Round",label:"1 Round"},{value:"6 Rounds",label:"6 Rounds"},{value:"1 Minute",label:"1 Minute"},{value:"10 Minutes",label:"10 Minutes"},{value:"1 Hour",label:"1 Hour"},{value:"2 Hours",label:"2 Hours"},{value:"8 Hours",label:"8 Hours"},{value:"24 Hours",label:"24 Hours"},{value:"1 Day",label:"1 Day"},{value:"7 Day",label:"7 Days"},{value:"10 Day",label:"10 Days"},{value:"30 Day",label:"30 Days"},{value:"Special",label:"Special"},{value:"Until Dispelled",label:"Until Dispelled"}],SPELL_RANGES=[{value:"Self",label:"Self"},{value:"5 Feet",label:"5 Feet"},{value:"10 Feet",label:"10 Feet"},{value:"15 Feet",label:"15 Feet"},{value:"30 Feet",label:"30 Feet"},{value:"60 Feet",label:"60 Feet"},{value:"90 Feet",label:"90 Feet"},{value:"100 Feet",label:"100 Feet"},{value:"120 Feet",label:"120 Feet"},{value:"150 Feet",label:"150 Feet"},{value:"1 Mile",label:"1 Mile"},{value:"3 Miles",label:"3 Miles"},{value:"10 Miles",label:"10 Miles"}],SPELL_COMPONENTS=[{value:"V",label:"V"},{value:"S",label:"S"},{value:"M",label:"M"},{value:"VS",label:"VS"},{value:"VM",label:"VM"},{value:"SM",label:"SM"},{value:"VSM",label:"VSM"},{value:"VSM*",label:"VSM*"}],SPELL_SCHOOLS=[{value:"Abjuration",label:"Abjuration"},{value:"Conjuration",label:"Conjuration"},{value:"Divination",label:"Divination"},{value:"Enchantment",label:"Enchantment"},{value:"Evocation",label:"Evocation"},{value:"Illusion",label:"Illusion"},{value:"Necromancy",label:"Necromancy"},{value:"Transmutation",label:"Transmutation"}];let SpellComponent=class SpellComponent{constructor(formlyService){this.formlyService=formlyService,this.spell=core.input.required(),this.playerClasses=core.input.required(),this.canUpdate=core.input.required(),this.canDelete=core.input.required(),this.canCreate=core.input.required(),this.serverModel=core.input.required(),this.cancelButtonType=(0,core.input)("SECONDARY"),this.submitButtonType=(0,core.input)("PRIMARY"),this.spellDelete=new core.EventEmitter,this.spellCreate=new core.EventEmitter,this.spellUpdate=new core.EventEmitter,this.spellCreateCancel=new core.EventEmitter,this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.userModel=(0,core.signal)(void 0),this.state=(0,core.signal)("DISPLAY"),this.playerClassConnections=(0,core.computed)((()=>(this.spell()?.player_class_connections??[]).map((con=>({badgeValue:con,text:con.player_class_details?.name,link:void 0}))))),this.playerClassOptions=(0,core.computed)((()=>{const playerClassInSpell=new Set(this.playerClassConnections().map((con=>con.badgeValue.player_class)));return this.playerClasses().filter((playerClass=>playerClass.pk&&!playerClassInSpell.has(playerClass.pk)))})),this.formlyFields=[this.formlyService.buildCheckboxConfig({key:"concentration",label:"Concentration",defaultValue:!1,required:!1}),this.formlyService.buildCheckboxConfig({key:"ritual",defaultValue:!1,required:!1}),this.formlyService.buildInputConfig({key:"name",inputKind:"NAME"}),this.formlyService.buildStaticSelectConfig({key:"spell_level",label:"Spell Level",options:SPELL_LEVELS}),this.formlyService.buildStaticSelectConfig({key:"casting_time",label:"Casting Time",options:SPELL_CASTING_TIME}),this.formlyService.buildStaticSelectConfig({key:"duration",options:SPELL_DURATION}),this.formlyService.buildStaticSelectConfig({key:"range",options:SPELL_RANGES}),this.formlyService.buildStaticSelectConfig({key:"components",options:SPELL_COMPONENTS}),this.formlyService.buildStaticSelectConfig({key:"school",options:SPELL_SCHOOLS}),this.formlyService.buildStaticSelectConfig({key:"saving_throw",label:"Saving Throw",options:SPELL_SAVES,required:!1}),this.formlyService.buildInputConfig({key:"damage",label:"Effect",maxLength:40,required:!1,inputKind:"STRING"}),this.formlyService.buildEditorConfig({key:"description",required:!1})]}ngOnInit(){null==this.spell()?.pk&&this.canCreate()&&this.changeState("CREATE",{})}onToggle(toggled){if("CREATE"===this.state())return void this.onSpellCreateCancel();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.spell()}:void 0;this.changeState(nextState,nextModel)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onSpellCreate(spell){this.spellCreate.emit(spell),this.changeState("DISPLAY",void 0)}onSpellDelete(){this.spellDelete.emit(this.spell())}onSpellUpdate(spell){this.spellUpdate.emit(spell),this.changeState("DISPLAY",void 0)}onConnectionCreate(selectedClass){const connection={spell:this.spell()?.pk,player_class:selectedClass.pk};this.connectionCreate.emit(connection)}onSpellCreateCancel(){this.changeState("DISPLAY",void 0),this.spellCreateCancel.emit()}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={spell:[{type:core.Input,args:[{isSignal:!0,alias:"spell",required:!0,transform:void 0}]}],playerClasses:[{type:core.Input,args:[{isSignal:!0,alias:"playerClasses",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],submitButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"submitButtonType",required:!1,transform:void 0}]}],spellDelete:[{type:core.Output}],spellCreate:[{type:core.Output}],spellUpdate:[{type:core.Output}],spellCreateCancel:[{type:core.Output}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}]}}};SpellComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spell",template:'@if (spell() || state() === "CREATE") {\n \n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n }\n \n\n @if (canUpdate() || canCreate()) {\n \n }\n \n\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n {{ spell()?.name }}\n \n\n\n \x3c!-- Spell Table --\x3e\n \n
\n \x3c!-- Spell Level --\x3e\n
\n
SPELL LEVEL \n
\n {{ spell()?.spell_level }}\n
\n
\n\n \x3c!-- Casting Time --\x3e\n
\n
CASTING TIME \n
\n {{ spell()?.casting_time }}\n
\n
\n\n \x3c!-- Range/Area --\x3e\n
\n
RANGE/AREA \n
\n {{ spell()?.range }}\n
\n
\n\n \x3c!-- Components --\x3e\n
\n
COMPONENTS \n
\n {{ spell()?.components }}\n
\n
\n\n \x3c!-- Duration --\x3e\n
\n
DURATION \n
\n {{ spell()?.duration }}\n
\n
\n\n \x3c!-- School --\x3e\n
\n
SCHOOL \n
\n {{ spell()?.school }}\n
\n
\n\n \x3c!-- Attack/Save --\x3e\n
\n
ATTACK/SAVE \n
\n {{ spell()?.saving_throw }}\n
\n
\n\n \x3c!-- Damage/Effect --\x3e\n
\n
EFFECT \n
\n {{ spell()?.damage }}\n
\n
\n\n \x3c!-- Description --\x3e\n
\n
\n
\n\n \n\n \n\n \x3c!-- Delete Toggler --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update \'{{ spell()?.name }}\' \n\n\n \n \n\n Create new Spell \n\n\n @if (canCreate()) {\n \n }\n \n\n\n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,separator_component.F,molecules.pn,molecules.Ts,molecules.s2,molecules.zx],styles:[spell_componentngResource_default()]})],SpellComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/spell/spell.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --spell-heading-bg-color: hsla(0, 0%, 100%, 0.05);\n --spell-body-bg-color: rgba(27, 31, 34, 0.95);\n}\n\n.card__heading {\n display: flex;\n justify-content: space-between;\n margin-bottom: var(--spacer-3);\n}\n.card__body {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n\n.spell__entry {\n display: flex;\n flex-direction: column;\n padding: var(--spacer-0);\n}\n.spell__heading {\n border-bottom: solid 1px var(--bs-gray);\n background-color: var(--spell-heading-bg-color);\n padding: var(--spacer-2);\n}\n.spell__body {\n height: 100%;\n background-color: var(--spell-body-bg-color);\n padding: var(--spacer-2);\n}\n\n.heading__subtext {\n --bs-text-opacity: 1;\n color: #9b9a9a;\n}\n\n.body {\n margin-bottom: var(--spacer-4);\n}\n.body__entry {\n margin-bottom: var(--spacer-4);\n}\n.body__subheading {\n margin-bottom: var(--spacer-1);\n}\n.body__subbody {\n display: flex;\n flex-direction: column;\n margin-left: var(--spacer-4);\n}\n.body__subbody--list {\n margin-left: var(--spacer-2);\n}\n.body__link {\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/5483.4c57dc23.iframe.bundle.js b/5483.4c57dc23.iframe.bundle.js
deleted file mode 100644
index 25142b071..000000000
--- a/5483.4c57dc23.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5483],{"./src/app/_services/article/organization.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>dummyOrganizations});const dummyOrganizations=[{article_type:"organization",description:" Magic is Chaos and sometimes people are in touch with this force. Though understanding and control we order the Chaos. It is only when we allow it to overcome us that...",pk:17,name_full:"Academy Of Schools",name:"Academy Of Schools",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-12T15:33:07.176299Z"},{article_type:"organization",description:" The ruling family of Hallan. Loyal to Duke Aspen. Somewhat politically powerful as Hallan is an important trading post. Further make an effort to be very presentable and are well-practiced in...",pk:13,name_full:"Affingtons",name:"Affingtons",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-12-22T16:40:48.834877Z"},{article_type:"organization",description:" The Aspen blood line is one of the main noble blood lines in Aldrune.\nTheir innate ability to sense motion and vibration has led to them being excellent hunters in the dark...",pk:5,name_full:"Aspen Blood",name:"Aspen Blood",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-11T16:55:59.479546Z"},{article_type:"organization",description:" \nThe black feather blood line is one of the main noble blood lines in Aldrune.\nThose of this lineage have innate control over animals and can communicate with them freely and without...",pk:6,name_full:"Black Feather Blood",name:"Black Feather Blood",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-19T10:15:03.064474Z"},{article_type:"organization",description:" A guild of mercenaries protecting caravan's.\nAround for 20 years or so. Part of the guild faction supporting Mordred. Used to be led by Orman Ethelwick until I killed him.",pk:14,name_full:"Bronze Hoof guild",name:"Bronze Hoof guild",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-12-06T21:19:17.466740Z"},{article_type:"organization",description:" A village made up of an unknown species, located somewhere in the desert hellscape we were telported to after our fight with Prince Somnis.\nRoughly somewhere upwards of 50 people in size,...",pk:41,name_full:"Bug people village",name:"Bug people village",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-31T12:53:45.845264Z"},{article_type:"organization",description:" The group of archangels that have their own stars. All of them have their own solar systems, as Lucifer's planetoid had.\nFen managed to find where Lucifer's star used to be. Fen...",pk:55,name_full:"Celestial Archangelic Beings",name:"Celestial Archangelic Beings",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-12T09:23:03.231654Z"},{article_type:"organization",description:" \nHolding more favour with the people than even that of the Aspen family, the Church of Brigantia has a presence in every common folks life. Their clerics care for the land...",pk:1,name_full:"Church of Brigantia",name:"Church of Brigantia",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:15:22.612710Z"},{article_type:"organization",description:" \nThis Church keeps mostly to itself and its worshipers, exercising as little force over others as possible, however in times of tense relations between the Dwarves of the mountain who supply...",pk:2,name_full:"Church of Dunatis",name:"Church of Dunatis",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:15:07.906083Z"},{article_type:"organization",description:" \nGeneral\nAdjudicators of battles. Healers of the wounded and in times gone by, hunters of the chaos touched who had given in to the power.\nThe Church of Morrigan has a bloody history,...",pk:3,name_full:"Church of Morrigan",name:"Church of Morrigan",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-21T18:46:34.125916Z"},{article_type:"organization",description:" \nThe Church of Silvanus holds power over the North in particular, where it's cathedral is located. The Church attracts many talented hunters and skilled explorers. The Church is in charge of...",pk:4,name_full:"Church of Silvanus",name:"Church of Silvanus",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:14:50.614549Z"},{article_type:"organization",description:" An institution designed to create a diverse and thus group of individuals from all stratum who will determine who will be the next King when no clear line of succession is...",pk:18,name_full:"Council Of Succession",name:"Council Of Succession",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-06-10T12:00:00.000000Z"},{article_type:"organization",description:" A group of scoundrels in Merren that are of key importance. Their leader is pretty well liked within the underground ecosystem, as they have the best scouts. She used to work...",pk:37,name_full:"Dock Hawks",name:"Dock Hawks",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-02T12:04:47.463005Z"},{article_type:"organization",description:" Were a group of dwarves from Fen's Era famed for their gems",pk:23,name_full:"Dwarrow {Status Unknown}",name:"Dwarrow {Status Unknown}",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-13T12:00:00.000000Z"}].map((entry=>({...entry,getAbsoluteRouterUrl:()=>"/organization/123"})))},"./src/app/_services/article/player-class.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>dummyClasses});const dummyClasses=[{name:"Artificer",pk:1,update_datetime:"2021-04-20T14:31:24.033655Z"},{name:"Barbarian",pk:2,update_datetime:"2021-04-20T14:31:27.810089Z"},{name:"Bard",pk:3,update_datetime:"2021-04-20T14:31:36.408312Z"},{name:"Cleric",pk:4,update_datetime:"2021-04-20T14:31:39.485140Z"},{name:"Druid",pk:5,update_datetime:"2021-04-20T14:31:50.431678Z"},{name:"Fighter",pk:6,update_datetime:"2021-04-20T14:31:53.562771Z"},{name:"Monk",pk:7,update_datetime:"2021-04-20T14:31:56.226259Z"},{name:"Paladin",pk:8,update_datetime:"2021-04-20T14:31:58.897597Z"},{name:"Ranger",pk:9,update_datetime:"2021-04-20T14:32:06.986455Z"},{name:"Rogue",pk:10,update_datetime:"2021-04-20T14:32:09.472989Z"},{name:"Sorcerer",pk:11,update_datetime:"2021-04-20T14:32:11.740394Z"},{name:"Warlock",pk:12,update_datetime:"2021-04-20T14:32:13.937586Z"},{name:"Wizard",pk:13,update_datetime:"2021-04-20T14:32:16.277146Z"}]},"./src/app/_services/formly/formly-service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{p:()=>FormlyProvider});var _formly_service_service__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/app/_services/formly/formly-service.service.ts");const FormlyProvider={provide:_formly_service_service__WEBPACK_IMPORTED_MODULE_0__.$,useFactory:()=>new _formly_service_service__WEBPACK_IMPORTED_MODULE_0__.$}},"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/5483.c59eea1c.iframe.bundle.js b/5483.c59eea1c.iframe.bundle.js
new file mode 100644
index 000000000..d89deeb8c
--- /dev/null
+++ b/5483.c59eea1c.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5483],{"./src/app/_services/article/organization.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>dummyOrganizations});const dummyOrganizations=[{article_type:"organization",description:" Magic is Chaos and sometimes people are in touch with this force. Though understanding and control we order the Chaos. It is only when we allow it to overcome us that...",pk:17,name_full:"Academy Of Schools",name:"Academy Of Schools",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-12T15:33:07.176299Z"},{article_type:"organization",description:" The ruling family of Hallan. Loyal to Duke Aspen. Somewhat politically powerful as Hallan is an important trading post. Further make an effort to be very presentable and are well-practiced in...",pk:13,name_full:"Affingtons",name:"Affingtons",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-12-22T16:40:48.834877Z"},{article_type:"organization",description:" The Aspen blood line is one of the main noble blood lines in Aldrune.\nTheir innate ability to sense motion and vibration has led to them being excellent hunters in the dark...",pk:5,name_full:"Aspen Blood",name:"Aspen Blood",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-11T16:55:59.479546Z"},{article_type:"organization",description:" \nThe black feather blood line is one of the main noble blood lines in Aldrune.\nThose of this lineage have innate control over animals and can communicate with them freely and without...",pk:6,name_full:"Black Feather Blood",name:"Black Feather Blood",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-19T10:15:03.064474Z"},{article_type:"organization",description:" A guild of mercenaries protecting caravan's.\nAround for 20 years or so. Part of the guild faction supporting Mordred. Used to be led by Orman Ethelwick until I killed him.",pk:14,name_full:"Bronze Hoof guild",name:"Bronze Hoof guild",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-12-06T21:19:17.466740Z"},{article_type:"organization",description:" A village made up of an unknown species, located somewhere in the desert hellscape we were telported to after our fight with Prince Somnis.\nRoughly somewhere upwards of 50 people in size,...",pk:41,name_full:"Bug people village",name:"Bug people village",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-31T12:53:45.845264Z"},{article_type:"organization",description:" The group of archangels that have their own stars. All of them have their own solar systems, as Lucifer's planetoid had.\nFen managed to find where Lucifer's star used to be. Fen...",pk:55,name_full:"Celestial Archangelic Beings",name:"Celestial Archangelic Beings",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-12T09:23:03.231654Z"},{article_type:"organization",description:" \nHolding more favour with the people than even that of the Aspen family, the Church of Brigantia has a presence in every common folks life. Their clerics care for the land...",pk:1,name_full:"Church of Brigantia",name:"Church of Brigantia",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:15:22.612710Z"},{article_type:"organization",description:" \nThis Church keeps mostly to itself and its worshipers, exercising as little force over others as possible, however in times of tense relations between the Dwarves of the mountain who supply...",pk:2,name_full:"Church of Dunatis",name:"Church of Dunatis",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:15:07.906083Z"},{article_type:"organization",description:" \nGeneral\nAdjudicators of battles. Healers of the wounded and in times gone by, hunters of the chaos touched who had given in to the power.\nThe Church of Morrigan has a bloody history,...",pk:3,name_full:"Church of Morrigan",name:"Church of Morrigan",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-21T18:46:34.125916Z"},{article_type:"organization",description:" \nThe Church of Silvanus holds power over the North in particular, where it's cathedral is located. The Church attracts many talented hunters and skilled explorers. The Church is in charge of...",pk:4,name_full:"Church of Silvanus",name:"Church of Silvanus",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:14:50.614549Z"},{article_type:"organization",description:" An institution designed to create a diverse and thus group of individuals from all stratum who will determine who will be the next King when no clear line of succession is...",pk:18,name_full:"Council Of Succession",name:"Council Of Succession",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-06-10T12:00:00.000000Z"},{article_type:"organization",description:" A group of scoundrels in Merren that are of key importance. Their leader is pretty well liked within the underground ecosystem, as they have the best scouts. She used to work...",pk:37,name_full:"Dock Hawks",name:"Dock Hawks",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-02T12:04:47.463005Z"},{article_type:"organization",description:" Were a group of dwarves from Fen's Era famed for their gems",pk:23,name_full:"Dwarrow {Status Unknown}",name:"Dwarrow {Status Unknown}",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-13T12:00:00.000000Z"}].map((entry=>({...entry,getAbsoluteRouterUrl:()=>"/organization/123"})))},"./src/app/_services/article/player-class.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>dummyClasses});const dummyClasses=[{name:"Artificer",pk:1,update_datetime:"2021-04-20T14:31:24.033655Z"},{name:"Barbarian",pk:2,update_datetime:"2021-04-20T14:31:27.810089Z"},{name:"Bard",pk:3,update_datetime:"2021-04-20T14:31:36.408312Z"},{name:"Cleric",pk:4,update_datetime:"2021-04-20T14:31:39.485140Z"},{name:"Druid",pk:5,update_datetime:"2021-04-20T14:31:50.431678Z"},{name:"Fighter",pk:6,update_datetime:"2021-04-20T14:31:53.562771Z"},{name:"Monk",pk:7,update_datetime:"2021-04-20T14:31:56.226259Z"},{name:"Paladin",pk:8,update_datetime:"2021-04-20T14:31:58.897597Z"},{name:"Ranger",pk:9,update_datetime:"2021-04-20T14:32:06.986455Z"},{name:"Rogue",pk:10,update_datetime:"2021-04-20T14:32:09.472989Z"},{name:"Sorcerer",pk:11,update_datetime:"2021-04-20T14:32:11.740394Z"},{name:"Warlock",pk:12,update_datetime:"2021-04-20T14:32:13.937586Z"},{name:"Wizard",pk:13,update_datetime:"2021-04-20T14:32:16.277146Z"}]},"./src/app/_services/formly/formly-service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{p:()=>FormlyProvider});var _formly_service_service__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/app/_services/formly/formly-service.service.ts");const FormlyProvider={provide:_formly_service_service__WEBPACK_IMPORTED_MODULE_0__.$,useFactory:()=>new _formly_service_service__WEBPACK_IMPORTED_MODULE_0__.$}},"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/6663.4c0357e8.iframe.bundle.js b/6663.4c0357e8.iframe.bundle.js
new file mode 100644
index 000000000..01268911d
--- /dev/null
+++ b/6663.4c0357e8.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6663],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/molecules/link-entry/link-entry.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>LinkEntryComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var link_entry_componentngResource=__webpack_require__("./src/design/molecules/link-entry/link-entry.component.scss?ngResource"),link_entry_componentngResource_default=__webpack_require__.n(link_entry_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let LinkEntryComponent=class LinkEntryComponent{constructor(){this.entry=core.input.required(),this.canDelete=(0,core.input)(!1),this.deleteMessage=(0,core.input)("Delete entry?"),this.delete=new core.EventEmitter,this.linkClick=new core.EventEmitter,this.state=(0,core.signal)("DISPLAY")}changeState(newState){this.state.set(newState)}static{this.propDecorators={entry:[{type:core.Input,args:[{isSignal:!0,alias:"entry",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],deleteMessage:[{type:core.Input,args:[{isSignal:!0,alias:"deleteMessage",required:!1,transform:void 0}]}],delete:[{type:core.Output}],linkClick:[{type:core.Output}]}}};LinkEntryComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-link-entry",template:'\n \n
\n\n\n \x3c!-- Entry Linktext --\x3e\n \n {{ entry().linkText }}\n \n\n \x3c!-- Entry Name --\x3e\n \n {{ entry().label }}\n
\n\n \x3c!-- Delete Entry --\x3e\n \n @if (canDelete()) {\n \n }\n
\n \n\n\n \n \n {{ deleteMessage() }}\n \n \n \n
\n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,common.NgTemplateOutlet],styles:[link_entry_componentngResource_default()]})],LinkEntryComponent)},"./src/design/organisms/player/player.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>PlayerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var player_componentngResource=__webpack_require__("./src/design/organisms/player/player.component.scss?ngResource"),player_componentngResource_default=__webpack_require__.n(player_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),plyr_min=__webpack_require__("./node_modules/plyr/dist/plyr.min.js"),plyr_min_default=__webpack_require__.n(plyr_min);let PlayerComponent=class PlayerComponent{constructor(){this.SEEK_TIME=5,this.VOLUME_STEP=.05,this.serverUrl=core.input.required(),this.audioSource=core.input.required(),this.downloadSource=core.input.required(),this.playTime=core.input.required(),this.audioPlayer=(0,core.viewChild)("audioPlayer"),(0,core.effect)((()=>{const playerElement=this.audioPlayer()?.nativeElement;playerElement&&(this.plyr=new(plyr_min_default())(playerElement,{controls:["play","progress","current-time","mute","volume","download","settings"],invertTime:!1,seekTime:this.SEEK_TIME,volume:0}))})),(0,core.effect)((()=>{this.plyr.download=this.downloadSource()})),(0,core.effect)((()=>this.setPlayTime(this.playTime())))}triggerHotkeyAction(keyPressEvent){keyPressEvent.stopPropagation();switch(keyPressEvent.code){case"Space":case"Enter":this.play();break;case"KeyM":this.mute();break;case"ArrowRight":this.seekForward();break;case"ArrowLeft":this.seekBackward()}}setPlayTime(time){null!=time&&(this.plyr.currentTime=time)}play(){this.plyr.togglePlay()}seekBackward(){this.plyr.rewind(this.SEEK_TIME)}seekForward(){this.plyr.forward(this.SEEK_TIME)}increaseVolume(){this.plyr.increaseVolume(this.VOLUME_STEP)}decreaseVolume(){this.plyr.decreaseVolume(this.VOLUME_STEP)}mute(){this.plyr.muted=!this.plyr.muted}static{this.ctorParameters=()=>[]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],audioSource:[{type:core.Input,args:[{isSignal:!0,alias:"audioSource",required:!0,transform:void 0}]}],downloadSource:[{type:core.Input,args:[{isSignal:!0,alias:"downloadSource",required:!0,transform:void 0}]}],playTime:[{type:core.Input,args:[{isSignal:!0,alias:"playTime",required:!0,transform:void 0}]}],audioPlayer:[{type:core.ViewChild,args:["audioPlayer",{isSignal:!0}]}]}}};PlayerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-player",template:' \n',standalone:!0,imports:[],styles:[player_componentngResource_default()]})],PlayerComponent)},"./src/design/organisms/sessionaudio-player/sessionaudio-player.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{X:()=>SessionaudioPlayerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var sessionaudio_player_componentngResource=__webpack_require__("./src/design/organisms/sessionaudio-player/sessionaudio-player.component.scss?ngResource"),sessionaudio_player_componentngResource_default=__webpack_require__.n(sessionaudio_player_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),link_entry_component=__webpack_require__("./src/design/molecules/link-entry/link-entry.component.ts"),player_component=__webpack_require__("./src/design/organisms/player/player.component.ts");let SessionaudioPlayerComponent=class SessionaudioPlayerComponent{constructor(formlyService){this.formlyService=formlyService,this.sessionAudioPk=core.input.required(),this.timestamps=core.input.required(),this.serverUrl=core.input.required(),this.audioSource=core.input.required(),this.downloadSource=core.input.required(),this.canDelete=core.input.required(),this.canCreate=core.input.required(),this.deleteTimestamp=new core.EventEmitter,this.createTimestamp=new core.EventEmitter,this.timestampEntries=(0,core.computed)((()=>this.timestamps()?.map((timestamp=>({value:timestamp,label:timestamp.name,linkText:this.timeToString(timestamp.time)}))))),this.timestampState=(0,core.signal)("DISPLAY"),this.currentTime=(0,core.signal)(0),this.timestampForm=new fesm2022_forms.gE({}),this.timestampFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"time",maxLength:8,minLength:8,placeholder:"hh:mm:ss",className:"timestamp-input black-background px-0 col-lg-2 col-3",validators:["time"],required:!0,inputKind:"STRING"}),this.formlyService.buildInputConfig({key:"name",label:"Title",className:"timestamp-input black-background px-0 col-lg-10 col-9",required:!0,inputKind:"STRING"})])),this.timestampModel=(0,core.signal)({})}changeTimestampState(newState){this.timestampState.set(newState)}onLinkClick(timestamp){this.currentTime.set(timestamp.time),setTimeout((()=>this.currentTime.set(void 0)),1)}onSubmit(timestamp){const newTimestamp={name:timestamp.name,time:this.stringToTime(timestamp.time),session_audio:this.sessionAudioPk()};this.createTimestamp.emit(newTimestamp),this.timestampState.set("DISPLAY"),this.timestampModel.set({})}timeToString(seconds){const hours=Math.floor(seconds/3600),minutes=Math.floor((seconds-3600*hours)/60),remainingSeconds=Math.floor(seconds-3600*hours-60*minutes);return`${hours.toString().padStart(2,"0")}:${minutes.toString().padStart(2,"0")}:${remainingSeconds.toString().padStart(2,"0")}`}stringToTime(timeString){const[hours,minutes,seconds]=timeString.split(":").map(Number);return 3600*hours+60*minutes+seconds}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={sessionAudioPk:[{type:core.Input,args:[{isSignal:!0,alias:"sessionAudioPk",required:!0,transform:void 0}]}],timestamps:[{type:core.Input,args:[{isSignal:!0,alias:"timestamps",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],audioSource:[{type:core.Input,args:[{isSignal:!0,alias:"audioSource",required:!0,transform:void 0}]}],downloadSource:[{type:core.Input,args:[{isSignal:!0,alias:"downloadSource",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],deleteTimestamp:[{type:core.Output}],createTimestamp:[{type:core.Output}]}}};SessionaudioPlayerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-sessionaudio-player",template:'\n
\n
\n
\n
\n\n @if (canCreate()) {\n @switch (timestampState()) {\n @case ("DISPLAY") {\n
\n }\n @case ("CREATE") {\n
\n }\n }\n }\n\n
\n @for (entry of timestampEntries(); track entry.value.pk) {\n
\n }\n
\n
\n\n\n \n \n
\n \n\n\n \n \n \n \n \n',standalone:!0,imports:[player_component.D,link_entry_component.i,button_component.Q,molecules.s2,card_component.i,common.NgTemplateOutlet],styles:[sessionaudio_player_componentngResource_default()]})],SessionaudioPlayerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/link-entry/link-entry.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".linkentry {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: var(--spacer-4);\n}\n.linkentry--delete {\n justify-content: center;\n}\n.linkentry__link {\n text-align: end;\n cursor: pointer;\n}\n.linkentry__label {\n flex: 1;\n text-align: start;\n text-overflow: ellipsis;\n}\n.linkentry__box {\n background-color: var(--bs-secondary);\n padding: var(--spacer-2);\n}\n.linkentry__delete {\n display: flex;\n justify-content: flex-end;\n}\n.linkentry__delete-button {\n width: fit-content;\n display: inline-block;\n}\n\n.box {\n display: flex;\n flex-direction: row;\n width: fit-content;\n border-radius: var(--bs-border-radius);\n border-color: var(--bs-danger);\n border-style: solid;\n border-width: 1px;\n}\n.box__message {\n font-weight: bold;\n}\n.box__button {\n width: fit-content;\n margin-left: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/player/player.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/sessionaudio-player/sessionaudio-player.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".timestamp__list {\n margin-top: var(--spacer-3);\n}\n.timestamp__create-button {\n margin-top: var(--spacer-4);\n margin-bottom: var(--spacer-4);\n}\n.timestamp__create-form {\n width: 100%;\n text-align: center;\n font-weight: bold;\n}\n\n.list {\n gap: var(--spacer-1);\n display: flex;\n flex-direction: column;\n}\n.list__timestamp {\n padding-bottom: var(--spacer-1);\n display: block;\n}\n\n.container {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/6663.b9671fb7.iframe.bundle.js b/6663.b9671fb7.iframe.bundle.js
deleted file mode 100644
index ce9b97757..000000000
--- a/6663.b9671fb7.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6663],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/molecules/link-entry/link-entry.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>LinkEntryComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var link_entry_componentngResource=__webpack_require__("./src/design/molecules/link-entry/link-entry.component.scss?ngResource"),link_entry_componentngResource_default=__webpack_require__.n(link_entry_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let LinkEntryComponent=class LinkEntryComponent{constructor(){this.entry=core.input.required(),this.canDelete=(0,core.input)(!1),this.deleteMessage=(0,core.input)("Delete entry?"),this.delete=new core.EventEmitter,this.linkClick=new core.EventEmitter,this.state=(0,core.signal)("DISPLAY")}changeState(newState){this.state.set(newState)}static{this.propDecorators={entry:[{type:core.Input,args:[{isSignal:!0,alias:"entry",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],deleteMessage:[{type:core.Input,args:[{isSignal:!0,alias:"deleteMessage",required:!1,transform:void 0}]}],delete:[{type:core.Output}],linkClick:[{type:core.Output}]}}};LinkEntryComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-link-entry",template:'\n \n
\n\n\n \x3c!-- Entry Linktext --\x3e\n \n {{ entry().linkText }}\n \n\n \x3c!-- Entry Name --\x3e\n \n {{ entry().label }}\n
\n\n \x3c!-- Delete Entry --\x3e\n \n @if (canDelete()) {\n \n }\n
\n \n\n\n \n \n {{ deleteMessage() }}\n \n \n \n
\n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,common.NgTemplateOutlet],styles:[link_entry_componentngResource_default()]})],LinkEntryComponent)},"./src/design/organisms/player/player.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>PlayerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var player_componentngResource=__webpack_require__("./src/design/organisms/player/player.component.scss?ngResource"),player_componentngResource_default=__webpack_require__.n(player_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),plyr_min=__webpack_require__("./node_modules/plyr/dist/plyr.min.js"),plyr_min_default=__webpack_require__.n(plyr_min);let PlayerComponent=class PlayerComponent{constructor(){this.SEEK_TIME=5,this.VOLUME_STEP=.05,this.serverUrl=core.input.required(),this.audioSource=core.input.required(),this.downloadSource=core.input.required(),this.playTime=core.input.required(),this.audioPlayer=(0,core.viewChild)("audioPlayer"),(0,core.effect)((()=>{const playerElement=this.audioPlayer()?.nativeElement;playerElement&&(this.plyr=new(plyr_min_default())(playerElement,{controls:["play","progress","current-time","mute","volume","download","settings"],invertTime:!1,seekTime:this.SEEK_TIME,volume:0}))})),(0,core.effect)((()=>{this.plyr.download=this.downloadSource()})),(0,core.effect)((()=>this.setPlayTime(this.playTime())))}triggerHotkeyAction(keyPressEvent){keyPressEvent.stopPropagation();switch(keyPressEvent.code){case"Space":case"Enter":this.play();break;case"KeyM":this.mute();break;case"ArrowRight":this.seekForward();break;case"ArrowLeft":this.seekBackward()}}setPlayTime(time){null!=time&&(this.plyr.currentTime=time)}play(){this.plyr.togglePlay()}seekBackward(){this.plyr.rewind(this.SEEK_TIME)}seekForward(){this.plyr.forward(this.SEEK_TIME)}increaseVolume(){this.plyr.increaseVolume(this.VOLUME_STEP)}decreaseVolume(){this.plyr.decreaseVolume(this.VOLUME_STEP)}mute(){this.plyr.muted=!this.plyr.muted}static{this.ctorParameters=()=>[]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],audioSource:[{type:core.Input,args:[{isSignal:!0,alias:"audioSource",required:!0,transform:void 0}]}],downloadSource:[{type:core.Input,args:[{isSignal:!0,alias:"downloadSource",required:!0,transform:void 0}]}],playTime:[{type:core.Input,args:[{isSignal:!0,alias:"playTime",required:!0,transform:void 0}]}],audioPlayer:[{type:core.ViewChild,args:["audioPlayer",{isSignal:!0}]}]}}};PlayerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-player",template:' \n',standalone:!0,imports:[],styles:[player_componentngResource_default()]})],PlayerComponent)},"./src/design/organisms/sessionaudio-player/sessionaudio-player.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{X:()=>SessionaudioPlayerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var sessionaudio_player_componentngResource=__webpack_require__("./src/design/organisms/sessionaudio-player/sessionaudio-player.component.scss?ngResource"),sessionaudio_player_componentngResource_default=__webpack_require__.n(sessionaudio_player_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),link_entry_component=__webpack_require__("./src/design/molecules/link-entry/link-entry.component.ts"),player_component=__webpack_require__("./src/design/organisms/player/player.component.ts");let SessionaudioPlayerComponent=class SessionaudioPlayerComponent{constructor(formlyService){this.formlyService=formlyService,this.sessionAudioPk=core.input.required(),this.timestamps=core.input.required(),this.serverUrl=core.input.required(),this.audioSource=core.input.required(),this.downloadSource=core.input.required(),this.canDelete=core.input.required(),this.canCreate=core.input.required(),this.deleteTimestamp=new core.EventEmitter,this.createTimestamp=new core.EventEmitter,this.timestampEntries=(0,core.computed)((()=>this.timestamps()?.map((timestamp=>({value:timestamp,label:timestamp.name,linkText:this.timeToString(timestamp.time)}))))),this.timestampState=(0,core.signal)("DISPLAY"),this.currentTime=(0,core.signal)(0),this.timestampForm=new fesm2022_forms.gE({}),this.timestampFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"time",maxLength:8,minLength:8,placeholder:"hh:mm:ss",className:"timestamp-input black-background px-0 col-lg-2 col-3",validators:["time"],required:!0,inputKind:"STRING"}),this.formlyService.buildInputConfig({key:"name",label:"Title",className:"timestamp-input black-background px-0 col-lg-10 col-9",required:!0,inputKind:"STRING"})])),this.timestampModel=(0,core.signal)({})}changeTimestampState(newState){this.timestampState.set(newState)}onLinkClick(timestamp){this.currentTime.set(timestamp.time),setTimeout((()=>this.currentTime.set(void 0)),1)}onSubmit(timestamp){const newTimestamp={name:timestamp.name,time:this.stringToTime(timestamp.time),session_audio:this.sessionAudioPk()};this.createTimestamp.emit(newTimestamp),this.timestampState.set("DISPLAY"),this.timestampModel.set({})}timeToString(seconds){const hours=Math.floor(seconds/3600),minutes=Math.floor((seconds-3600*hours)/60),remainingSeconds=Math.floor(seconds-3600*hours-60*minutes);return`${hours.toString().padStart(2,"0")}:${minutes.toString().padStart(2,"0")}:${remainingSeconds.toString().padStart(2,"0")}`}stringToTime(timeString){const[hours,minutes,seconds]=timeString.split(":").map(Number);return 3600*hours+60*minutes+seconds}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={sessionAudioPk:[{type:core.Input,args:[{isSignal:!0,alias:"sessionAudioPk",required:!0,transform:void 0}]}],timestamps:[{type:core.Input,args:[{isSignal:!0,alias:"timestamps",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],audioSource:[{type:core.Input,args:[{isSignal:!0,alias:"audioSource",required:!0,transform:void 0}]}],downloadSource:[{type:core.Input,args:[{isSignal:!0,alias:"downloadSource",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],deleteTimestamp:[{type:core.Output}],createTimestamp:[{type:core.Output}]}}};SessionaudioPlayerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-sessionaudio-player",template:'\n
\n
\n
\n
\n\n @if (canCreate()) {\n @switch (timestampState()) {\n @case ("DISPLAY") {\n
\n }\n @case ("CREATE") {\n
\n }\n }\n }\n\n
\n @for (entry of timestampEntries(); track entry.value.pk) {\n
\n }\n
\n
\n\n\n \n \n
\n \n\n\n \n \n \n \n \n',standalone:!0,imports:[player_component.D,link_entry_component.i,button_component.Q,molecules.s2,card_component.i,common.NgTemplateOutlet],styles:[sessionaudio_player_componentngResource_default()]})],SessionaudioPlayerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/link-entry/link-entry.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".linkentry {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: var(--spacer-4);\n}\n.linkentry--delete {\n justify-content: center;\n}\n.linkentry__link {\n text-align: end;\n cursor: pointer;\n}\n.linkentry__label {\n flex: 1;\n text-align: start;\n text-overflow: ellipsis;\n}\n.linkentry__box {\n background-color: var(--bs-secondary);\n padding: var(--spacer-2);\n}\n.linkentry__delete {\n display: flex;\n justify-content: flex-end;\n}\n.linkentry__delete-button {\n width: fit-content;\n display: inline-block;\n}\n\n.box {\n display: flex;\n flex-direction: row;\n width: fit-content;\n border-radius: var(--bs-border-radius);\n border-color: var(--bs-danger);\n border-style: solid;\n border-width: 1px;\n}\n.box__message {\n font-weight: bold;\n}\n.box__button {\n width: fit-content;\n margin-left: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/player/player.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/sessionaudio-player/sessionaudio-player.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".timestamp__list {\n margin-top: var(--spacer-3);\n}\n.timestamp__create-button {\n margin-top: var(--spacer-4);\n margin-bottom: var(--spacer-4);\n}\n.timestamp__create-form {\n width: 100%;\n text-align: center;\n font-weight: bold;\n}\n\n.list {\n gap: var(--spacer-1);\n display: flex;\n flex-direction: column;\n}\n.list__timestamp {\n padding-bottom: var(--spacer-1);\n display: block;\n}\n\n.container {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/669.4fa1f6a4.iframe.bundle.js b/669.4fa1f6a4.iframe.bundle.js
new file mode 100644
index 000000000..bb5ab7df3
--- /dev/null
+++ b/669.4fa1f6a4.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[669],{"./src/app/_modules/formly_constants.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{aj:()=>FORMLY_CHILD_MODULE,d_:()=>FORMLY_MODULE});var ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),molecules=__webpack_require__("./src/design/molecules/index.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_autocomplete_field_componentngResource=__webpack_require__("./src/design/molecules/formly-autocomplete-field/formly-autocomplete-field.component.scss?ngResource"),formly_autocomplete_field_componentngResource_default=__webpack_require__.n(formly_autocomplete_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),switchMap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js"),fromEvent=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),debounceTime=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js"),merge=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/merge.js"),ReplaySubject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js"),of=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),shareReplay=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js"),takeUntil=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js"),startWith=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/startWith.js"),withLatestFrom=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts"),badge_component=__webpack_require__("./src/design/atoms/badge/badge.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");const NON_NORMAL_CHARACTER_REGEXP=/[^a-zA-Z0-9]/g,TWO_OR_MORE_WHITESPACE_REGEXP=/\s\s+/g;let FormlyAutocompleteFieldComponent=class FormlyAutocompleteFieldComponent extends ngx_formly_core.PU{constructor(){super(...arguments),this.destroy$=new Subject.B,this.randomId=crypto.randomUUID(),this.inputId=`autocomplete-${this.randomId}`,this.inputElement=(0,core.viewChild)("input"),this.inputElement$=(0,rxjs_interop.br)(this.inputElement).pipe((0,rxjs_operators.u5)()),this.customProps=this.props.additionalProperties,this.htmlBadgeClickEvents$=new Subject.B,this.inputValue="",this.htmlInputEvents$=this.inputElement$.pipe((0,switchMap.n)((input=>(0,fromEvent.R)(input.nativeElement,"input"))),(0,map.T)((event=>({event,inputValue:this.inputElement()?.nativeElement.value??""}))),(0,tap.M)((()=>this.formControl.markAsDirty()))),this.htmlBackspaceClearEvents$=this.inputElement$.pipe((0,switchMap.n)((input=>(0,fromEvent.R)(input.nativeElement,"keydown"))),(0,filter.p)((event=>"Backspace"===event.key)),(0,filter.p)((()=>""===this.inputElement()?.nativeElement.value)),(0,map.T)((()=>{})),(0,debounceTime.B)(100)),this.manualInputTrigger$=new Subject.B,this.manualInputEvents$=this.manualInputTrigger$.pipe((0,map.T)((manualValue=>({event:null,inputValue:manualValue})))),this.inputEvents$=(0,merge.h)(this.htmlInputEvents$,this.manualInputEvents$),this.inputClearSelectEvents$=this.inputEvents$.pipe((0,filter.p)((event=>0===event.inputValue.length)),(0,map.T)((()=>{})),(0,debounceTime.B)(100)),this.clearSelectEvents$=(0,merge.h)(this.inputClearSelectEvents$,this.htmlBadgeClickEvents$,this.htmlBackspaceClearEvents$).pipe((0,map.T)((()=>({sourceEvent:null,inputValue:"",selectedOption:void 0})))),this.isLoading$=new ReplaySubject.m(1),this.options$=this.htmlInputEvents$.pipe((0,debounceTime.B)(500),(0,tap.M)((()=>this.isLoading$.next(!0))),(0,switchMap.n)((()=>{const searchTerm=this.inputElement()?.nativeElement.value,cleanedTerm=searchTerm?.replaceAll(NON_NORMAL_CHARACTER_REGEXP," ").trim().replace(TWO_OR_MORE_WHITESPACE_REGEXP," ").trim();return cleanedTerm&&cleanedTerm.length>=1?this.customProps.loadOptions(cleanedTerm,this.props,this.formControl):(0,of.of)([])})),(0,tap.M)((()=>this.isLoading$.next(!1))),(0,shareReplay.t)(1))}onFocus(){this.inputElement()?.nativeElement.focus()}ngOnInit(){this.setupData(),this.setupBehavior()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setupBehavior(){this.inputEvents$.pipe((0,takeUntil.Q)(this.destroy$)).subscribe((event=>{this.inputValue=event.inputValue})),this.selectEvents$.pipe((0,takeUntil.Q)(this.destroy$)).subscribe((event=>{const newSelectedValue=event.selectedOption?.[this.customProps.optionValueProp];this.formControl.setValue(newSelectedValue)})),this.formControl.valueChanges.pipe((0,startWith.Z)(this.formControl.value),(0,withLatestFrom.E)(this.selectedOption$,this.options$),(0,takeUntil.Q)(this.destroy$)).subscribe((([newFormValue,currentlySelectedOption,options])=>{const currentlySelectedValue=currentlySelectedOption?.[this.customProps.optionValueProp];if(newFormValue!==currentlySelectedValue){const formOption=options.find((opt=>opt[this.customProps.optionValueProp]===newFormValue));null!=formOption?this.manualInputTrigger$.next(formOption[this.customProps.optionLabelProp]):this.manualInputTrigger$.next(`${newFormValue}`)}}))}setupData(){this.customProps=this.props.additionalProperties;const selectFromInputEvents$=(0,combineLatest.z)({options:this.options$,inputEvent:this.inputEvents$}).pipe((0,map.T)((({options,inputEvent})=>{const selectedOption=options.find((option=>option[this.customProps.optionLabelProp]===inputEvent.inputValue));return{inputValue:inputEvent.inputValue,sourceEvent:inputEvent.event,selectedOption}})),(0,filter.p)((event=>null!=event.selectedOption)));this.selectEvents$=(0,merge.h)(selectFromInputEvents$,this.clearSelectEvents$),this.selectedOption$=(0,merge.h)(this.customProps.initialValue$??(0,of.of)(void 0),this.selectEvents$.pipe((0,map.T)((selectEvent=>selectEvent.selectedOption)),(0,shareReplay.t)(1))),this.selectedLabel$=this.selectedOption$.pipe((0,map.T)((option=>option?.[this.customProps.optionLabelProp])))}static{this.propDecorators={inputElement:[{type:core.ViewChild,args:["input",{isSignal:!0}]}]}}};FormlyAutocompleteFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-autocomplete-field",standalone:!0,imports:[common.AsyncPipe,fesm2022_forms.X1,ngx_formly_core.qy,spinner_component.t,badge_component.n],template:'@let selectedOption = selectedOption$ | async;\n@let selectedLabel = selectedLabel$ | async;\n@let isLoading = (isLoading$ | async) === true;\n\n\n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[formly_autocomplete_field_componentngResource_default()]})],FormlyAutocompleteFieldComponent);var formly_datepicker_field_component=__webpack_require__("./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.ts"),formly_editor_field_component=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.component.ts"),formly_select_disable_field_component=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),validators=__webpack_require__("./src/app/_services/formly/validators.ts");const FORMLY_CONFIG={types:[{name:"file",component:molecules.JS,wrappers:["form-field"]},{name:"text-editor",component:formly_editor_field_component.S},{name:"select-disable",component:formly_select_disable_field_component.D},{name:"datepicker",component:formly_datepicker_field_component.FE},{name:"autocomplete",component:FormlyAutocompleteFieldComponent}],validationMessages:[validators.wh,validators.h9,validators.Ou,validators.Oy,validators.Nd,validators.zG,validators.d,validators.Dq,validators.k1,validators.tu],validators:[validators.EC,validators.yt,validators.N8,validators.lk,validators.cC,validators.jp,validators.Z5,validators.kO,validators.iR]},FORMLY_MODULE=ngx_formly_core.qy.forRoot(FORMLY_CONFIG),FORMLY_CHILD_MODULE=ngx_formly_core.qy.forChild(FORMLY_CONFIG)},"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,iR:()=>numberValidator,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,tu:()=>notNumberMesage,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},notNumberMesage={name:"notNumber",message:"Your input is not a number."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const numberValidator={name:"notNumber",validation:function isNumberValidation(control){const isNumberType="number"==typeof control.value,isNumberString="string"==typeof control.value&&!isNaN(control.value),isNumber=isNumberType||isNumberString;return isNumber?null:{notNumber:!isNumber}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{FE:()=>FormlyDatepickerFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_datepicker_field_componentngResource=__webpack_require__("./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.scss?ngResource"),formly_datepicker_field_componentngResource_default=__webpack_require__.n(formly_datepicker_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let CustomAdapter=class CustomAdapter extends ng_bootstrap.dn{constructor(){super(...arguments),this.DELIMITER="-"}fromModel(value){if(value){let date=value.split(this.DELIMITER);return{day:parseInt(date[2],10),month:parseInt(date[1],10),year:parseInt(date[0],10)}}return null}toModel(date){if(null==date)return"";const dayString=`${date.day}`.padStart(2,"0"),monthString=`${date.month}`.padStart(2,"0");return`${`${date.year}`.padStart(4,"0")}${this.DELIMITER}${monthString}${this.DELIMITER}${dayString}`}};CustomAdapter=(0,tslib_es6.Cg)([(0,core.Injectable)()],CustomAdapter);let CustomDateParserFormatter=class CustomDateParserFormatter extends ng_bootstrap.tN{constructor(){super(...arguments),this.DELIMITER="/"}parse(value){if(null==value)return null;let date=value.split(this.DELIMITER);return{day:parseInt(date[2],10),month:parseInt(date[1],10),year:parseInt(date[0],10)}}format(date){if(null==date)return"";const dayString=`${date.day}`.padStart(2,"0"),monthString=`${date.month}`.padStart(2,"0");return`${`${date.year}`.padStart(4,"0")}${this.DELIMITER}${monthString}${this.DELIMITER}${dayString}`}};CustomDateParserFormatter=(0,tslib_es6.Cg)([(0,core.Injectable)()],CustomDateParserFormatter);let FormlyDatepickerFieldComponent=class FormlyDatepickerFieldComponent extends ngx_formly_core.PU{constructor(ngbCalendar,dateAdapter){super(),this.ngbCalendar=ngbCalendar,this.dateAdapter=dateAdapter}get today(){return this.dateAdapter.toModel(this.ngbCalendar.getToday())}static{this.ctorParameters=()=>[{type:ng_bootstrap.iF},{type:ng_bootstrap.dn}]}};FormlyDatepickerFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-datepicker",template:'\n
\n \n {{ to.label }}\n @if (to.required) {\n *\n }\n \n \n\n
\n
\n\n\n \n \n',providers:[{provide:ng_bootstrap.dn,useClass:CustomAdapter},{provide:ng_bootstrap.tN,useClass:CustomDateParserFormatter}],standalone:!0,imports:[fesm2022_forms.X1,button_component.Q,ngx_formly_core.qy,ng_bootstrap.IQ,icon_component.R],styles:[formly_datepicker_field_componentngResource_default()]})],FormlyDatepickerFieldComponent)},"./src/design/organisms/formly-editor-field/formly-editor-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{S:()=>FormlyEditorFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_editor_field_componentngResource=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.component.scss?ngResource"),formly_editor_field_componentngResource_default=__webpack_require__.n(formly_editor_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),tinymce_tinymce_angular=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),formly_editor_field_constants=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts");let FormlyEditorFieldComponent=class FormlyEditorFieldComponent extends ngx_formly_core.PU{constructor(){super(...arguments),this.settings=formly_editor_field_constants.O}};FormlyEditorFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-editor-field",template:'\n \n {{ to.label }}\n\n @if (to.required) {\n *\n }\n \n\n \n
\n',standalone:!0,imports:[tinymce_tinymce_angular.sv,fesm2022_forms.X1,ngx_formly_core.qy],styles:[formly_editor_field_componentngResource_default()]})],FormlyEditorFieldComponent)},"./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>TINYMCE_SETTINGS});const TINYMCE_SETTINGS={plugins:["advlist","autolink","lists","link","image","charmap","anchor","searchreplace","visualblocks","media","table","help","wordcount"],toolbar:["undo redo | formatselect | bold italic underline strikethrough subscript superscript link unlink blockquote | backcolor forecolor hilitecolor fontsizeselect |","alignleft aligncenter alignright | bullist numlist outdent indent | removeformat | table help"],skin:"oxide-dark",content_css:"dark",browser_spellcheck:!0,menubar:!1,height:500,convert_urls:!1,relative_urls:!1,branding:!1,base_url:"/tinymce",suffix:".min"}},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./src/environments/environment.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{c:()=>environment});const environment={kind:"DEVELOPMENT",backendDomain:"https://www.aldrune.com",apiUrl:"https://www.aldrune.com/wiki1/api",defaultTitle:"StoryFont",frontendPrefix:"wiki2"}},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/rxjs-operators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{cY:()=>debugLog,fC:()=>delayFalsy,u5:()=>filterNil});var rxjs__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),rxjs__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/pipe.js"),rxjs__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js"),rxjs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/delay.js"),src_environments_environment__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/environments/environment.ts"),_logging__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/utils/logging.ts");function filterNil(){return(0,rxjs__WEBPACK_IMPORTED_MODULE_1__.p)((x=>null!=x))}const debugLog=debugSymbol=>{const isDevelop="DEVELOPMENT"===src_environments_environment__WEBPACK_IMPORTED_MODULE_0__.c.kind;return(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.M)((x=>{isDevelop&&(0,_logging__WEBPACK_IMPORTED_MODULE_3__.R)(debugSymbol,x)}))};function delayFalsy(delayByMs=1e3){return(0,rxjs__WEBPACK_IMPORTED_MODULE_4__.F)((0,rxjs__WEBPACK_IMPORTED_MODULE_5__.n)((x=>(0,rxjs__WEBPACK_IMPORTED_MODULE_6__.of)(x).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.c)(x?0:delayByMs)))))}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/formly-autocomplete-field/formly-autocomplete-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".field__input {\n display: flex;\n flex-direction: row;\n background-color: #4c4c4c;\n border-radius: var(--bs-border-radius);\n align-items: center;\n flex-wrap: wrap;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n border: 1px solid #222;\n line-height: 1.5;\n font-weight: bold;\n font-size: 0.9375rem;\n padding: 0.375rem 0rem 0.375rem 0.75rem;\n}\n.field__input:focus, .field__input:focus-within {\n border: #a1abb5;\n outline: 0 solid;\n box-shadow: 0 0 0 0.25rem rgba(66, 86, 106, 0.25);\n}\n.field__is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23bf4044'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23bf4044' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.field__autocomplete {\n background-color: unset;\n border: none;\n flex: 1;\n color: inherit;\n min-width: 55%;\n}\n.field__autocomplete:focus-visible {\n outline: none;\n}\n.field__spinner {\n height: 1rem;\n width: 1rem;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.disabled {\n cursor: not-allowed;\n}\n\n.btn-outline-light {\n border-color: var(--bs-white);\n color: var(--bs-white);\n display: flex;\n align-items: center;\n}\n\ndiv.datepicker-day {\n background-color: var(--wiki-bg-solid);\n color: var(--bs-white);\n text-align: center;\n transition: background-color 0.2s ease-in-out;\n transition: color 0.2s ease-in-out;\n}\ndiv.datepicker-day:hover {\n color: var(--bs-black);\n background-color: grey;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-editor-field/formly-editor-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/669.c02a5a32.iframe.bundle.js b/669.c02a5a32.iframe.bundle.js
deleted file mode 100644
index 479f398d1..000000000
--- a/669.c02a5a32.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[669],{"./src/app/_modules/formly_constants.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{aj:()=>FORMLY_CHILD_MODULE,d_:()=>FORMLY_MODULE});var ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),molecules=__webpack_require__("./src/design/molecules/index.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_autocomplete_field_componentngResource=__webpack_require__("./src/design/molecules/formly-autocomplete-field/formly-autocomplete-field.component.scss?ngResource"),formly_autocomplete_field_componentngResource_default=__webpack_require__.n(formly_autocomplete_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),switchMap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js"),fromEvent=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),debounceTime=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js"),merge=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/merge.js"),ReplaySubject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js"),of=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),shareReplay=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/shareReplay.js"),takeUntil=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js"),startWith=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/startWith.js"),withLatestFrom=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts"),badge_component=__webpack_require__("./src/design/atoms/badge/badge.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");const NON_NORMAL_CHARACTER_REGEXP=/[^a-zA-Z0-9]/g,TWO_OR_MORE_WHITESPACE_REGEXP=/\s\s+/g;let FormlyAutocompleteFieldComponent=class FormlyAutocompleteFieldComponent extends ngx_formly_core.PU{constructor(){super(...arguments),this.destroy$=new Subject.B,this.randomId=crypto.randomUUID(),this.inputId=`autocomplete-${this.randomId}`,this.inputElement=(0,core.viewChild)("input"),this.inputElement$=(0,rxjs_interop.br)(this.inputElement).pipe((0,rxjs_operators.u5)()),this.customProps=this.props.additionalProperties,this.htmlBadgeClickEvents$=new Subject.B,this.inputValue="",this.htmlInputEvents$=this.inputElement$.pipe((0,switchMap.n)((input=>(0,fromEvent.R)(input.nativeElement,"input"))),(0,map.T)((event=>({event,inputValue:this.inputElement()?.nativeElement.value??""}))),(0,tap.M)((()=>this.formControl.markAsDirty()))),this.htmlBackspaceClearEvents$=this.inputElement$.pipe((0,switchMap.n)((input=>(0,fromEvent.R)(input.nativeElement,"keydown"))),(0,filter.p)((event=>"Backspace"===event.key)),(0,filter.p)((()=>""===this.inputElement()?.nativeElement.value)),(0,map.T)((()=>{})),(0,debounceTime.B)(100)),this.manualInputTrigger$=new Subject.B,this.manualInputEvents$=this.manualInputTrigger$.pipe((0,map.T)((manualValue=>({event:null,inputValue:manualValue})))),this.inputEvents$=(0,merge.h)(this.htmlInputEvents$,this.manualInputEvents$),this.inputClearSelectEvents$=this.inputEvents$.pipe((0,filter.p)((event=>0===event.inputValue.length)),(0,map.T)((()=>{})),(0,debounceTime.B)(100)),this.clearSelectEvents$=(0,merge.h)(this.inputClearSelectEvents$,this.htmlBadgeClickEvents$,this.htmlBackspaceClearEvents$).pipe((0,map.T)((()=>({sourceEvent:null,inputValue:"",selectedOption:void 0})))),this.isLoading$=new ReplaySubject.m(1),this.options$=this.htmlInputEvents$.pipe((0,debounceTime.B)(500),(0,tap.M)((()=>this.isLoading$.next(!0))),(0,switchMap.n)((()=>{const searchTerm=this.inputElement()?.nativeElement.value,cleanedTerm=searchTerm?.replaceAll(NON_NORMAL_CHARACTER_REGEXP," ").trim().replace(TWO_OR_MORE_WHITESPACE_REGEXP," ").trim();return cleanedTerm&&cleanedTerm.length>=1?this.customProps.loadOptions(cleanedTerm,this.props,this.formControl):(0,of.of)([])})),(0,tap.M)((()=>this.isLoading$.next(!1))),(0,shareReplay.t)(1))}onFocus(){this.inputElement()?.nativeElement.focus()}ngOnInit(){this.setupData(),this.setupBehavior()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setupBehavior(){this.inputEvents$.pipe((0,takeUntil.Q)(this.destroy$)).subscribe((event=>{this.inputValue=event.inputValue})),this.selectEvents$.pipe((0,takeUntil.Q)(this.destroy$)).subscribe((event=>{const newSelectedValue=event.selectedOption?.[this.customProps.optionValueProp];this.formControl.setValue(newSelectedValue)})),this.formControl.valueChanges.pipe((0,startWith.Z)(this.formControl.value),(0,withLatestFrom.E)(this.selectedOption$,this.options$),(0,takeUntil.Q)(this.destroy$)).subscribe((([newFormValue,currentlySelectedOption,options])=>{const currentlySelectedValue=currentlySelectedOption?.[this.customProps.optionValueProp];if(newFormValue!==currentlySelectedValue){const formOption=options.find((opt=>opt[this.customProps.optionValueProp]===newFormValue));null!=formOption?this.manualInputTrigger$.next(formOption[this.customProps.optionLabelProp]):this.manualInputTrigger$.next(`${newFormValue}`)}}))}setupData(){this.customProps=this.props.additionalProperties;const selectFromInputEvents$=(0,combineLatest.z)({options:this.options$,inputEvent:this.inputEvents$}).pipe((0,map.T)((({options,inputEvent})=>{const selectedOption=options.find((option=>option[this.customProps.optionLabelProp]===inputEvent.inputValue));return{inputValue:inputEvent.inputValue,sourceEvent:inputEvent.event,selectedOption}})),(0,filter.p)((event=>null!=event.selectedOption)));this.selectEvents$=(0,merge.h)(selectFromInputEvents$,this.clearSelectEvents$),this.selectedOption$=(0,merge.h)(this.customProps.initialValue$??(0,of.of)(void 0),this.selectEvents$.pipe((0,map.T)((selectEvent=>selectEvent.selectedOption)),(0,shareReplay.t)(1))),this.selectedLabel$=this.selectedOption$.pipe((0,map.T)((option=>option?.[this.customProps.optionLabelProp])))}static{this.propDecorators={inputElement:[{type:core.ViewChild,args:["input",{isSignal:!0}]}]}}};FormlyAutocompleteFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-autocomplete-field",standalone:!0,imports:[common.AsyncPipe,fesm2022_forms.X1,ngx_formly_core.qy,spinner_component.t,badge_component.n],template:'@let selectedOption = selectedOption$ | async;\n@let selectedLabel = selectedLabel$ | async;\n@let isLoading = (isLoading$ | async) === true;\n\n\n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[formly_autocomplete_field_componentngResource_default()]})],FormlyAutocompleteFieldComponent);var formly_datepicker_field_component=__webpack_require__("./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.ts"),formly_editor_field_component=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.component.ts"),formly_select_disable_field_component=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),validators=__webpack_require__("./src/app/_services/formly/validators.ts");const FORMLY_CONFIG={types:[{name:"file",component:molecules.JS,wrappers:["form-field"]},{name:"text-editor",component:formly_editor_field_component.S},{name:"select-disable",component:formly_select_disable_field_component.D},{name:"datepicker",component:formly_datepicker_field_component.FE},{name:"autocomplete",component:FormlyAutocompleteFieldComponent}],validationMessages:[validators.wh,validators.h9,validators.Ou,validators.Oy,validators.Nd,validators.zG,validators.d,validators.Dq,validators.k1],validators:[validators.EC,validators.yt,validators.N8,validators.lk,validators.cC,validators.jp,validators.Z5,validators.kO]},FORMLY_MODULE=ngx_formly_core.qy.forRoot(FORMLY_CONFIG),FORMLY_CHILD_MODULE=ngx_formly_core.qy.forChild(FORMLY_CONFIG)},"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{FE:()=>FormlyDatepickerFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_datepicker_field_componentngResource=__webpack_require__("./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.scss?ngResource"),formly_datepicker_field_componentngResource_default=__webpack_require__.n(formly_datepicker_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let CustomAdapter=class CustomAdapter extends ng_bootstrap.dn{constructor(){super(...arguments),this.DELIMITER="-"}fromModel(value){if(value){let date=value.split(this.DELIMITER);return{day:parseInt(date[2],10),month:parseInt(date[1],10),year:parseInt(date[0],10)}}return null}toModel(date){if(null==date)return"";const dayString=`${date.day}`.padStart(2,"0"),monthString=`${date.month}`.padStart(2,"0");return`${`${date.year}`.padStart(4,"0")}${this.DELIMITER}${monthString}${this.DELIMITER}${dayString}`}};CustomAdapter=(0,tslib_es6.Cg)([(0,core.Injectable)()],CustomAdapter);let CustomDateParserFormatter=class CustomDateParserFormatter extends ng_bootstrap.tN{constructor(){super(...arguments),this.DELIMITER="/"}parse(value){if(null==value)return null;let date=value.split(this.DELIMITER);return{day:parseInt(date[2],10),month:parseInt(date[1],10),year:parseInt(date[0],10)}}format(date){if(null==date)return"";const dayString=`${date.day}`.padStart(2,"0"),monthString=`${date.month}`.padStart(2,"0");return`${`${date.year}`.padStart(4,"0")}${this.DELIMITER}${monthString}${this.DELIMITER}${dayString}`}};CustomDateParserFormatter=(0,tslib_es6.Cg)([(0,core.Injectable)()],CustomDateParserFormatter);let FormlyDatepickerFieldComponent=class FormlyDatepickerFieldComponent extends ngx_formly_core.PU{constructor(ngbCalendar,dateAdapter){super(),this.ngbCalendar=ngbCalendar,this.dateAdapter=dateAdapter}get today(){return this.dateAdapter.toModel(this.ngbCalendar.getToday())}static{this.ctorParameters=()=>[{type:ng_bootstrap.iF},{type:ng_bootstrap.dn}]}};FormlyDatepickerFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-datepicker",template:'\n
\n \n {{ to.label }}\n @if (to.required) {\n *\n }\n \n \n\n
\n
\n\n\n \n \n',providers:[{provide:ng_bootstrap.dn,useClass:CustomAdapter},{provide:ng_bootstrap.tN,useClass:CustomDateParserFormatter}],standalone:!0,imports:[fesm2022_forms.X1,button_component.Q,ngx_formly_core.qy,ng_bootstrap.IQ,icon_component.R],styles:[formly_datepicker_field_componentngResource_default()]})],FormlyDatepickerFieldComponent)},"./src/design/organisms/formly-editor-field/formly-editor-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{S:()=>FormlyEditorFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_editor_field_componentngResource=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.component.scss?ngResource"),formly_editor_field_componentngResource_default=__webpack_require__.n(formly_editor_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),tinymce_tinymce_angular=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),formly_editor_field_constants=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts");let FormlyEditorFieldComponent=class FormlyEditorFieldComponent extends ngx_formly_core.PU{constructor(){super(...arguments),this.settings=formly_editor_field_constants.O}};FormlyEditorFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-editor-field",template:'\n \n {{ to.label }}\n\n @if (to.required) {\n *\n }\n \n\n \n
\n',standalone:!0,imports:[tinymce_tinymce_angular.sv,fesm2022_forms.X1,ngx_formly_core.qy],styles:[formly_editor_field_componentngResource_default()]})],FormlyEditorFieldComponent)},"./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>TINYMCE_SETTINGS});const TINYMCE_SETTINGS={plugins:["advlist","autolink","lists","link","image","charmap","anchor","searchreplace","visualblocks","media","table","help","wordcount"],toolbar:["undo redo | formatselect | bold italic underline strikethrough subscript superscript link unlink blockquote | backcolor forecolor hilitecolor fontsizeselect |","alignleft aligncenter alignright | bullist numlist outdent indent | removeformat | table help"],skin:"oxide-dark",content_css:"dark",browser_spellcheck:!0,menubar:!1,height:500,convert_urls:!1,relative_urls:!1,branding:!1,base_url:"/tinymce",suffix:".min"}},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./src/environments/environment.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{c:()=>environment});const environment={kind:"DEVELOPMENT",backendDomain:"https://www.aldrune.com",apiUrl:"https://www.aldrune.com/wiki1/api",defaultTitle:"StoryFont",frontendPrefix:"wiki2"}},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/rxjs-operators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{cY:()=>debugLog,fC:()=>delayFalsy,u5:()=>filterNil});var rxjs__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),rxjs__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/pipe.js"),rxjs__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/switchMap.js"),rxjs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/delay.js"),src_environments_environment__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/environments/environment.ts"),_logging__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/utils/logging.ts");function filterNil(){return(0,rxjs__WEBPACK_IMPORTED_MODULE_1__.p)((x=>null!=x))}const debugLog=debugSymbol=>{const isDevelop="DEVELOPMENT"===src_environments_environment__WEBPACK_IMPORTED_MODULE_0__.c.kind;return(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.M)((x=>{isDevelop&&(0,_logging__WEBPACK_IMPORTED_MODULE_3__.R)(debugSymbol,x)}))};function delayFalsy(delayByMs=1e3){return(0,rxjs__WEBPACK_IMPORTED_MODULE_4__.F)((0,rxjs__WEBPACK_IMPORTED_MODULE_5__.n)((x=>(0,rxjs__WEBPACK_IMPORTED_MODULE_6__.of)(x).pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_7__.c)(x?0:delayByMs)))))}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/formly-autocomplete-field/formly-autocomplete-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".field__input {\n display: flex;\n flex-direction: row;\n background-color: #4c4c4c;\n border-radius: var(--bs-border-radius);\n align-items: center;\n flex-wrap: wrap;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n border: 1px solid #222;\n line-height: 1.5;\n font-weight: bold;\n font-size: 0.9375rem;\n padding: 0.375rem 0rem 0.375rem 0.75rem;\n}\n.field__input:focus, .field__input:focus-within {\n border: #a1abb5;\n outline: 0 solid;\n box-shadow: 0 0 0 0.25rem rgba(66, 86, 106, 0.25);\n}\n.field__is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23bf4044'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23bf4044' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.field__autocomplete {\n background-color: unset;\n border: none;\n flex: 1;\n color: inherit;\n min-width: 55%;\n}\n.field__autocomplete:focus-visible {\n outline: none;\n}\n.field__spinner {\n height: 1rem;\n width: 1rem;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.disabled {\n cursor: not-allowed;\n}\n\n.btn-outline-light {\n border-color: var(--bs-white);\n color: var(--bs-white);\n display: flex;\n align-items: center;\n}\n\ndiv.datepicker-day {\n background-color: var(--wiki-bg-solid);\n color: var(--bs-white);\n text-align: center;\n transition: background-color 0.2s ease-in-out;\n transition: color 0.2s ease-in-out;\n}\ndiv.datepicker-day:hover {\n color: var(--bs-black);\n background-color: grey;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-editor-field/formly-editor-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/7262.29625605.iframe.bundle.js b/7262.29625605.iframe.bundle.js
deleted file mode 100644
index e98ce6152..000000000
--- a/7262.29625605.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7262],{"./src/design/animations/flip.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{S:()=>flipInY});var _angular_animations__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const flipAnimation=[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, 90deg)",transform:"perspective(400px) rotate3d(0, 1, 0, 90deg)","webkit-animation-timing-function":"ease-in","animation-timing-function":"ease-in"}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("400ms",(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i7)([(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, -20deg)",transform:"perspective(400px) rotate3d(0, 1, 0, -20deg)","webkit-animation-timing-function":"ease-in","animation-timing-function":"ease-in",offset:.4}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, 10deg)",transform:"perspective(400px) rotate3d(0, 1, 0, 10deg)",offset:.6}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, -5deg)",transform:"perspective(400px) rotate3d(0, 1, 0, -5deg)",offset:.8}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px)",transform:"perspective(400px)",offset:1})]))],flipInY=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("flipInY",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)("sideA => sideB",flipAnimation),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)("sideB => sideA",flipAnimation)])},"./src/design/atoms/_models/button.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C9:()=>toElementKind,bV:()=>ELEMENT_TYPES});const ELEMENT_TYPES=["PRIMARY","SECONDARY","DARK","DANGER","WARNING","LIGHT","INFO"];function toElementKind(kind){switch(kind){case"PRIMARY":case"SECONDARY":case"DARK":case"DANGER":case"WARNING":case"LIGHT":case"INFO":return kind;case"PRIMARY-OUTLINE":case"SECONDARY-OUTLINE":case"DARK-OUTLINE":case"DANGER-OUTLINE":case"WARNING-OUTLINE":case"LIGHT-OUTLINE":case"INFO-OUTLINE":return kind.replace("-OUTLINE","");case"NONE":return}}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/article-footer/article-footer.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>ArticleFooterComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var article_footer_componentngResource=__webpack_require__("./src/design/molecules/article-footer/article-footer.component.scss?ngResource"),article_footer_componentngResource_default=__webpack_require__.n(article_footer_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),confirmation_toggle_button_component=__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts");let ArticleFooterComponent=class ArticleFooterComponent{constructor(){this.buttonLabel=core.input.required(),this.buttonLink=(0,core.input)(void 0),this.deleteMessage=(0,core.input)("Delete this entry?"),this.showDelete=(0,core.input)(!0),this.buttonClick=new core.EventEmitter,this.delete=new core.EventEmitter}static{this.propDecorators={buttonLabel:[{type:core.Input,args:[{isSignal:!0,alias:"buttonLabel",required:!0,transform:void 0}]}],buttonLink:[{type:core.Input,args:[{isSignal:!0,alias:"buttonLink",required:!1,transform:void 0}]}],deleteMessage:[{type:core.Input,args:[{isSignal:!0,alias:"deleteMessage",required:!1,transform:void 0}]}],showDelete:[{type:core.Input,args:[{isSignal:!0,alias:"showDelete",required:!1,transform:void 0}]}],buttonClick:[{type:core.Output}],delete:[{type:core.Output}]}}};ArticleFooterComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-article-footer",template:'\n\n\n \n \n \n \n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[button_component.Q,router.Wk,common.NgTemplateOutlet,confirmation_toggle_button_component.T],styles:[article_footer_componentngResource_default()]})],ArticleFooterComponent)},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>ConfirmationToggleButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var confirmation_toggle_button_componentngResource=__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.scss?ngResource"),confirmation_toggle_button_componentngResource_default=__webpack_require__.n(confirmation_toggle_button_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),flip=__webpack_require__("./src/design/animations/flip.ts"),_models_button=__webpack_require__("./src/design/atoms/_models/button.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ConfirmationToggleButtonComponent=class ConfirmationToggleButtonComponent{constructor(){this.confirmationQuestion=core.input.required(),this.icon=(0,core.input)(),this.text=(0,core.input)(),this.toggleType=(0,core.input)("DANGER-OUTLINE"),this.toggleSize=(0,core.input)("MEDIUM"),this.confirmButtonType=(0,core.computed)((()=>(0,_models_button.C9)(this.toggleType())??"DANGER")),this.cancelButtonType=(0,core.input)("SECONDARY"),this.confirm=new core.EventEmitter,this.isActive=(0,core.signal)(!1)}toggle(){this.isActive.set(!this.isActive())}emitConfirmation(){this.isActive&&(this.confirm.emit(),this.toggle())}static{this.propDecorators={confirmationQuestion:[{type:core.Input,args:[{isSignal:!0,alias:"confirmationQuestion",required:!0,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],toggleType:[{type:core.Input,args:[{isSignal:!0,alias:"toggleType",required:!1,transform:void 0}]}],toggleSize:[{type:core.Input,args:[{isSignal:!0,alias:"toggleSize",required:!1,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],confirm:[{type:core.Output}]}}};ConfirmationToggleButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-confirmation-toggle-button",template:'\n \n
\n\n\n \n \n\n\n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,common.NgTemplateOutlet],animations:[flip.S],styles:[confirmation_toggle_button_componentngResource_default()]})],ConfirmationToggleButtonComponent)},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/article-footer/article-footer.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"app-confirmation-toggle-button {\n --align: end;\n}\n\n.footer {\n display: flex;\n justify-content: space-between;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --align: start;\n --confirmation-bg-color: var(--bs-card-bg) display: flex;\n justify-content: var(--align);\n}\n\n.confirmation-toggle {\n display: inline-block;\n width: fit-content;\n}\n\n.confirmation {\n border: 1px solid;\n display: flex;\n align-items: flex-end;\n align-content: center;\n border-radius: var(--bs-border-radius);\n padding: var(--spacer-2) var(--spacer-3);\n justify-content: space-between;\n background-color: var(--confirmation-bg-color);\n width: fit-content;\n flex-direction: column;\n}\n@media (min-width: 992px) {\n .confirmation {\n flex-direction: row;\n align-items: center;\n }\n}\n.confirmation--DANGER {\n border-color: var(--bs-danger);\n}\n.confirmation--WARNING {\n border-color: var(--bs-warning);\n}\n.confirmation--PRIMARY {\n border-color: var(--bs-primary);\n}\n.confirmation--SECONDARY {\n border-color: var(--bs-secondary);\n}\n.confirmation--TERTIARY {\n border-color: var(--bs-dark);\n}\n.confirmation__question {\n flex: 1;\n}\n@media (min-width: 992px) {\n .confirmation__question {\n margin-right: var(--spacer-2);\n }\n}\n.confirmation__buttons {\n display: flex;\n justify-content: space-between;\n width: 100%;\n}\n@media (min-width: 992px) {\n .confirmation__buttons {\n width: unset;\n }\n .confirmation__buttons :nth-child(1) {\n margin-right: var(--spacer-2);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/7262.aeed0cab.iframe.bundle.js b/7262.aeed0cab.iframe.bundle.js
new file mode 100644
index 000000000..a357c81c3
--- /dev/null
+++ b/7262.aeed0cab.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7262],{"./src/design/animations/flip.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{S:()=>flipInY});var _angular_animations__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const flipAnimation=[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, 90deg)",transform:"perspective(400px) rotate3d(0, 1, 0, 90deg)","webkit-animation-timing-function":"ease-in","animation-timing-function":"ease-in"}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("400ms",(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i7)([(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, -20deg)",transform:"perspective(400px) rotate3d(0, 1, 0, -20deg)","webkit-animation-timing-function":"ease-in","animation-timing-function":"ease-in",offset:.4}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, 10deg)",transform:"perspective(400px) rotate3d(0, 1, 0, 10deg)",offset:.6}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, -5deg)",transform:"perspective(400px) rotate3d(0, 1, 0, -5deg)",offset:.8}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px)",transform:"perspective(400px)",offset:1})]))],flipInY=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("flipInY",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)("sideA => sideB",flipAnimation),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)("sideB => sideA",flipAnimation)])},"./src/design/atoms/_models/button.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C9:()=>toElementKind,bV:()=>ELEMENT_TYPES});const ELEMENT_TYPES=["PRIMARY","SECONDARY","DARK","DANGER","WARNING","LIGHT","INFO"];function toElementKind(kind){switch(kind){case"PRIMARY":case"SECONDARY":case"DARK":case"DANGER":case"WARNING":case"LIGHT":case"INFO":return kind;case"PRIMARY-OUTLINE":case"SECONDARY-OUTLINE":case"DARK-OUTLINE":case"DANGER-OUTLINE":case"WARNING-OUTLINE":case"LIGHT-OUTLINE":case"INFO-OUTLINE":return kind.replace("-OUTLINE","");case"NONE":return}}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/article-footer/article-footer.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>ArticleFooterComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var article_footer_componentngResource=__webpack_require__("./src/design/molecules/article-footer/article-footer.component.scss?ngResource"),article_footer_componentngResource_default=__webpack_require__.n(article_footer_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),confirmation_toggle_button_component=__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts");let ArticleFooterComponent=class ArticleFooterComponent{constructor(){this.buttonLabel=core.input.required(),this.buttonLink=(0,core.input)(void 0),this.deleteMessage=(0,core.input)("Delete this entry?"),this.showDelete=(0,core.input)(!0),this.buttonClick=new core.EventEmitter,this.delete=new core.EventEmitter}static{this.propDecorators={buttonLabel:[{type:core.Input,args:[{isSignal:!0,alias:"buttonLabel",required:!0,transform:void 0}]}],buttonLink:[{type:core.Input,args:[{isSignal:!0,alias:"buttonLink",required:!1,transform:void 0}]}],deleteMessage:[{type:core.Input,args:[{isSignal:!0,alias:"deleteMessage",required:!1,transform:void 0}]}],showDelete:[{type:core.Input,args:[{isSignal:!0,alias:"showDelete",required:!1,transform:void 0}]}],buttonClick:[{type:core.Output}],delete:[{type:core.Output}]}}};ArticleFooterComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-article-footer",template:'\n\n\n \n \n \n \n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[button_component.Q,router.Wk,common.NgTemplateOutlet,confirmation_toggle_button_component.T],styles:[article_footer_componentngResource_default()]})],ArticleFooterComponent)},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>ConfirmationToggleButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var confirmation_toggle_button_componentngResource=__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.scss?ngResource"),confirmation_toggle_button_componentngResource_default=__webpack_require__.n(confirmation_toggle_button_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),flip=__webpack_require__("./src/design/animations/flip.ts"),_models_button=__webpack_require__("./src/design/atoms/_models/button.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ConfirmationToggleButtonComponent=class ConfirmationToggleButtonComponent{constructor(){this.confirmationQuestion=core.input.required(),this.icon=(0,core.input)(),this.text=(0,core.input)(),this.toggleType=(0,core.input)("DANGER-OUTLINE"),this.toggleSize=(0,core.input)("MEDIUM"),this.confirmButtonType=(0,core.computed)((()=>(0,_models_button.C9)(this.toggleType())??"DANGER")),this.cancelButtonType=(0,core.input)("SECONDARY"),this.confirm=new core.EventEmitter,this.isActive=(0,core.signal)(!1)}toggle(){this.isActive.set(!this.isActive())}emitConfirmation(){this.isActive&&(this.confirm.emit(),this.toggle())}static{this.propDecorators={confirmationQuestion:[{type:core.Input,args:[{isSignal:!0,alias:"confirmationQuestion",required:!0,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],toggleType:[{type:core.Input,args:[{isSignal:!0,alias:"toggleType",required:!1,transform:void 0}]}],toggleSize:[{type:core.Input,args:[{isSignal:!0,alias:"toggleSize",required:!1,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],confirm:[{type:core.Output}]}}};ConfirmationToggleButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-confirmation-toggle-button",template:'\n \n
\n\n\n \n \n\n\n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,common.NgTemplateOutlet],animations:[flip.S],styles:[confirmation_toggle_button_componentngResource_default()]})],ConfirmationToggleButtonComponent)},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/article-footer/article-footer.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"app-confirmation-toggle-button {\n --align: end;\n}\n\n.footer {\n display: flex;\n justify-content: space-between;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --align: start;\n --confirmation-bg-color: var(--bs-card-bg) display: flex;\n justify-content: var(--align);\n}\n\n.confirmation-toggle {\n display: inline-block;\n width: fit-content;\n}\n\n.confirmation {\n border: 1px solid;\n display: flex;\n align-items: flex-end;\n align-content: center;\n border-radius: var(--bs-border-radius);\n padding: var(--spacer-2) var(--spacer-3);\n justify-content: space-between;\n background-color: var(--confirmation-bg-color);\n width: fit-content;\n flex-direction: column;\n}\n@media (min-width: 992px) {\n .confirmation {\n flex-direction: row;\n align-items: center;\n }\n}\n.confirmation--DANGER {\n border-color: var(--bs-danger);\n}\n.confirmation--WARNING {\n border-color: var(--bs-warning);\n}\n.confirmation--PRIMARY {\n border-color: var(--bs-primary);\n}\n.confirmation--SECONDARY {\n border-color: var(--bs-secondary);\n}\n.confirmation--TERTIARY {\n border-color: var(--bs-dark);\n}\n.confirmation__question {\n flex: 1;\n}\n@media (min-width: 992px) {\n .confirmation__question {\n margin-right: var(--spacer-2);\n }\n}\n.confirmation__buttons {\n display: flex;\n justify-content: space-between;\n width: 100%;\n}\n@media (min-width: 992px) {\n .confirmation__buttons {\n width: unset;\n }\n .confirmation__buttons :nth-child(1) {\n margin-right: var(--spacer-2);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/7857.61d51647.iframe.bundle.js b/7857.61d51647.iframe.bundle.js
new file mode 100644
index 000000000..2f7c0c85f
--- /dev/null
+++ b/7857.61d51647.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7857],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/organisms/image-carousel-card/image-carousel-card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{r:()=>ImageCarouselCardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_carousel_card_componentngResource=__webpack_require__("./src/design/organisms/image-carousel-card/image-carousel-card.component.scss?ngResource"),image_carousel_card_componentngResource_default=__webpack_require__.n(image_carousel_card_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),image_carousel_component=__webpack_require__("./src/design/organisms/image-carousel/image-carousel.component.ts");let ImageCarouselCardComponent=class ImageCarouselCardComponent{constructor(formlyService){this.formlyService=formlyService,this.canUpdate=!1,this.canCreate=!1,this.canDelete=!1,this.createImage=new core.EventEmitter,this.deleteImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.currentImageIndex=0,this.state="DISPLAY",this.userModel={},this.isLoading=!1,this.createFields=[this.formlyService.buildInputConfig({key:"name",label:"Image Title",required:!1,inputKind:"STRING"}),this.formlyService.buildInputConfig({key:"character_article",label:"Character Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"location_article",label:"Location Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"creature_article",label:"Creature Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"organization_article",label:"Organization Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"encounter_article",label:"Encounter Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"item_article",label:"Item Article",hide:!0,inputKind:"NUMBER",required:!1,placeholder:void 0}),this.formlyService.buildFileFieldConfig({label:"Image file",key:"image",fileButtonType:"DARK"})],this.updateFields=this.formlyService.toUpdateForm(this.createFields)}ngOnInit(){this.currentImage=this.images[this.currentImageIndex]}ngOnChanges(){this.currentImage=this.images[this.currentImageIndex]}changeState(event,newState){this.userModel=event??null,this.state=newState}onSlide(slideEvent){this.currentImageIndex=slideEvent.index,this.currentImage=this.images[this.currentImageIndex]}onCancel(){this.changeState(null,"DISPLAY")}onSubmit(event){switch(this.state){case"DELETE":this.deleteImage.emit(this.currentImage);break;case"UPDATE":case"UPDATE_OUTDATED":this.updateImage.emit(this.userModel);break;case"CREATE":this.createImage.emit(this.userModel);break;default:throw`ImageCarouselCard - Submitted form while in state '${this.state}', which is not possible.`}this.userModel={},this.changeState(null,"DISPLAY")}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={images:[{type:core.Input}],serverUrl:[{type:core.Input}],serverModel:[{type:core.Input}],canUpdate:[{type:core.Input}],canCreate:[{type:core.Input}],canDelete:[{type:core.Input}],createImage:[{type:core.Output}],deleteImage:[{type:core.Output}],updateImage:[{type:core.Output}]}}};ImageCarouselCardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-carousel-card",template:'@switch (state) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("DELETE") {\n \n }\n}\n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n',standalone:!0,imports:[image_carousel_component.H,spinner_component.t,icon_component.R,molecules.s2,button_component.Q,common.NgTemplateOutlet],styles:[image_carousel_card_componentngResource_default()]})],ImageCarouselCardComponent)},"./src/design/organisms/image-carousel/image-carousel.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{H:()=>ImageCarouselComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_carousel_componentngResource=__webpack_require__("./src/design/organisms/image-carousel/image-carousel.component.scss?ngResource"),image_carousel_componentngResource_default=__webpack_require__.n(image_carousel_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ImageCarouselComponent=class ImageCarouselComponent{constructor(){this.images=core.input.required(),this.serverUrl=core.input.required(),this.canDelete=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canUpdate=(0,core.input)(!1),this.currentSlideIndex=core.input.required(),this.deleteImage=new core.EventEmitter,this.createImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.slide=new core.EventEmitter,this.slideEnd=new core.EventEmitter}onSlide(event){const slideIndexStr=event.current.split("-").pop();if(null==slideIndexStr)throw`ImageCarousel - Image with id '${event.current}' does not match the expected pattern of 'imageIndex-'!`;const nextSlideIndex=parseInt(slideIndexStr);this.slide.emit({event,index:nextSlideIndex})}onSlideEnd(event){this.slide.emit({event,index:this.currentSlideIndex()})}onImageCreate(){this.canCreate()&&this.createImage.emit()}onImageUpdate(){if(!this.canUpdate())return;const image=this.images()[this.currentSlideIndex()];this.updateImage.emit(image)}onImageDelete(){if(!this.canDelete())return;const image=this.images()[this.currentSlideIndex()];this.deleteImage.emit(image)}static{this.propDecorators={images:[{type:core.Input,args:[{isSignal:!0,alias:"images",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],currentSlideIndex:[{type:core.Input,args:[{isSignal:!0,alias:"currentSlideIndex",required:!0,transform:void 0}]}],deleteImage:[{type:core.Output}],createImage:[{type:core.Output}],updateImage:[{type:core.Output}],slide:[{type:core.Output}],slideEnd:[{type:core.Output}]}}};ImageCarouselComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-carousel",template:'@if (images() && images().length > 0) {\n 1"\n [showNavigationIndicators]="images().length > 1"\n [activeId]="\'imageIndex-\' + currentSlideIndex()"\n (slide)="onSlide($event)"\n (slid)="onSlideEnd($event)"\n >\n @for (image of images(); track image.pk) {\n \n \n
\n
\n \n }\n \n} @else {\n \n}\n\n\x3c!-- Image Edit/Delete/Create Buttons --\x3e\n\n \x3c!-- Create Image Button --\x3e\n @if (canCreate()) {\n \n }\n\n \x3c!-- Update Image button --\x3e\n @if (images().length > 0 && canUpdate()) {\n \n }\n\n \x3c!-- Delete Image Button --\x3e\n @if (images().length > 1 && canDelete()) {\n \n }\n
\n\n\n \n \n \n
\n
\n
This article doesn\'t have an image yet
\n
\n
\n \n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[ng_bootstrap.wA,button_component.Q,common.NgTemplateOutlet],styles:[image_carousel_componentngResource_default()]})],ImageCarouselComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/image-carousel-card/image-carousel-card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".form-card {\n padding: var(--spacer-4);\n margin: var(--spacer-2);\n}\n.form-card__heading {\n text-align: center;\n}\n.form-card__image-container {\n display: flex;\n justify-content: center;\n flex-direction: row;\n width: 100%;\n}\n.form-card__image {\n max-height: 20rem;\n max-width: 100%;\n object-fit: contain;\n}\n.form-card__form {\n margin-top: var(--spacer-3);\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n.confirmation {\n display: flex;\n flex-direction: column;\n}\n.confirmation__question {\n text-align: center;\n}\n.confirmation__button-container {\n margin-top: var(--spacer-2);\n display: flex;\n flex-direction: row;\n justify-content: center;\n}\n.confirmation__button {\n margin-left: var(--spacer-2);\n margin-right: var(--spacer-2);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/image-carousel/image-carousel.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".image-container img {\n object-fit: contain;\n width: 100%;\n max-height: 10rem;\n}\n@media (min-width: 768px) {\n .image-container img {\n max-height: 18rem;\n }\n}\n\n.image-caption {\n position: absolute;\n background: var(--wiki-bg-transparent);\n width: 50%;\n text-align: center;\n bottom: 20%;\n margin-left: auto;\n margin-right: auto;\n left: 0;\n right: 0;\n}\n.image-caption p {\n margin: 0;\n}\n\n.edit-image-buttons {\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: center;\n transition: opacity 0.2s;\n margin-top: var(--spacer-2);\n}\n\n.defaultImage {\n position: relative;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/7857.96884d62.iframe.bundle.js b/7857.96884d62.iframe.bundle.js
deleted file mode 100644
index 55117560e..000000000
--- a/7857.96884d62.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7857],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/organisms/image-carousel-card/image-carousel-card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{r:()=>ImageCarouselCardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_carousel_card_componentngResource=__webpack_require__("./src/design/organisms/image-carousel-card/image-carousel-card.component.scss?ngResource"),image_carousel_card_componentngResource_default=__webpack_require__.n(image_carousel_card_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),image_carousel_component=__webpack_require__("./src/design/organisms/image-carousel/image-carousel.component.ts");let ImageCarouselCardComponent=class ImageCarouselCardComponent{constructor(formlyService){this.formlyService=formlyService,this.canUpdate=!1,this.canCreate=!1,this.canDelete=!1,this.createImage=new core.EventEmitter,this.deleteImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.currentImageIndex=0,this.state="DISPLAY",this.userModel={},this.isLoading=!1,this.createFields=[this.formlyService.buildInputConfig({key:"name",label:"Image Title",required:!1,inputKind:"STRING"}),this.formlyService.buildInputConfig({key:"character_article",label:"Character Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"location_article",label:"Location Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"creature_article",label:"Creature Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"organization_article",label:"Organization Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"encounter_article",label:"Encounter Article",hide:!0,inputKind:"NUMBER",required:!1}),this.formlyService.buildInputConfig({key:"item_article",label:"Item Article",hide:!0,inputKind:"NUMBER",required:!1,placeholder:void 0}),this.formlyService.buildFileFieldConfig({label:"Image file",key:"image",fileButtonType:"DARK"})],this.updateFields=this.formlyService.toUpdateForm(this.createFields)}ngOnInit(){this.currentImage=this.images[this.currentImageIndex]}ngOnChanges(){this.currentImage=this.images[this.currentImageIndex]}changeState(event,newState){this.userModel=event??null,this.state=newState}onSlide(slideEvent){this.currentImageIndex=slideEvent.index,this.currentImage=this.images[this.currentImageIndex]}onCancel(){this.changeState(null,"DISPLAY")}onSubmit(event){switch(this.state){case"DELETE":this.deleteImage.emit(this.currentImage);break;case"UPDATE":case"UPDATE_OUTDATED":this.updateImage.emit(this.userModel);break;case"CREATE":this.createImage.emit(this.userModel);break;default:throw`ImageCarouselCard - Submitted form while in state '${this.state}', which is not possible.`}this.userModel={},this.changeState(null,"DISPLAY")}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={images:[{type:core.Input}],serverUrl:[{type:core.Input}],serverModel:[{type:core.Input}],canUpdate:[{type:core.Input}],canCreate:[{type:core.Input}],canDelete:[{type:core.Input}],createImage:[{type:core.Output}],deleteImage:[{type:core.Output}],updateImage:[{type:core.Output}]}}};ImageCarouselCardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-carousel-card",template:'@switch (state) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("DELETE") {\n \n }\n}\n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n',standalone:!0,imports:[image_carousel_component.H,spinner_component.t,icon_component.R,molecules.s2,button_component.Q,common.NgTemplateOutlet],styles:[image_carousel_card_componentngResource_default()]})],ImageCarouselCardComponent)},"./src/design/organisms/image-carousel/image-carousel.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{H:()=>ImageCarouselComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_carousel_componentngResource=__webpack_require__("./src/design/organisms/image-carousel/image-carousel.component.scss?ngResource"),image_carousel_componentngResource_default=__webpack_require__.n(image_carousel_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ImageCarouselComponent=class ImageCarouselComponent{constructor(){this.images=core.input.required(),this.serverUrl=core.input.required(),this.canDelete=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canUpdate=(0,core.input)(!1),this.currentSlideIndex=core.input.required(),this.deleteImage=new core.EventEmitter,this.createImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.slide=new core.EventEmitter,this.slideEnd=new core.EventEmitter}onSlide(event){const slideIndexStr=event.current.split("-").pop();if(null==slideIndexStr)throw`ImageCarousel - Image with id '${event.current}' does not match the expected pattern of 'imageIndex-'!`;const nextSlideIndex=parseInt(slideIndexStr);this.slide.emit({event,index:nextSlideIndex})}onSlideEnd(event){this.slide.emit({event,index:this.currentSlideIndex()})}onImageCreate(){this.canCreate()&&this.createImage.emit()}onImageUpdate(){if(!this.canUpdate())return;const image=this.images()[this.currentSlideIndex()];this.updateImage.emit(image)}onImageDelete(){if(!this.canDelete())return;const image=this.images()[this.currentSlideIndex()];this.deleteImage.emit(image)}static{this.propDecorators={images:[{type:core.Input,args:[{isSignal:!0,alias:"images",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],currentSlideIndex:[{type:core.Input,args:[{isSignal:!0,alias:"currentSlideIndex",required:!0,transform:void 0}]}],deleteImage:[{type:core.Output}],createImage:[{type:core.Output}],updateImage:[{type:core.Output}],slide:[{type:core.Output}],slideEnd:[{type:core.Output}]}}};ImageCarouselComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-carousel",template:'@if (images() && images().length > 0) {\n 1"\n [showNavigationIndicators]="images().length > 1"\n [activeId]="\'imageIndex-\' + currentSlideIndex()"\n (slide)="onSlide($event)"\n (slid)="onSlideEnd($event)"\n >\n @for (image of images(); track image.pk) {\n \n \n
\n
\n \n }\n \n} @else {\n \n}\n\n\x3c!-- Image Edit/Delete/Create Buttons --\x3e\n\n \x3c!-- Create Image Button --\x3e\n @if (canCreate()) {\n \n }\n\n \x3c!-- Update Image button --\x3e\n @if (images().length > 0 && canUpdate()) {\n \n }\n\n \x3c!-- Delete Image Button --\x3e\n @if (images().length > 1 && canDelete()) {\n \n }\n
\n\n\n \n \n \n
\n
\n
This article doesn\'t have an image yet
\n
\n
\n \n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[ng_bootstrap.wA,button_component.Q,common.NgTemplateOutlet],styles:[image_carousel_componentngResource_default()]})],ImageCarouselComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/image-carousel-card/image-carousel-card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".form-card {\n padding: var(--spacer-4);\n margin: var(--spacer-2);\n}\n.form-card__heading {\n text-align: center;\n}\n.form-card__image-container {\n display: flex;\n justify-content: center;\n flex-direction: row;\n width: 100%;\n}\n.form-card__image {\n max-height: 20rem;\n max-width: 100%;\n object-fit: contain;\n}\n.form-card__form {\n margin-top: var(--spacer-3);\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n.confirmation {\n display: flex;\n flex-direction: column;\n}\n.confirmation__question {\n text-align: center;\n}\n.confirmation__button-container {\n margin-top: var(--spacer-2);\n display: flex;\n flex-direction: row;\n justify-content: center;\n}\n.confirmation__button {\n margin-left: var(--spacer-2);\n margin-right: var(--spacer-2);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/image-carousel/image-carousel.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".image-container img {\n object-fit: contain;\n width: 100%;\n max-height: 10rem;\n}\n@media (min-width: 768px) {\n .image-container img {\n max-height: 18rem;\n }\n}\n\n.image-caption {\n position: absolute;\n background: var(--wiki-bg-transparent);\n width: 50%;\n text-align: center;\n bottom: 20%;\n margin-left: auto;\n margin-right: auto;\n left: 0;\n right: 0;\n}\n.image-caption p {\n margin: 0;\n}\n\n.edit-image-buttons {\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: center;\n transition: opacity 0.2s;\n margin-top: var(--spacer-2);\n}\n\n.defaultImage {\n position: relative;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/app/_models/formly.ts b/app/_models/formly.ts
index ff5e0cdf3..cd9db6cbb 100644
--- a/app/_models/formly.ts
+++ b/app/_models/formly.ts
@@ -10,8 +10,8 @@ export interface FormlyPasswordInterface {
disabled?: boolean;
}
-export interface FormlyInterface {
- key: string;
+export interface FormlyInterface {
+ key: Exclude;
label?: string;
required?: boolean;
hide?: boolean;
@@ -23,13 +23,14 @@ export interface FormlyInterface {
showWrapperLabel?: boolean;
}
-export interface FormlyOverviewSelectConfig extends FormlyInterface {
- labelProp: keyof T;
- valueProp?: keyof T;
- sortProp?: keyof T;
+export interface FormlyOverviewSelectConfig
+ extends FormlyInterface {
+ labelProp: keyof Option;
+ valueProp?: keyof Option;
+ sortProp?: keyof Option;
sortDirection?: 'asc' | 'desc';
campaign?: string;
- options$: Observable;
+ options$: Observable;
}
export type DisabledFunction = (
@@ -39,16 +40,16 @@ export type DisabledFunction = (
control: AbstractControl,
) => Observable;
-export interface FormlyOverviewDisabledSelectConfig
- extends FormlyOverviewSelectConfig {
- disabledExpression: DisabledFunction;
+export interface FormlyOverviewDisabledSelectConfig
+ extends FormlyOverviewSelectConfig {
+ disabledExpression: DisabledFunction;
tooltipMessage: string;
warningMessage: string;
}
-export type InputKind = 'NUMBER' | 'STRING' | 'NAME';
+export type InputKind = 'NUMBER' | 'STRING' | 'NAME' | 'NUMBER_FRACTION';
-export interface FormlyInputConfig extends FormlyInterface {
+export interface FormlyInputConfig extends FormlyInterface {
placeholder?: string;
maxLength?: number;
minLength?: number;
@@ -58,7 +59,7 @@ export interface FormlyInputConfig extends FormlyInterface {
export type FileFieldKind = 'IMAGE' | 'OTHER';
-export interface FormlyFileConfig extends FormlyInterface {
+export interface FormlyFileConfig extends FormlyInterface {
fileButtonType?: ElementKind;
fileFieldKind?: FileFieldKind;
}
@@ -68,21 +69,21 @@ export interface StaticOption {
value: String | Number;
}
-export interface FormlyCustomStringSelectConfig extends FormlyInterface {
+export interface FormlyCustomStringSelectConfig extends FormlyInterface {
options: string[];
}
-export interface FormlyCustomSelectConfig extends FormlyInterface {
+export interface FormlyCustomSelectConfig extends FormlyInterface {
options: StaticOption[];
}
-export interface FormlyCheckboxConfig extends FormlyInterface {
+export interface FormlyCheckboxConfig extends FormlyInterface {
defaultValue: boolean;
}
-export interface FormlyDatepickerConfig extends FormlyInterface {}
+export interface FormlyDatepickerConfig extends FormlyInterface {}
-export interface FormlyCustomSessionSelect extends FormlyInterface {}
+export interface FormlyCustomSessionSelect extends FormlyInterface {}
export type LoadAutocompleteOptions = (
searchTerm: string,
@@ -97,5 +98,5 @@ export type CustomAutocompleteProps = {
loadOptions: LoadAutocompleteOptions;
initialValue$?: Observable;
};
-export type FormlyAutocompleteConfig = FormlyInterface &
- CustomAutocompleteProps;
+export type FormlyAutocompleteConfig = FormlyInterface &
+ CustomAutocompleteProps;
diff --git a/app/_modules/formly_constants.ts b/app/_modules/formly_constants.ts
index bbc7d3fa2..1531ebd75 100644
--- a/app/_modules/formly_constants.ts
+++ b/app/_modules/formly_constants.ts
@@ -16,6 +16,8 @@ import {
integerValidator,
invalidTimeMessage,
notIntegerMessage,
+ notNumberMesage,
+ numberValidator,
requiredIconMessage,
requiredIconValidator,
requiredMessage,
@@ -53,6 +55,7 @@ export const FORMLY_CONFIG: ConfigOption = {
hasSpecialCharactersMessage,
fieldsDontMatchMessage,
sessionAlreadyHasAuthor,
+ notNumberMesage,
],
validators: [
timeValidator,
@@ -63,6 +66,7 @@ export const FORMLY_CONFIG: ConfigOption = {
integerValidator,
specialCharacterValidator,
fieldMatchValidator,
+ numberValidator,
],
};
diff --git a/app/_services/formly/formly-service.service.ts b/app/_services/formly/formly-service.service.ts
index 95b7373df..ab4b67ddb 100644
--- a/app/_services/formly/formly-service.service.ts
+++ b/app/_services/formly/formly-service.service.ts
@@ -24,8 +24,8 @@ import { capitalize } from 'src/utils/string';
providedIn: 'root',
})
export class FormlyService {
- buildOverviewSelectConfig(
- config: FormlyOverviewSelectConfig,
+ buildOverviewSelectConfig(
+ config: FormlyOverviewSelectConfig,
): FormlyFieldConfig {
const isRequiredField = config.required ?? true;
@@ -43,7 +43,7 @@ export class FormlyService {
wrappers: config.wrappers,
hideExpression: config.hide,
props: {
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
labelProp: config.labelProp,
valueProp: config.valueProp ?? 'pk',
options: sortedOptions$,
@@ -56,8 +56,8 @@ export class FormlyService {
};
}
- buildDisableSelectConfig(
- config: FormlyOverviewDisabledSelectConfig,
+ buildDisableSelectConfig(
+ config: FormlyOverviewDisabledSelectConfig,
): FormlyFieldConfig {
const isRequiredField = config.required ?? true;
@@ -74,7 +74,7 @@ export class FormlyService {
wrappers: config.wrappers,
hideExpression: config.hide ?? false,
props: {
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
labelProp: config.labelProp,
valueProp: config.valueProp ?? 'pk',
options: sortedOptions$,
@@ -92,7 +92,9 @@ export class FormlyService {
} satisfies FormlyFieldConfig;
}
- buildStaticSelectConfig(config: FormlyStaticSelectConfig): FormlyFieldConfig {
+ buildStaticSelectConfig(
+ config: FormlyStaticSelectConfig,
+ ): FormlyFieldConfig {
const validators = this.getValidators(config);
return {
@@ -102,7 +104,7 @@ export class FormlyService {
wrappers: config.wrappers,
hideExpression: config.hide ?? false,
props: {
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
options: config.options,
required: config.required ?? true,
disabled: config.disabled,
@@ -113,8 +115,8 @@ export class FormlyService {
};
}
- buildStaticStringSelectConfig(
- partialConfig: FormlyStaticStringSelectConfig,
+ buildStaticStringSelectConfig(
+ partialConfig: FormlyStaticStringSelectConfig,
): FormlyFieldConfig {
const optionStrings: string[] = partialConfig.options;
@@ -122,7 +124,7 @@ export class FormlyService {
return { label: str, value: str };
});
- const config: FormlyStaticSelectConfig = {
+ const config: FormlyStaticSelectConfig = {
...partialConfig,
options,
};
@@ -130,14 +132,19 @@ export class FormlyService {
return this.buildStaticSelectConfig(config);
}
- buildInputConfig(config: FormlyInputConfig): FormlyFieldConfig {
+ buildInputConfig(config: FormlyInputConfig): FormlyFieldConfig {
const validators = this.getValidators(config);
- if (config.inputKind === 'NUMBER') {
- validators.push('notInteger');
- }
- if (config.inputKind === 'NAME') {
- //Why 'hasSpecialCharacters' validation? Names are used in URLs, they mustn't have special characters
- validators.push('hasSpecialCharacters');
+ switch (config.inputKind) {
+ case 'NUMBER':
+ validators.push('notInteger');
+ break;
+ case 'NAME':
+ //Why 'hasSpecialCharacters' validation? Names are used in URLs, they mustn't have special characters
+ validators.push('hasSpecialCharacters');
+ break;
+ case 'NUMBER_FRACTION':
+ validators.push('notNumber');
+ break;
}
let innerInputType: 'string' | 'number';
@@ -159,7 +166,7 @@ export class FormlyService {
props: {
maxLength: config.maxLength,
minLength: config.minLength,
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
type: innerInputType,
required: config.required ?? true,
disabled: !!config.disabled,
@@ -171,7 +178,7 @@ export class FormlyService {
};
}
- buildSinglePasswordConfig(config: FormlyInterface): FormlyFieldConfig {
+ buildSinglePasswordConfig(config: FormlyInterface): FormlyFieldConfig {
const validators = this.getValidators(config);
return {
@@ -239,7 +246,7 @@ export class FormlyService {
};
}
- buildCheckboxConfig(config: FormlyCheckboxConfig): FormlyFieldConfig {
+ buildCheckboxConfig(config: FormlyCheckboxConfig): FormlyFieldConfig {
return {
key: config.key,
type: 'checkbox',
@@ -248,14 +255,16 @@ export class FormlyService {
defaultValue: config.defaultValue,
hideExpression: config.hide,
props: {
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
required: config.required ?? true,
disabled: config.disabled,
},
};
}
- buildDatepickerConfig(config: FormlyDatepickerConfig): FormlyFieldConfig {
+ buildDatepickerConfig(
+ config: FormlyDatepickerConfig,
+ ): FormlyFieldConfig {
const validators = this.getValidators(config);
validators.push('date');
@@ -266,7 +275,7 @@ export class FormlyService {
wrappers: config.wrappers,
hideExpression: config.hide,
props: {
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
required: config.required ?? true,
disabled: config.disabled,
},
@@ -276,7 +285,7 @@ export class FormlyService {
};
}
- buildFileFieldConfig(config: FormlyFileConfig): FormlyFieldConfig {
+ buildFileFieldConfig(config: FormlyFileConfig): FormlyFieldConfig {
const validators = this.getValidators(config);
return {
@@ -288,7 +297,7 @@ export class FormlyService {
props: {
buttonType: config.fileButtonType ?? 'SECONDARY',
fileFieldKind: config.fileFieldKind ?? 'IMAGE',
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
required: config.required ?? true,
disabled: !!config.disabled,
},
@@ -298,7 +307,7 @@ export class FormlyService {
};
}
- buildEditorConfig(config: FormlyInterface): FormlyFieldConfig {
+ buildEditorConfig(config: FormlyInterface): FormlyFieldConfig {
const validators = this.getValidators(config);
return {
@@ -308,7 +317,7 @@ export class FormlyService {
wrappers: config.wrappers,
hideExpression: config.hide,
props: {
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
required: config.required ?? true,
disabled: config.disabled,
},
@@ -318,8 +327,8 @@ export class FormlyService {
};
}
- buildAutocompleteConfig(
- config: FormlyAutocompleteConfig,
+ buildAutocompleteConfig(
+ config: FormlyAutocompleteConfig,
): FormlyFieldConfig {
const validators = this.getValidators(config);
@@ -329,7 +338,7 @@ export class FormlyService {
className: config.className,
wrappers: [...(config.wrappers ?? []), 'form-field'],
props: {
- label: config.label ?? capitalize(config.key),
+ label: config.label ?? capitalize(`${config.key}`),
required: config.required ?? true,
disabled: config.disabled,
additionalProperties: {
@@ -338,7 +347,7 @@ export class FormlyService {
optionKeyProp: config.optionKeyProp,
loadOptions: config.loadOptions,
initialValue$: config.initialValue$,
- } satisfies CustomAutocompleteProps,
+ } satisfies CustomAutocompleteProps,
},
validators: {
validation: validators,
@@ -361,7 +370,7 @@ export class FormlyService {
});
}
- private getValidators(config: FormlyInterface) {
+ private getValidators(config: FormlyInterface) {
const validators = config.validators ?? [];
if (config.required) {
validators.push('required');
@@ -370,9 +379,9 @@ export class FormlyService {
return validators;
}
- private addEmptyOption(
+ private addEmptyOption(
list: Observable | any[],
- config: FormlyOverviewSelectConfig,
+ config: FormlyOverviewSelectConfig,
): Observable {
if (Array.isArray(list)) {
return of([this.createEmptyOption(config), ...list]);
@@ -383,7 +392,9 @@ export class FormlyService {
}
}
- private createEmptyOption(config: FormlyOverviewSelectConfig) {
+ private createEmptyOption(
+ config: FormlyOverviewSelectConfig,
+ ) {
const emptyOption: any = {};
emptyOption[config.labelProp] =
FormlySelectDisableFieldComponent.EMPTY_OPTION_LABEL;
@@ -393,10 +404,10 @@ export class FormlyService {
return emptyOption;
}
- private sortOptions(
- list$: Observable,
- config: FormlyOverviewSelectConfig,
- ): Observable {
+ private sortOptions(
+ list$: Observable,
+ config: FormlyOverviewSelectConfig,
+ ): Observable {
const { sortProp, sortDirection } = config;
if (!sortProp) return list$;
diff --git a/app/_services/formly/validators.ts b/app/_services/formly/validators.ts
index 59203da12..f5abc4495 100644
--- a/app/_services/formly/validators.ts
+++ b/app/_services/formly/validators.ts
@@ -39,6 +39,10 @@ export const notIntegerMessage = {
message:
'Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this.',
};
+export const notNumberMesage = {
+ name: 'notNumber',
+ message: 'Your input is not a number.',
+};
export const hasSpecialCharactersMessage = {
name: 'hasSpecialCharacters',
message:
@@ -116,6 +120,18 @@ export const integerValidator: ValidatorOption = {
validation: isIntegerValidation,
};
+function isNumberValidation(control: AbstractControl): ValidationErrors | null {
+ const isNumberType = typeof control.value === 'number';
+ const isNumberString =
+ typeof control.value === 'string' && !isNaN(control.value as any);
+ const isNumber = isNumberType || isNumberString;
+ return isNumber ? null : { notNumber: !isNumber };
+}
+export const numberValidator: ValidatorOption = {
+ name: 'notNumber',
+ validation: isNumberValidation,
+};
+
function hasNoSpecialCharactersValidation(
control: AbstractControl,
): ValidationErrors | null {
diff --git a/app/campaign/components/graph-help-modal/graph-help-modal.component.html b/app/campaign/components/graph-help-modal/graph-help-modal.component.html
new file mode 100644
index 000000000..f8f9d614a
--- /dev/null
+++ b/app/campaign/components/graph-help-modal/graph-help-modal.component.html
@@ -0,0 +1,55 @@
+
+ Help
+
+
+
+
+
+
+
+
Possible Graph Interactions:
+
+
+
+
+
Kinds of Links:
+
+ @for (rule of infoRules; track $index) {
+
+
+ {{ rule.nodeKind1 }}
+
+ {{ rule.nodeKind2 }}
+
+
+ {{ rule.description }}
+
+
+ }
+
+
diff --git a/app/campaign/components/graph-help-modal/graph-help-modal.component.scss b/app/campaign/components/graph-help-modal/graph-help-modal.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/campaign/components/graph-help-modal/graph-help-modal.component.ts b/app/campaign/components/graph-help-modal/graph-help-modal.component.ts
new file mode 100644
index 000000000..b71025cf8
--- /dev/null
+++ b/app/campaign/components/graph-help-modal/graph-help-modal.component.ts
@@ -0,0 +1,99 @@
+import {
+ ChangeDetectionStrategy,
+ Component,
+ inject,
+ TemplateRef,
+} from '@angular/core';
+import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
+import { IconComponent } from '../../../../design/atoms/icon/icon.component';
+import { SeparatorComponent } from '../../../../design/atoms/separator/separator.component';
+
+const GRAPH_INFO_RULES = [
+ {
+ nodeKind1: 'Organization',
+ nodeKind2: 'Location',
+ description: "The location contains that organization's headquarter",
+ },
+ {
+ nodeKind1: 'Organization',
+ nodeKind2: 'Character',
+ description: 'The character is a member of that organization',
+ },
+ {
+ nodeKind1: 'Location',
+ nodeKind2: 'Location',
+ description: 'The location is part of the other location',
+ },
+ {
+ nodeKind1: 'Location',
+ nodeKind2: 'Character',
+ description: 'The character is in that location',
+ },
+ {
+ nodeKind1: 'Character',
+ nodeKind2: 'Item',
+ description: 'The character owns that item',
+ },
+ {
+ nodeKind1: 'Organization',
+ nodeKind2: 'Organization',
+ description:
+ 'The organization is a smaller group within the other organization',
+ },
+ {
+ nodeKind1: 'Any',
+ nodeKind2: 'Any',
+ description: 'A custom relationship between 2 articles',
+ },
+];
+
+const GRAPH_INTERACTIONS = [
+ {
+ event: 'Hovering a node',
+ description: 'Node changes color',
+ },
+ {
+ event: 'Left-click node',
+ description: 'Node gets selected for creating a custom connection',
+ },
+ {
+ event: 'Right-click node',
+ description: 'Open a context menu with information about the node',
+ },
+ {
+ event: 'Hovering a link (clicking a link on mobile)',
+ description: 'Link expand and shows label',
+ },
+ {
+ event: 'Right-click link',
+ description:
+ 'Open a context menu with possible actions for the link (some may be disabled for specific kinds of links)',
+ },
+ {
+ event: 'Click on graph background',
+ description:
+ 'Reset node selection, close context menus and reset any links that might have changed',
+ },
+];
+
+@Component({
+ selector: 'app-graph-help-modal',
+ standalone: true,
+ imports: [IconComponent, SeparatorComponent],
+ templateUrl: './graph-help-modal.component.html',
+ styleUrl: './graph-help-modal.component.scss',
+ changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class GraphHelpModalComponent {
+ modalService = inject(NgbModal);
+
+ infoRules = GRAPH_INFO_RULES;
+ infoInteractions = GRAPH_INTERACTIONS;
+
+ openModal(content: TemplateRef) {
+ this.modalService.open(content, {
+ ariaLabelledBy: 'modal-title',
+ modalDialogClass: 'border border-info border-3 rounded mymodal',
+ });
+ }
+}
diff --git a/app/campaign/components/graph-settings-modal/graph-settings-modal.component.html b/app/campaign/components/graph-settings-modal/graph-settings-modal.component.html
new file mode 100644
index 000000000..b7ef0ed8a
--- /dev/null
+++ b/app/campaign/components/graph-settings-modal/graph-settings-modal.component.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
diff --git a/app/campaign/components/graph-settings-modal/graph-settings-modal.component.scss b/app/campaign/components/graph-settings-modal/graph-settings-modal.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/campaign/components/graph-settings-modal/graph-settings-modal.component.ts b/app/campaign/components/graph-settings-modal/graph-settings-modal.component.ts
new file mode 100644
index 000000000..70c913b37
--- /dev/null
+++ b/app/campaign/components/graph-settings-modal/graph-settings-modal.component.ts
@@ -0,0 +1,77 @@
+import {
+ ChangeDetectionStrategy,
+ Component,
+ computed,
+ inject,
+ input,
+ output,
+ TemplateRef,
+} from '@angular/core';
+import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
+import { FormlyFieldConfig } from '@ngx-formly/core';
+import { FormlyService } from 'src/app/_services/formly/formly-service.service';
+import { ButtonComponent } from 'src/design/atoms/button/button.component';
+import { GRAPH_SETTINGS } from 'src/design/organisms/_model/graph';
+import { IconComponent } from '../../../../design/atoms/icon/icon.component';
+import { FormComponent } from '../../../../design/molecules/form/form.component';
+
+@Component({
+ selector: 'app-graph-settings-modal',
+ standalone: true,
+ imports: [ButtonComponent, FormComponent, IconComponent],
+ templateUrl: './graph-settings-modal.component.html',
+ styleUrl: './graph-settings-modal.component.scss',
+ changeDetection: ChangeDetectionStrategy.OnPush,
+})
+export class GraphSettingsModalComponent {
+ modalService = inject(NgbModal);
+ formlyService = inject(FormlyService);
+
+ settings = input(GRAPH_SETTINGS);
+
+ newSettings = output();
+
+ formlyFields = computed(() => [
+ this.formlyService.buildInputConfig({
+ key: 'linkAttractingForce',
+ inputKind: 'NUMBER_FRACTION',
+ label: 'Strength of links pulling nodes together',
+ }),
+ this.formlyService.buildInputConfig({
+ key: 'nodeRepellingForce',
+ inputKind: 'NUMBER_FRACTION',
+ label: 'Strength of nodes repelling each other',
+ }),
+ this.formlyService.buildInputConfig({
+ key: 'xForce',
+ inputKind: 'NUMBER_FRACTION',
+ label: 'Horizontal force',
+ }),
+ this.formlyService.buildInputConfig({
+ key: 'yForce',
+ inputKind: 'NUMBER_FRACTION',
+ label: 'Vertical force',
+ }),
+ ]);
+
+ onSettingsSubmit(model: any) {
+ const newSettings: typeof GRAPH_SETTINGS = {
+ ...model,
+ xForce: parseFloat(model.xForce),
+ yForce: parseFloat(model.yForce),
+ linkAttractingForce: parseFloat(model.linkAttractingForce),
+ nodeRepellingForce: parseFloat(model.nodeRepellingForce),
+ };
+
+ this.newSettings.emit(newSettings);
+
+ this.modalService.dismissAll();
+ }
+
+ openModal(content: TemplateRef) {
+ this.modalService.open(content, {
+ ariaLabelledBy: 'modal-title',
+ modalDialogClass: 'border border-info border-3 rounded mymodal',
+ });
+ }
+}
diff --git a/app/campaign/pages/graph-page/graph-page.component.html b/app/campaign/pages/graph-page/graph-page.component.html
index 5477f814a..e29c26024 100644
--- a/app/campaign/pages/graph-page/graph-page.component.html
+++ b/app/campaign/pages/graph-page/graph-page.component.html
@@ -9,7 +9,7 @@ Wiki Overview
[borderColorVar]="option.color"
[isActive]="option.active"
[isSelectable]="true"
- (entryClick)="toggleSidebarEntry(option, $event)"
+ (entryClick)="toggleCategory(option, $event)"
>
}
@@ -28,17 +28,14 @@ Wiki Overview
-
@@ -136,48 +133,3 @@ Create Connection
-
-
-
-
-
-
Possible Graph Interactions:
-
-
-
Kinds of Links:
-
- @for (rule of infoRules; track $index) {
-
-
- {{ rule.nodeKind1 }}
-
- {{ rule.nodeKind2 }}
-
-
- {{ rule.description }}
-
-
- }
-
-
diff --git a/app/campaign/pages/graph-page/graph-page.component.ts b/app/campaign/pages/graph-page/graph-page.component.ts
index a29551840..7e070aaa0 100644
--- a/app/campaign/pages/graph-page/graph-page.component.ts
+++ b/app/campaign/pages/graph-page/graph-page.component.ts
@@ -6,14 +6,13 @@ import {
DestroyRef,
inject,
signal,
- TemplateRef,
} from '@angular/core';
import {
takeUntilDestroyed,
toObservable,
toSignal,
} from '@angular/core/rxjs-interop';
-import { NgbModal, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
+import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
import { FormlyFieldConfig } from '@ngx-formly/core';
import {
combineLatestWith,
@@ -33,12 +32,16 @@ import {
DEFAULT_SEARCH_PREFERENCES,
SidebarOption,
} from 'src/design/molecules';
+import {
+ CategoryLabel,
+ GRAPH_CATEGORIES,
+} from 'src/design/molecules/_models/search-preferences';
+import { GRAPH_SETTINGS } from 'src/design/organisms/_model/graph';
import { GraphMenuService } from 'src/design/organisms/graph/graph-menu.service';
import { GraphService } from 'src/design/organisms/graph/graph.service';
import { filterNil } from 'src/utils/rxjs-operators';
import { capitalize } from 'src/utils/string';
import { CardComponent } from '../../../../design/atoms/card/card.component';
-import { IconComponent } from '../../../../design/atoms/icon/icon.component';
import { SelectableEntryComponent } from '../../../../design/atoms/selectable-entry/selectable-entry.component';
import { ArticleFooterComponent } from '../../../../design/molecules/article-footer/article-footer.component';
import { CollapsiblePanelComponent } from '../../../../design/molecules/collapsible-panel/collapsible-panel.component';
@@ -47,76 +50,10 @@ import { FormComponent } from '../../../../design/molecules/form/form.component'
import { SearchFieldComponent } from '../../../../design/molecules/search-field/search-field.component';
import { GraphComponent } from '../../../../design/organisms/graph/graph.component';
import { PageContainerComponent } from '../../../../design/organisms/page-container/page-container.component';
+import { GraphHelpModalComponent } from '../../components/graph-help-modal/graph-help-modal.component';
+import { GraphSettingsModalComponent } from '../../components/graph-settings-modal/graph-settings-modal.component';
import { GraphPageStore } from './graph-page.store';
-const GRAPH_INFO_RULES = [
- {
- nodeKind1: 'Organization',
- nodeKind2: 'Location',
- description: "The location contains that organization's headquarter",
- },
- {
- nodeKind1: 'Organization',
- nodeKind2: 'Character',
- description: 'The character is a member of that organization',
- },
- {
- nodeKind1: 'Location',
- nodeKind2: 'Location',
- description: 'The location is part of the other location',
- },
- {
- nodeKind1: 'Location',
- nodeKind2: 'Character',
- description: 'The character is in that location',
- },
- {
- nodeKind1: 'Character',
- nodeKind2: 'Item',
- description: 'The character owns that item',
- },
- {
- nodeKind1: 'Organization',
- nodeKind2: 'Organization',
- description:
- 'The organization is a smaller group within the other organization',
- },
- {
- nodeKind1: 'Any',
- nodeKind2: 'Any',
- description: 'A custom relationship between 2 articles',
- },
-];
-
-const GRAPH_INTERACTIONS = [
- {
- event: 'Hovering a node',
- description: 'Node changes color',
- },
- {
- event: 'Left-click node',
- description: 'Node gets selected for creating a custom connection',
- },
- {
- event: 'Right-click node',
- description: 'Open a context menu with information about the node',
- },
- {
- event: 'Hovering a link (clicking a link on mobile)',
- description: 'Link expand and shows label',
- },
- {
- event: 'Right-click link',
- description:
- 'Open a context menu with possible actions for the link (some may be disabled for specific kinds of links)',
- },
- {
- event: 'Click on graph background',
- description:
- 'Reset node selection, close context menus and reset any links that might have changed',
- },
-];
-
@Component({
selector: 'app-graph-page',
standalone: true,
@@ -133,7 +70,8 @@ const GRAPH_INTERACTIONS = [
CollapsiblePanelComponent,
ConfirmationToggleButtonComponent,
SearchFieldComponent,
- IconComponent,
+ GraphHelpModalComponent,
+ GraphSettingsModalComponent,
],
templateUrl: './graph-page.component.html',
styleUrl: './graph-page.component.scss',
@@ -146,7 +84,6 @@ export class GraphPageComponent {
store = inject(GraphPageStore);
routingService = inject(RoutingService);
formlyService = inject(FormlyService);
- modalService = inject(NgbModal);
graphService = inject(GraphService);
graphMenuService = inject(GraphMenuService);
@@ -168,6 +105,7 @@ export class GraphPageComponent {
),
shareReplay(1),
);
+ graphSettings = signal(GRAPH_SETTINGS);
pageState = signal<'DISPLAY' | 'CREATE'>('DISPLAY');
isPanelOpen = signal(false);
@@ -202,15 +140,7 @@ export class GraphPageComponent {
}),
);
- infoRules = GRAPH_INFO_RULES;
- infoInteractions = GRAPH_INTERACTIONS;
-
- private AVAILABLE_NODE_TYPES = new Set([
- 'Character',
- 'Item',
- 'Organization',
- 'Location',
- ]);
+ private AVAILABLE_NODE_TYPES = new Set(GRAPH_CATEGORIES);
private nodeTypeOptions = DEFAULT_SEARCH_PREFERENCES.filter((option) =>
this.AVAILABLE_NODE_TYPES.has(option.label),
);
@@ -232,7 +162,7 @@ export class GraphPageComponent {
.subscribe((linkIdToDelete) => this.onDeleteLink(linkIdToDelete));
}
- toggleSidebarEntry(option: SidebarOption, mode: 'INACTIVE' | 'ACTIVE') {
+ toggleCategory(option: SidebarOption, mode: 'INACTIVE' | 'ACTIVE') {
const newActiveEntries = new Set(this.activeCategories());
switch (mode) {
case 'INACTIVE':
@@ -276,11 +206,9 @@ export class GraphPageComponent {
this.store.deleteConnection(linkId);
}
- openModal(content: TemplateRef) {
- this.modalService.open(content, {
- ariaLabelledBy: 'modal-title',
- modalDialogClass: 'border border-info border-3 rounded mymodal',
- });
+ onSettingsChange(newSettings: typeof GRAPH_SETTINGS) {
+ console.log('New settings: ', newSettings);
+ this.graphSettings.set(newSettings);
}
private filterGraphData(
diff --git a/app/campaign/pages/location-create-update-page/location-create-update-page.component.ts b/app/campaign/pages/location-create-update-page/location-create-update-page.component.ts
index 685455f2d..5ba70a10d 100644
--- a/app/campaign/pages/location-create-update-page/location-create-update-page.component.ts
+++ b/app/campaign/pages/location-create-update-page/location-create-update-page.component.ts
@@ -82,7 +82,10 @@ export class LocationCreateUpdatePageComponent {
formlyFields = computed(() => [
this.formlyService.buildInputConfig({ key: 'name', inputKind: 'NAME' }),
- this.formlyService.buildDisableSelectConfig({
+ this.formlyService.buildDisableSelectConfig<
+ LocationRaw | Location,
+ OverviewItem
+ >({
key: 'parent_location',
label: 'Parent Location',
options$: this.campaignLocations$,
diff --git a/design-atoms-arrow-button-arrow-button-stories.45f5daa8.iframe.bundle.js b/design-atoms-arrow-button-arrow-button-stories.45f5daa8.iframe.bundle.js
deleted file mode 100644
index 15ca1a984..000000000
--- a/design-atoms-arrow-button-arrow-button-stories.45f5daa8.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7130],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/arrow-button/arrow-button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>ArrowButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var arrow_button_componentngResource=__webpack_require__("./src/design/atoms/arrow-button/arrow-button.component.scss?ngResource"),arrow_button_componentngResource_default=__webpack_require__.n(arrow_button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let ArrowButtonComponent=class ArrowButtonComponent{constructor(){this.icon=core.input.required(),this.kind=(0,core.input)("SECONDARY"),this.outline=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.iconName=(0,core.computed)((()=>`arrow-${this.icon()}-long`))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}],kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!1,transform:void 0}]}],outline:[{type:core.Input,args:[{isSignal:!0,alias:"outline",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ArrowButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-arrow-button",template:' \n',standalone:!0,imports:[icon_component.R,button_component.Q],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[arrow_button_componentngResource_default()]})],ArrowButtonComponent)},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/atoms/arrow-button/arrow-button.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Info:()=>Info,Light:()=>Light,Secondary:()=>Secondary,Warning:()=>Warning,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/ArrowButtonComponent",component:__webpack_require__("./src/design/atoms/arrow-button/arrow-button.component.ts").R,args:{kind:"PRIMARY"}},Template=args=>({props:args,template:'\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n '}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={kind:"SECONDARY"};const Dark=Template.bind({});Dark.args={kind:"DARK"};const Warning=Template.bind({});Warning.args={kind:"WARNING"};const Danger=Template.bind({});Danger.args={kind:"DANGER"};const Light=Template.bind({});Light.args={kind:"LIGHT"};const Info=Template.bind({});Info.args={kind:"INFO"};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","Light","Info"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Danger.parameters?.docs?.source}}},Light.parameters={...Light.parameters,docs:{...Light.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Light.parameters?.docs?.source}}},Info.parameters={...Info.parameters,docs:{...Info.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Info.parameters?.docs?.source}}}},"./src/design/atoms/arrow-button/arrow-button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".btn {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2rem;\n padding: var(--spacer-3) var(--spacer-2);\n}\n.btn-disabled {\n cursor: not-allowed;\n}\n.btn-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-arrow-button-arrow-button-stories.be4c9cc2.iframe.bundle.js b/design-atoms-arrow-button-arrow-button-stories.be4c9cc2.iframe.bundle.js
new file mode 100644
index 000000000..4a762863d
--- /dev/null
+++ b/design-atoms-arrow-button-arrow-button-stories.be4c9cc2.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7130],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/arrow-button/arrow-button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>ArrowButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var arrow_button_componentngResource=__webpack_require__("./src/design/atoms/arrow-button/arrow-button.component.scss?ngResource"),arrow_button_componentngResource_default=__webpack_require__.n(arrow_button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let ArrowButtonComponent=class ArrowButtonComponent{constructor(){this.icon=core.input.required(),this.kind=(0,core.input)("SECONDARY"),this.outline=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.iconName=(0,core.computed)((()=>`arrow-${this.icon()}-long`))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}],kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!1,transform:void 0}]}],outline:[{type:core.Input,args:[{isSignal:!0,alias:"outline",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ArrowButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-arrow-button",template:' \n',standalone:!0,imports:[icon_component.R,button_component.Q],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[arrow_button_componentngResource_default()]})],ArrowButtonComponent)},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/atoms/arrow-button/arrow-button.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Info:()=>Info,Light:()=>Light,Secondary:()=>Secondary,Warning:()=>Warning,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/ArrowButtonComponent",component:__webpack_require__("./src/design/atoms/arrow-button/arrow-button.component.ts").R,args:{kind:"PRIMARY"}},Template=args=>({props:args,template:'\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n '}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={kind:"SECONDARY"};const Dark=Template.bind({});Dark.args={kind:"DARK"};const Warning=Template.bind({});Warning.args={kind:"WARNING"};const Danger=Template.bind({});Danger.args={kind:"DANGER"};const Light=Template.bind({});Light.args={kind:"LIGHT"};const Info=Template.bind({});Info.args={kind:"INFO"};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","Light","Info"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Danger.parameters?.docs?.source}}},Light.parameters={...Light.parameters,docs:{...Light.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Light.parameters?.docs?.source}}},Info.parameters={...Info.parameters,docs:{...Info.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n
\n \n
\n \n
\n
\n `\n})',...Info.parameters?.docs?.source}}}},"./src/design/atoms/arrow-button/arrow-button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".btn {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2rem;\n padding: var(--spacer-3) var(--spacer-2);\n}\n.btn-disabled {\n cursor: not-allowed;\n}\n.btn-icon {\n display: flex;\n justify-content: center;\n align-items: center;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-badge-badge-stories.1a012e8e.iframe.bundle.js b/design-atoms-badge-badge-stories.1a012e8e.iframe.bundle.js
new file mode 100644
index 000000000..4bc51efac
--- /dev/null
+++ b/design-atoms-badge-badge-stories.1a012e8e.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2372],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/badge/badge.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>BadgeComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var badge_componentngResource=__webpack_require__("./src/design/atoms/badge/badge.component.scss?ngResource"),badge_componentngResource_default=__webpack_require__.n(badge_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let BadgeComponent=class BadgeComponent{constructor(){this.kind=core.input.required(),this.text=core.input.required(),this.icon=(0,core.input)(),this.clickable=(0,core.input)(!1),this.badgeClick=new core.EventEmitter}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],clickable:[{type:core.Input,args:[{isSignal:!0,alias:"clickable",required:!1,transform:void 0}]}],badgeClick:[{type:core.Output}]}}};BadgeComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-badge",template:"@if (clickable()) {\n \n \n \n} @else {\n \n}\n\n\n \n @let iconVal = icon();\n @if (iconVal) {\n
\n }\n {{ text() }}\n
\n \n",standalone:!0,imports:[common.NgTemplateOutlet,common.NgClass,icon_component.R],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[badge_componentngResource_default()]})],BadgeComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/atoms/badge/badge.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Info:()=>Info,Light:()=>Light,Secondary:()=>Secondary,Warning:()=>Warning,WithIcon:()=>WithIcon,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/BadgeComponent",component:__webpack_require__("./src/design/atoms/badge/badge.component.ts").n,args:{text:"BadgeText",kind:"PRIMARY",icon:void 0}},Template=args=>({props:{...args}}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={kind:"SECONDARY"};const Dark=Template.bind({});Dark.args={kind:"DARK"};const Warning=Template.bind({});Warning.args={kind:"WARNING"};const Danger=Template.bind({});Danger.args={kind:"DANGER"};const Light=Template.bind({});Light.args={kind:"LIGHT"};const Info=Template.bind({});Info.args={kind:"INFO"};const WithIcon=Template.bind({});WithIcon.args={icon:"times"};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","Light","Info","WithIcon"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Danger.parameters?.docs?.source}}},Light.parameters={...Light.parameters,docs:{...Light.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Light.parameters?.docs?.source}}},Info.parameters={...Info.parameters,docs:{...Info.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Info.parameters?.docs?.source}}},WithIcon.parameters={...WithIcon.parameters,docs:{...WithIcon.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...WithIcon.parameters?.docs?.source}}}},"./src/design/atoms/badge/badge.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n border-radius: var(--bs-border-radius);\n}\n\n.badge-button {\n border-radius: var(--bs-border-radius);\n display: flex;\n}\n.badge-button:focus, .badge-button:focus-within, .badge-button:hover {\n outline: var(--focus-outline);\n}\n.badge-button:focus .badge, .badge-button:focus-within .badge, .badge-button:hover .badge {\n color: inherit;\n}\n\n.badge {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.bg-warning,\n.bg-light,\n.bg-info {\n color: var(--bs-black);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-badge-badge-stories.df7286ed.iframe.bundle.js b/design-atoms-badge-badge-stories.df7286ed.iframe.bundle.js
deleted file mode 100644
index abbb7e145..000000000
--- a/design-atoms-badge-badge-stories.df7286ed.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2372],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/badge/badge.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>BadgeComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var badge_componentngResource=__webpack_require__("./src/design/atoms/badge/badge.component.scss?ngResource"),badge_componentngResource_default=__webpack_require__.n(badge_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let BadgeComponent=class BadgeComponent{constructor(){this.kind=core.input.required(),this.text=core.input.required(),this.icon=(0,core.input)(),this.clickable=(0,core.input)(!1),this.badgeClick=new core.EventEmitter}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],clickable:[{type:core.Input,args:[{isSignal:!0,alias:"clickable",required:!1,transform:void 0}]}],badgeClick:[{type:core.Output}]}}};BadgeComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-badge",template:"@if (clickable()) {\n \n \n \n} @else {\n \n}\n\n\n \n @let iconVal = icon();\n @if (iconVal) {\n
\n }\n {{ text() }}\n
\n \n",standalone:!0,imports:[common.NgTemplateOutlet,common.NgClass,icon_component.R],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[badge_componentngResource_default()]})],BadgeComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/atoms/badge/badge.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Info:()=>Info,Light:()=>Light,Secondary:()=>Secondary,Warning:()=>Warning,WithIcon:()=>WithIcon,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/BadgeComponent",component:__webpack_require__("./src/design/atoms/badge/badge.component.ts").n,args:{text:"BadgeText",kind:"PRIMARY",icon:void 0}},Template=args=>({props:{...args}}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={kind:"SECONDARY"};const Dark=Template.bind({});Dark.args={kind:"DARK"};const Warning=Template.bind({});Warning.args={kind:"WARNING"};const Danger=Template.bind({});Danger.args={kind:"DANGER"};const Light=Template.bind({});Light.args={kind:"LIGHT"};const Info=Template.bind({});Info.args={kind:"INFO"};const WithIcon=Template.bind({});WithIcon.args={icon:"times"};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","Light","Info","WithIcon"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Danger.parameters?.docs?.source}}},Light.parameters={...Light.parameters,docs:{...Light.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Light.parameters?.docs?.source}}},Info.parameters={...Info.parameters,docs:{...Info.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...Info.parameters?.docs?.source}}},WithIcon.parameters={...WithIcon.parameters,docs:{...WithIcon.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n }\n})",...WithIcon.parameters?.docs?.source}}}},"./src/design/atoms/badge/badge.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n border-radius: var(--bs-border-radius);\n}\n\n.badge-button {\n border-radius: var(--bs-border-radius);\n display: flex;\n}\n.badge-button:focus, .badge-button:focus-within, .badge-button:hover {\n outline: var(--focus-outline);\n}\n.badge-button:focus .badge, .badge-button:focus-within .badge, .badge-button:hover .badge {\n color: inherit;\n}\n\n.badge {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.bg-warning,\n.bg-light,\n.bg-info {\n color: var(--bs-black);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-button-button-stories.3e629e18.iframe.bundle.js b/design-atoms-button-button-stories.3e629e18.iframe.bundle.js
deleted file mode 100644
index a42d2f5ea..000000000
--- a/design-atoms-button-button-stories.3e629e18.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7770],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/atoms/button/button.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Info:()=>Info,Light:()=>Light,NoIcon:()=>NoIcon,NoText:()=>NoText,Secondary:()=>Secondary,Warning:()=>Warning,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/ButtonComponent",component:__webpack_require__("./src/design/atoms/button/button.component.ts").Q,args:{kind:"PRIMARY",text:"ButtonText",icon:"plus",size:"MEDIUM",isSubmitButton:!1}},Template=args=>({props:args,template:'\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n '}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={kind:"SECONDARY"};const Dark=Template.bind({});Dark.args={kind:"DARK"};const Warning=Template.bind({});Warning.args={kind:"WARNING"};const Danger=Template.bind({});Danger.args={kind:"DANGER"};const Light=Template.bind({});Light.args={kind:"LIGHT"};const Info=Template.bind({});Info.args={kind:"INFO"};const NoText=Template.bind({});NoText.args={text:void 0};const NoIcon=Template.bind({});NoIcon.args={icon:void 0};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","Light","Info","NoText","NoIcon"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Danger.parameters?.docs?.source}}},Light.parameters={...Light.parameters,docs:{...Light.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Light.parameters?.docs?.source}}},Info.parameters={...Info.parameters,docs:{...Info.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Info.parameters?.docs?.source}}},NoText.parameters={...NoText.parameters,docs:{...NoText.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...NoText.parameters?.docs?.source}}},NoIcon.parameters={...NoIcon.parameters,docs:{...NoIcon.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...NoIcon.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-button-button-stories.7bd0a93d.iframe.bundle.js b/design-atoms-button-button-stories.7bd0a93d.iframe.bundle.js
new file mode 100644
index 000000000..331261861
--- /dev/null
+++ b/design-atoms-button-button-stories.7bd0a93d.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7770],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/atoms/button/button.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Info:()=>Info,Light:()=>Light,NoIcon:()=>NoIcon,NoText:()=>NoText,Secondary:()=>Secondary,Warning:()=>Warning,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/ButtonComponent",component:__webpack_require__("./src/design/atoms/button/button.component.ts").Q,args:{kind:"PRIMARY",text:"ButtonText",icon:"plus",size:"MEDIUM",isSubmitButton:!1}},Template=args=>({props:args,template:'\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n '}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={kind:"SECONDARY"};const Dark=Template.bind({});Dark.args={kind:"DARK"};const Warning=Template.bind({});Warning.args={kind:"WARNING"};const Danger=Template.bind({});Danger.args={kind:"DANGER"};const Light=Template.bind({});Light.args={kind:"LIGHT"};const Info=Template.bind({});Info.args={kind:"INFO"};const NoText=Template.bind({});NoText.args={text:void 0};const NoIcon=Template.bind({});NoIcon.args={icon:void 0};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","Light","Info","NoText","NoIcon"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Danger.parameters?.docs?.source}}},Light.parameters={...Light.parameters,docs:{...Light.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Light.parameters?.docs?.source}}},Info.parameters={...Info.parameters,docs:{...Info.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...Info.parameters?.docs?.source}}},NoText.parameters={...NoText.parameters,docs:{...NoText.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...NoText.parameters?.docs?.source}}},NoIcon.parameters={...NoIcon.parameters,docs:{...NoIcon.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: args,\n template: `\n \n
\n Button Size: {{size}}\n \n \n \n \n
\n \n
\n Button Size: SMALL\n \n \n \n \n
\n \n
\n Button Size: LARGE\n \n \n \n \n
\n \n
\n `\n})',...NoIcon.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-icon-icon-stories.0353e936.iframe.bundle.js b/design-atoms-icon-icon-stories.0353e936.iframe.bundle.js
deleted file mode 100644
index 4418de2c6..000000000
--- a/design-atoms-icon-icon-stories.0353e936.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[796],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/atoms/icon/icon.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_models_icon__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/design/atoms/_models/icon.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/IconComponent",component:__webpack_require__("./src/design/atoms/icon/icon.component.ts").R,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[]})]},Default=(args=>({props:{...args,solidIcons:_models_icon__WEBPACK_IMPORTED_MODULE_1__.zN,regularIcons:_models_icon__WEBPACK_IMPORTED_MODULE_1__.eN},template:'\n \n \n {{ regIcon }}\n \n \n \n {{ solIcon }}\n \n '})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: {\n ...args,\n solidIcons: ALL_SOLID_ICONS,\n regularIcons: ALL_REGULAR_ICONS\n },\n template: `\n \n \n {{ regIcon }}\n \n \n \n {{ solIcon }}\n \n `\n})',...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-icon-icon-stories.ac53cf00.iframe.bundle.js b/design-atoms-icon-icon-stories.ac53cf00.iframe.bundle.js
new file mode 100644
index 000000000..c11263913
--- /dev/null
+++ b/design-atoms-icon-icon-stories.ac53cf00.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[796],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/atoms/icon/icon.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_models_icon__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/design/atoms/_models/icon.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/IconComponent",component:__webpack_require__("./src/design/atoms/icon/icon.component.ts").R,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[]})]},Default=(args=>({props:{...args,solidIcons:_models_icon__WEBPACK_IMPORTED_MODULE_1__.zN,regularIcons:_models_icon__WEBPACK_IMPORTED_MODULE_1__.eN},template:'\n \n \n {{ regIcon }}\n \n \n \n {{ solIcon }}\n \n '})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: {\n ...args,\n solidIcons: ALL_SOLID_ICONS,\n regularIcons: ALL_REGULAR_ICONS\n },\n template: `\n \n \n {{ regIcon }}\n \n \n \n {{ solIcon }}\n \n `\n})',...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-info-circle-tooltip-info-circle-tooltip-stories.622c217a.iframe.bundle.js b/design-atoms-info-circle-tooltip-info-circle-tooltip-stories.622c217a.iframe.bundle.js
new file mode 100644
index 000000000..a5e68c9e4
--- /dev/null
+++ b/design-atoms-info-circle-tooltip-info-circle-tooltip-stories.622c217a.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[232],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/InfoCircleTooltipComponent",component:__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts").$,args:{text:"SomeText",tooltip:"Tooltip text beautiful"}},Default=(args=>({props:{...args},template:'\n \n '})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: {\n ...args\n },\n template: `\n \n `\n})',...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-info-circle-tooltip-info-circle-tooltip-stories.dd9e26cb.iframe.bundle.js b/design-atoms-info-circle-tooltip-info-circle-tooltip-stories.dd9e26cb.iframe.bundle.js
deleted file mode 100644
index 9e0e68d00..000000000
--- a/design-atoms-info-circle-tooltip-info-circle-tooltip-stories.dd9e26cb.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[232],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/InfoCircleTooltipComponent",component:__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts").$,args:{text:"SomeText",tooltip:"Tooltip text beautiful"}},Default=(args=>({props:{...args},template:'\n \n '})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'(args: any) => ({\n props: {\n ...args\n },\n template: `\n \n `\n})',...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-interactive-badge-interactive-badge-stories.7c7d4427.iframe.bundle.js b/design-atoms-interactive-badge-interactive-badge-stories.7c7d4427.iframe.bundle.js
new file mode 100644
index 000000000..45d8312ea
--- /dev/null
+++ b/design-atoms-interactive-badge-interactive-badge-stories.7c7d4427.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[4844],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/interactive-badge/interactive-badge.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{B:()=>InteractiveBadgeComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var interactive_badge_componentngResource=__webpack_require__("./src/design/atoms/interactive-badge/interactive-badge.component.scss?ngResource"),interactive_badge_componentngResource_default=__webpack_require__.n(interactive_badge_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InteractiveBadgeComponent=class InteractiveBadgeComponent{constructor(){this.kind=core.input.required(),this.text=core.input.required(),this.textLink=(0,core.input)(),this.icon=(0,core.input)(),this.iconKind=(0,core.input)(),this.iconKindVal=(0,core.computed)((()=>this.iconKind()??this.kind())),this.iconClick=new core.EventEmitter,this.labelClick=new core.EventEmitter}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],textLink:[{type:core.Input,args:[{isSignal:!0,alias:"textLink",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],iconKind:[{type:core.Input,args:[{isSignal:!0,alias:"iconKind",required:!1,transform:void 0}]}],iconClick:[{type:core.Output}],labelClick:[{type:core.Output}]}}};InteractiveBadgeComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-interactive-badge",template:"\n @if (textLink()) {\n
\n {{ text() }}\n \n } @else {\n
\n {{ text() }}\n \n }\n\n @let iconVal = icon();\n @if (iconVal) {\n
\n \n \n }\n
\n",changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[router.Wk,common.NgClass,icon_component.R],styles:[interactive_badge_componentngResource_default()]})],InteractiveBadgeComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/interactive-badge/interactive-badge.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Secondary:()=>Secondary,Warning:()=>Warning,WithLink:()=>WithLink,WithoutIcon:()=>WithoutIcon,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/InteractiveBadgeComponent",component:__webpack_require__("./src/design/atoms/interactive-badge/interactive-badge.component.ts").B,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_3__.c]})],args:{text:"BadgeText",kind:"PRIMARY",icon:"times",textLink:void 0}},Template=args=>({props:{...args,iconClick:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("iconClick"),labelClick:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("labelClick")}}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={kind:"SECONDARY"};const Dark=Template.bind({});Dark.args={kind:"DARK"};const Warning=Template.bind({});Warning.args={kind:"WARNING"};const Danger=Template.bind({});Danger.args={kind:"DANGER"};const WithoutIcon=Template.bind({});WithoutIcon.args={icon:void 0};const WithLink=Template.bind({});WithLink.args={textLink:"/to/other/page"};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","WithoutIcon","WithLink"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Danger.parameters?.docs?.source}}},WithoutIcon.parameters={...WithoutIcon.parameters,docs:{...WithoutIcon.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...WithoutIcon.parameters?.docs?.source}}},WithLink.parameters={...WithLink.parameters,docs:{...WithLink.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...WithLink.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/interactive-badge/interactive-badge.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --inner-badge-padding: var(--spacer-2);\n}\n\n.badge-container {\n display: flex;\n flex-direction: row;\n}\n\n.badge {\n cursor: pointer;\n border-bottom: none;\n text-decoration: none;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.badge:focus, .badge:focus-within, .badge:hover {\n outline: solid 3px var(--bs-link-hover-color);\n}\n.badge--part1 {\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n padding-right: var(--inner-badge-padding);\n}\n.badge--part2 {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n padding-left: var(--inner-badge-padding);\n padding-right: var(--inner-badge-padding);\n border-left: 1.5px solid var(--bs-white);\n}\n\n.bg-warning,\n.bg-light,\n.bg-info {\n color: var(--bs-black);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-atoms-interactive-badge-interactive-badge-stories.c0b36851.iframe.bundle.js b/design-atoms-interactive-badge-interactive-badge-stories.c0b36851.iframe.bundle.js
deleted file mode 100644
index 9a3dec409..000000000
--- a/design-atoms-interactive-badge-interactive-badge-stories.c0b36851.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[4844],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/interactive-badge/interactive-badge.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{B:()=>InteractiveBadgeComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var interactive_badge_componentngResource=__webpack_require__("./src/design/atoms/interactive-badge/interactive-badge.component.scss?ngResource"),interactive_badge_componentngResource_default=__webpack_require__.n(interactive_badge_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InteractiveBadgeComponent=class InteractiveBadgeComponent{constructor(){this.kind=core.input.required(),this.text=core.input.required(),this.textLink=(0,core.input)(),this.icon=(0,core.input)(),this.iconKind=(0,core.input)(),this.iconKindVal=(0,core.computed)((()=>this.iconKind()??this.kind())),this.iconClick=new core.EventEmitter,this.labelClick=new core.EventEmitter}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],textLink:[{type:core.Input,args:[{isSignal:!0,alias:"textLink",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],iconKind:[{type:core.Input,args:[{isSignal:!0,alias:"iconKind",required:!1,transform:void 0}]}],iconClick:[{type:core.Output}],labelClick:[{type:core.Output}]}}};InteractiveBadgeComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-interactive-badge",template:"\n @if (textLink()) {\n
\n {{ text() }}\n \n } @else {\n
\n {{ text() }}\n \n }\n\n @let iconVal = icon();\n @if (iconVal) {\n
\n \n \n }\n
\n",changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[router.Wk,common.NgClass,icon_component.R],styles:[interactive_badge_componentngResource_default()]})],InteractiveBadgeComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/atoms/interactive-badge/interactive-badge.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Secondary:()=>Secondary,Warning:()=>Warning,WithLink:()=>WithLink,WithoutIcon:()=>WithoutIcon,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Atoms/InteractiveBadgeComponent",component:__webpack_require__("./src/design/atoms/interactive-badge/interactive-badge.component.ts").B,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_3__.c]})],args:{text:"BadgeText",kind:"PRIMARY",icon:"times",textLink:void 0}},Template=args=>({props:{...args,iconClick:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("iconClick"),labelClick:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("labelClick")}}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={kind:"SECONDARY"};const Dark=Template.bind({});Dark.args={kind:"DARK"};const Warning=Template.bind({});Warning.args={kind:"WARNING"};const Danger=Template.bind({});Danger.args={kind:"DANGER"};const WithoutIcon=Template.bind({});WithoutIcon.args={icon:void 0};const WithLink=Template.bind({});WithLink.args={textLink:"/to/other/page"};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","WithoutIcon","WithLink"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...Danger.parameters?.docs?.source}}},WithoutIcon.parameters={...WithoutIcon.parameters,docs:{...WithoutIcon.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...WithoutIcon.parameters?.docs?.source}}},WithLink.parameters={...WithLink.parameters,docs:{...WithLink.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n iconClick: action('iconClick'),\n labelClick: action('labelClick')\n }\n})",...WithLink.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/interactive-badge/interactive-badge.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --inner-badge-padding: var(--spacer-2);\n}\n\n.badge-container {\n display: flex;\n flex-direction: row;\n}\n\n.badge {\n cursor: pointer;\n border-bottom: none;\n text-decoration: none;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.badge:focus, .badge:focus-within, .badge:hover {\n outline: solid 3px var(--bs-link-hover-color);\n}\n.badge--part1 {\n border-top-right-radius: unset;\n border-bottom-right-radius: unset;\n padding-right: var(--inner-badge-padding);\n}\n.badge--part2 {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n padding-left: var(--inner-badge-padding);\n padding-right: var(--inner-badge-padding);\n border-left: 1.5px solid var(--bs-white);\n}\n\n.bg-warning,\n.bg-light,\n.bg-info {\n color: var(--bs-black);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-badge-list-badge-list-stories.ac78bf2d.iframe.bundle.js b/design-molecules-badge-list-badge-list-stories.ac78bf2d.iframe.bundle.js
deleted file mode 100644
index 1ef0a2892..000000000
--- a/design-molecules-badge-list-badge-list-stories.ac78bf2d.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3751],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/molecules/badge-list/badge-list.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,LinkCreate:()=>LinkCreate,NoCreate:()=>NoCreate,NoLinks:()=>NoLinks,NoPermissions:()=>NoPermissions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const dummyBadgeList=[{text:"Badge 1",link:"https://example.com/badge1",badgeValue:{count:10,color:"green"}},{text:"Badge 2",link:"https://example.com/badge2",badgeValue:{count:5,color:"blue"}},{text:"Badge 3",link:"https://example.com/badge3",badgeValue:{count:2,color:"red"}},{text:"Badge 4",link:"https://example.com/badge4",badgeValue:{count:20,color:"purple"}},{text:"Badge 5",link:"https://example.com/badge5",badgeValue:{count:7,color:"orange"}}],__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/BadgeListComponent",component:__webpack_require__("./src/design/molecules/badge-list/badge-list.component.ts").p,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_3__.c]})],args:{entries:dummyBadgeList,createOptions:{kind:"SELECT",config:{options:[{myLabel:"A value",myValue:5},{myLabel:"Another value",myValue:7},{myLabel:"Yet another value",myValue:2},{myLabel:"More values",myValue:9},{myLabel:"Even more values",myValue:4},{myLabel:"Values galore",myValue:1},{myLabel:"The value of values",myValue:8},{myLabel:"The value of life",myValue:42},{myLabel:"The value of time",myValue:24},{myLabel:"The value of money",myValue:100},{myLabel:"The value of love",myValue:99},{myLabel:"The value of friendship",myValue:7},{myLabel:"The value of knowledge",myValue:314},{myLabel:"The value of wisdom",myValue:999},{myLabel:"The value of power",myValue:666}],labelProp:"myLabel",valueProp:"myValue"}},label:"Character",canCreate:!0,canDelete:!0,submitButtonType:"PRIMARY",cancelButtonType:"SECONDARY"}},Template=args=>({props:{...args,entryDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("entryDelete"),entryCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("entryCreate")}}),Default=Template.bind({});Default.args={};const LinkCreate=Template.bind({});LinkCreate.args={createOptions:"/link/to/create/page"};const NoCreate=Template.bind({});NoCreate.args={createOptions:void 0};const NoLinks=Template.bind({});NoLinks.args={entries:dummyBadgeList.map((badge=>({...badge,link:void 0})))};const NoPermissions=Template.bind({});NoPermissions.args={canCreate:!1,canDelete:!1};const __namedExportsOrder=["Default","LinkCreate","NoCreate","NoLinks","NoPermissions"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...Default.parameters?.docs?.source}}},LinkCreate.parameters={...LinkCreate.parameters,docs:{...LinkCreate.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...LinkCreate.parameters?.docs?.source}}},NoCreate.parameters={...NoCreate.parameters,docs:{...NoCreate.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...NoCreate.parameters?.docs?.source}}},NoLinks.parameters={...NoLinks.parameters,docs:{...NoLinks.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...NoLinks.parameters?.docs?.source}}},NoPermissions.parameters={...NoPermissions.parameters,docs:{...NoPermissions.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...NoPermissions.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-badge-list-badge-list-stories.d458a448.iframe.bundle.js b/design-molecules-badge-list-badge-list-stories.d458a448.iframe.bundle.js
new file mode 100644
index 000000000..2e7f55370
--- /dev/null
+++ b/design-molecules-badge-list-badge-list-stories.d458a448.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3751],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/molecules/badge-list/badge-list.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,LinkCreate:()=>LinkCreate,NoCreate:()=>NoCreate,NoLinks:()=>NoLinks,NoPermissions:()=>NoPermissions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const dummyBadgeList=[{text:"Badge 1",link:"https://example.com/badge1",badgeValue:{count:10,color:"green"}},{text:"Badge 2",link:"https://example.com/badge2",badgeValue:{count:5,color:"blue"}},{text:"Badge 3",link:"https://example.com/badge3",badgeValue:{count:2,color:"red"}},{text:"Badge 4",link:"https://example.com/badge4",badgeValue:{count:20,color:"purple"}},{text:"Badge 5",link:"https://example.com/badge5",badgeValue:{count:7,color:"orange"}}],__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/BadgeListComponent",component:__webpack_require__("./src/design/molecules/badge-list/badge-list.component.ts").p,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_3__.c]})],args:{entries:dummyBadgeList,createOptions:{kind:"SELECT",config:{options:[{myLabel:"A value",myValue:5},{myLabel:"Another value",myValue:7},{myLabel:"Yet another value",myValue:2},{myLabel:"More values",myValue:9},{myLabel:"Even more values",myValue:4},{myLabel:"Values galore",myValue:1},{myLabel:"The value of values",myValue:8},{myLabel:"The value of life",myValue:42},{myLabel:"The value of time",myValue:24},{myLabel:"The value of money",myValue:100},{myLabel:"The value of love",myValue:99},{myLabel:"The value of friendship",myValue:7},{myLabel:"The value of knowledge",myValue:314},{myLabel:"The value of wisdom",myValue:999},{myLabel:"The value of power",myValue:666}],labelProp:"myLabel",valueProp:"myValue"}},label:"Character",canCreate:!0,canDelete:!0,submitButtonType:"PRIMARY",cancelButtonType:"SECONDARY"}},Template=args=>({props:{...args,entryDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("entryDelete"),entryCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("entryCreate")}}),Default=Template.bind({});Default.args={};const LinkCreate=Template.bind({});LinkCreate.args={createOptions:"/link/to/create/page"};const NoCreate=Template.bind({});NoCreate.args={createOptions:void 0};const NoLinks=Template.bind({});NoLinks.args={entries:dummyBadgeList.map((badge=>({...badge,link:void 0})))};const NoPermissions=Template.bind({});NoPermissions.args={canCreate:!1,canDelete:!1};const __namedExportsOrder=["Default","LinkCreate","NoCreate","NoLinks","NoPermissions"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...Default.parameters?.docs?.source}}},LinkCreate.parameters={...LinkCreate.parameters,docs:{...LinkCreate.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...LinkCreate.parameters?.docs?.source}}},NoCreate.parameters={...NoCreate.parameters,docs:{...NoCreate.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...NoCreate.parameters?.docs?.source}}},NoLinks.parameters={...NoLinks.parameters,docs:{...NoLinks.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...NoLinks.parameters?.docs?.source}}},NoPermissions.parameters={...NoPermissions.parameters,docs:{...NoPermissions.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args,\n entryDelete: action('entryDelete'),\n entryCreate: action('entryCreate')\n }\n})",...NoPermissions.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-collapsible-panel-collapsible-panel-stories.1476baba.iframe.bundle.js b/design-molecules-collapsible-panel-collapsible-panel-stories.1476baba.iframe.bundle.js
deleted file mode 100644
index dbbdf9aba..000000000
--- a/design-molecules-collapsible-panel-collapsible-panel-stories.1476baba.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6005],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/separator/separator.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>SeparatorComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var separator_componentngResource=__webpack_require__("./src/design/atoms/separator/separator.component.scss?ngResource"),separator_componentngResource_default=__webpack_require__.n(separator_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SeparatorComponent=class SeparatorComponent{};SeparatorComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-separator",template:' \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[separator_componentngResource_default()]})],SeparatorComponent)},"./src/design/molecules/collapsible-panel/collapsible-panel.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{e:()=>CollapsiblePanelComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var collapsible_panel_componentngResource=__webpack_require__("./src/design/molecules/collapsible-panel/collapsible-panel.component.scss?ngResource"),collapsible_panel_componentngResource_default=__webpack_require__.n(collapsible_panel_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts");let CollapsiblePanelComponent=class CollapsiblePanelComponent{constructor(){this.isOpen=(0,core.input)(!1),this._isOpen=(0,core.signal)(!1),(0,core.effect)((()=>this._isOpen.set(this.isOpen())),{allowSignalWrites:!0})}ngOnInit(){this._isOpen.set(this.isOpen())}togglePanel(){this._isOpen.set(!this._isOpen())}static{this.ctorParameters=()=>[]}static{this.propDecorators={isOpen:[{type:core.Input,args:[{isSignal:!0,alias:"isOpen",required:!1,transform:void 0}]}]}}};CollapsiblePanelComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-collapsible-panel",template:'\n
\n \n \n \n \n\n \n \n \n\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[separator_component.F,icon_component.R,ng_bootstrap.$G],styles:[collapsible_panel_componentngResource_default()]})],CollapsiblePanelComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/collapsible-panel/collapsible-panel.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/CollapsiblePanelComponent",component:__webpack_require__("./src/design/molecules/collapsible-panel/collapsible-panel.component.ts").e,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({})],args:{isOpen:!1,heading:"Some Heading"}},Default=(args=>({props:{...args},template:"\n \n {{heading}}
\n \n \n \n"})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n },\n template: `\n \n {{heading}}
\n \n \n \n`\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/separator/separator.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --separator-color: var(--bs-white);\n --separator-thickness: 1px;\n --separator-margin-top: var(--spacer-3);\n --separator-margin-bottom: var(--spacer-3);\n}\n\n.separator {\n background-color: var(--separator-color);\n height: var(--separator-thickness);\n width: 100%;\n margin: var(--separator-margin-top) var(--spacer-0) var(--separator-margin-bottom) var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/collapsible-panel/collapsible-panel.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card {\n padding: var(--spacer-3);\n}\n.card:focus-within {\n outline: 1px white solid;\n}\n.card__heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n text-align: start;\n margin-bottom: 0px;\n}\n.card__heading-text {\n flex: 1;\n margin-right: var(--spacer-4);\n}\n.card__button {\n outline: none;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-collapsible-panel-collapsible-panel-stories.46b7ba9a.iframe.bundle.js b/design-molecules-collapsible-panel-collapsible-panel-stories.46b7ba9a.iframe.bundle.js
new file mode 100644
index 000000000..703e3f460
--- /dev/null
+++ b/design-molecules-collapsible-panel-collapsible-panel-stories.46b7ba9a.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6005],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/separator/separator.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>SeparatorComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var separator_componentngResource=__webpack_require__("./src/design/atoms/separator/separator.component.scss?ngResource"),separator_componentngResource_default=__webpack_require__.n(separator_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SeparatorComponent=class SeparatorComponent{};SeparatorComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-separator",template:' \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[separator_componentngResource_default()]})],SeparatorComponent)},"./src/design/molecules/collapsible-panel/collapsible-panel.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{e:()=>CollapsiblePanelComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var collapsible_panel_componentngResource=__webpack_require__("./src/design/molecules/collapsible-panel/collapsible-panel.component.scss?ngResource"),collapsible_panel_componentngResource_default=__webpack_require__.n(collapsible_panel_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts");let CollapsiblePanelComponent=class CollapsiblePanelComponent{constructor(){this.isOpen=(0,core.input)(!1),this._isOpen=(0,core.signal)(!1),(0,core.effect)((()=>this._isOpen.set(this.isOpen())),{allowSignalWrites:!0})}ngOnInit(){this._isOpen.set(this.isOpen())}togglePanel(){this._isOpen.set(!this._isOpen())}static{this.ctorParameters=()=>[]}static{this.propDecorators={isOpen:[{type:core.Input,args:[{isSignal:!0,alias:"isOpen",required:!1,transform:void 0}]}]}}};CollapsiblePanelComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-collapsible-panel",template:'\n
\n \n \n \n \n\n \n \n \n\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[separator_component.F,icon_component.R,ng_bootstrap.$G],styles:[collapsible_panel_componentngResource_default()]})],CollapsiblePanelComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/collapsible-panel/collapsible-panel.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/CollapsiblePanelComponent",component:__webpack_require__("./src/design/molecules/collapsible-panel/collapsible-panel.component.ts").e,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({})],args:{isOpen:!1,heading:"Some Heading"}},Default=(args=>({props:{...args},template:"\n \n {{heading}}
\n \n \n \n"})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"(args: any) => ({\n props: {\n ...args\n },\n template: `\n \n {{heading}}
\n \n \n \n`\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/separator/separator.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --separator-color: var(--bs-white);\n --separator-thickness: 1px;\n --separator-margin-top: var(--spacer-3);\n --separator-margin-bottom: var(--spacer-3);\n}\n\n.separator {\n background-color: var(--separator-color);\n height: var(--separator-thickness);\n width: 100%;\n margin: var(--separator-margin-top) var(--spacer-0) var(--separator-margin-bottom) var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/collapsible-panel/collapsible-panel.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card {\n padding: var(--spacer-3);\n}\n.card:focus-within {\n outline: 1px white solid;\n}\n.card__heading {\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n text-align: start;\n margin-bottom: 0px;\n}\n.card__heading-text {\n flex: 1;\n margin-right: var(--spacer-4);\n}\n.card__button {\n outline: none;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-confirmation-modal-confirmation-modal-stories.a145af25.iframe.bundle.js b/design-molecules-confirmation-modal-confirmation-modal-stories.a145af25.iframe.bundle.js
deleted file mode 100644
index bcf805af7..000000000
--- a/design-molecules-confirmation-modal-confirmation-modal-stories.a145af25.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8573],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/confirmation-modal/confirmation-modal.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{M:()=>ConfirmationModalComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var confirmation_modal_componentngResource=__webpack_require__("./src/design/molecules/confirmation-modal/confirmation-modal.component.scss?ngResource"),confirmation_modal_componentngResource_default=__webpack_require__.n(confirmation_modal_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ConfirmationModalComponent=class ConfirmationModalComponent{constructor(modalService){this.modalService=modalService,this.heading=core.input.required(),this.confirmValue=core.input.required(),this.submitIcon=core.input.required(),this.modalType=(0,core.input)("PRIMARY"),this.cancelButtonType=(0,core.input)("SECONDARY"),this.submitButtonLabel=(0,core.input)("Yes"),this.cancelButtonLabel=(0,core.input)("No"),this.modalClass=(0,core.computed)((()=>`modal-border--${this.modalType().toLowerCase()}`)),this.modalClose=new core.EventEmitter,this.confirm=new core.EventEmitter,this.cancel=new core.EventEmitter}open(content){this.modalService.open(content,{ariaLabelledBy:"modal-basic-title",modalDialogClass:this.modalClass()}).result.then((result=>this.modalClose.emit()),(reason=>this.modalClose.emit()))}onSubmit(modal){this.confirm.emit(this.confirmValue()),modal.close()}onCancel(modal){this.cancel.emit(this.confirmValue()),modal.close()}static{this.ctorParameters=()=>[{type:ng_bootstrap.Bq}]}static{this.propDecorators={heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!0,transform:void 0}]}],confirmValue:[{type:core.Input,args:[{isSignal:!0,alias:"confirmValue",required:!0,transform:void 0}]}],submitIcon:[{type:core.Input,args:[{isSignal:!0,alias:"submitIcon",required:!0,transform:void 0}]}],modalType:[{type:core.Input,args:[{isSignal:!0,alias:"modalType",required:!1,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],submitButtonLabel:[{type:core.Input,args:[{isSignal:!0,alias:"submitButtonLabel",required:!1,transform:void 0}]}],cancelButtonLabel:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonLabel",required:!1,transform:void 0}]}],modalClose:[{type:core.Output}],confirm:[{type:core.Output}],cancel:[{type:core.Output}]}}};ConfirmationModalComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-confirmation-modal",template:'\n \n \n\n\n \n
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,ng_bootstrap.UN],styles:[confirmation_modal_componentngResource_default()]})],ConfirmationModalComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/confirmation-modal/confirmation-modal.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Info:()=>Info,Light:()=>Light,Secondary:()=>Secondary,Warning:()=>Warning,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/ConfirmationModalComponent",component:__webpack_require__("./src/design/molecules/confirmation-modal/confirmation-modal.component.ts").M,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({}),(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.componentWrapperDecorator)((()=>'\n \n \n \n Body \n This is the modal body content.\n \n \n \n \n \n \n \n '))],args:{heading:"Modal Heading",cancelButtonLabel:"No",submitButtonLabel:"Yes",modalType:"PRIMARY",cancelButtonType:"SECONDARY",confirmValue:"Confirm value to emit",submitIcon:"plus"}},Template=args=>({props:{...args,modalClose:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("modalClose"),confirm:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("confirm"),cancel:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("cancel")}}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={modalType:"SECONDARY"};const Dark=Template.bind({});Dark.args={modalType:"DARK"};const Warning=Template.bind({});Warning.args={modalType:"WARNING"};const Danger=Template.bind({});Danger.args={modalType:"DANGER"};const Light=Template.bind({});Light.args={modalType:"LIGHT"};const Info=Template.bind({});Info.args={modalType:"INFO"};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","Light","Info"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Danger.parameters?.docs?.source}}},Light.parameters={...Light.parameters,docs:{...Light.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Light.parameters?.docs?.source}}},Info.parameters={...Info.parameters,docs:{...Info.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Info.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/confirmation-modal/confirmation-modal.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".modal-border {\n border-width: 1.5px;\n border-radius: var(--bs-modal-border-radius);\n border-style: solid;\n}\n\n.modal-border--primary {\n border-color: var(--bs-primary);\n}\n.modal-border--secondary {\n border-color: var(--bs-secondary);\n}\n.modal-border--info {\n border-color: var(--bs-info);\n}\n.modal-border--danger {\n border-color: var(--bs-danger);\n}\n.modal-border--dark {\n border-color: var(--bs-dark);\n}\n.modal-border--light {\n border-color: var(--bs-light);\n}\n.modal-border--warning {\n border-color: var(--bs-warning);\n}\n\n.body__buttons {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-1);\n}\n.body__button {\n margin-right: var(--spacer-3);\n width: fit-content;\n display: inline-block;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-confirmation-modal-confirmation-modal-stories.b5062f7d.iframe.bundle.js b/design-molecules-confirmation-modal-confirmation-modal-stories.b5062f7d.iframe.bundle.js
new file mode 100644
index 000000000..0ca4b9d8b
--- /dev/null
+++ b/design-molecules-confirmation-modal-confirmation-modal-stories.b5062f7d.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8573],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/confirmation-modal/confirmation-modal.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{M:()=>ConfirmationModalComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var confirmation_modal_componentngResource=__webpack_require__("./src/design/molecules/confirmation-modal/confirmation-modal.component.scss?ngResource"),confirmation_modal_componentngResource_default=__webpack_require__.n(confirmation_modal_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ConfirmationModalComponent=class ConfirmationModalComponent{constructor(modalService){this.modalService=modalService,this.heading=core.input.required(),this.confirmValue=core.input.required(),this.submitIcon=core.input.required(),this.modalType=(0,core.input)("PRIMARY"),this.cancelButtonType=(0,core.input)("SECONDARY"),this.submitButtonLabel=(0,core.input)("Yes"),this.cancelButtonLabel=(0,core.input)("No"),this.modalClass=(0,core.computed)((()=>`modal-border--${this.modalType().toLowerCase()}`)),this.modalClose=new core.EventEmitter,this.confirm=new core.EventEmitter,this.cancel=new core.EventEmitter}open(content){this.modalService.open(content,{ariaLabelledBy:"modal-basic-title",modalDialogClass:this.modalClass()}).result.then((result=>this.modalClose.emit()),(reason=>this.modalClose.emit()))}onSubmit(modal){this.confirm.emit(this.confirmValue()),modal.close()}onCancel(modal){this.cancel.emit(this.confirmValue()),modal.close()}static{this.ctorParameters=()=>[{type:ng_bootstrap.Bq}]}static{this.propDecorators={heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!0,transform:void 0}]}],confirmValue:[{type:core.Input,args:[{isSignal:!0,alias:"confirmValue",required:!0,transform:void 0}]}],submitIcon:[{type:core.Input,args:[{isSignal:!0,alias:"submitIcon",required:!0,transform:void 0}]}],modalType:[{type:core.Input,args:[{isSignal:!0,alias:"modalType",required:!1,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],submitButtonLabel:[{type:core.Input,args:[{isSignal:!0,alias:"submitButtonLabel",required:!1,transform:void 0}]}],cancelButtonLabel:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonLabel",required:!1,transform:void 0}]}],modalClose:[{type:core.Output}],confirm:[{type:core.Output}],cancel:[{type:core.Output}]}}};ConfirmationModalComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-confirmation-modal",template:'\n \n \n\n\n \n
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,ng_bootstrap.UN],styles:[confirmation_modal_componentngResource_default()]})],ConfirmationModalComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/confirmation-modal/confirmation-modal.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Danger:()=>Danger,Dark:()=>Dark,Default:()=>Default,Info:()=>Info,Light:()=>Light,Secondary:()=>Secondary,Warning:()=>Warning,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/ConfirmationModalComponent",component:__webpack_require__("./src/design/molecules/confirmation-modal/confirmation-modal.component.ts").M,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({}),(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.componentWrapperDecorator)((()=>'\n \n \n \n Body \n This is the modal body content.\n \n \n \n \n \n \n \n '))],args:{heading:"Modal Heading",cancelButtonLabel:"No",submitButtonLabel:"Yes",modalType:"PRIMARY",cancelButtonType:"SECONDARY",confirmValue:"Confirm value to emit",submitIcon:"plus"}},Template=args=>({props:{...args,modalClose:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("modalClose"),confirm:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("confirm"),cancel:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("cancel")}}),Default=Template.bind({});Default.args={};const Secondary=Template.bind({});Secondary.args={modalType:"SECONDARY"};const Dark=Template.bind({});Dark.args={modalType:"DARK"};const Warning=Template.bind({});Warning.args={modalType:"WARNING"};const Danger=Template.bind({});Danger.args={modalType:"DANGER"};const Light=Template.bind({});Light.args={modalType:"LIGHT"};const Info=Template.bind({});Info.args={modalType:"INFO"};const __namedExportsOrder=["Default","Secondary","Dark","Warning","Danger","Light","Info"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Default.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Dark.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Warning.parameters?.docs?.source}}},Danger.parameters={...Danger.parameters,docs:{...Danger.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Danger.parameters?.docs?.source}}},Light.parameters={...Light.parameters,docs:{...Light.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Light.parameters?.docs?.source}}},Info.parameters={...Info.parameters,docs:{...Info.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n modalClose: action('modalClose'),\n confirm: action('confirm'),\n cancel: action('cancel')\n }\n})",...Info.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/confirmation-modal/confirmation-modal.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".modal-border {\n border-width: 1.5px;\n border-radius: var(--bs-modal-border-radius);\n border-style: solid;\n}\n\n.modal-border--primary {\n border-color: var(--bs-primary);\n}\n.modal-border--secondary {\n border-color: var(--bs-secondary);\n}\n.modal-border--info {\n border-color: var(--bs-info);\n}\n.modal-border--danger {\n border-color: var(--bs-danger);\n}\n.modal-border--dark {\n border-color: var(--bs-dark);\n}\n.modal-border--light {\n border-color: var(--bs-light);\n}\n.modal-border--warning {\n border-color: var(--bs-warning);\n}\n\n.body__buttons {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-1);\n}\n.body__button {\n margin-right: var(--spacer-3);\n width: fit-content;\n display: inline-block;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-confirmation-toggle-button-confirmation-toggle-button-stories.ca0d93d1.iframe.bundle.js b/design-molecules-confirmation-toggle-button-confirmation-toggle-button-stories.ca0d93d1.iframe.bundle.js
new file mode 100644
index 000000000..fb3a10960
--- /dev/null
+++ b/design-molecules-confirmation-toggle-button-confirmation-toggle-button-stories.ca0d93d1.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3289],{"./src/design/animations/flip.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{S:()=>flipInY});var _angular_animations__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const flipAnimation=[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, 90deg)",transform:"perspective(400px) rotate3d(0, 1, 0, 90deg)","webkit-animation-timing-function":"ease-in","animation-timing-function":"ease-in"}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("400ms",(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i7)([(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, -20deg)",transform:"perspective(400px) rotate3d(0, 1, 0, -20deg)","webkit-animation-timing-function":"ease-in","animation-timing-function":"ease-in",offset:.4}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, 10deg)",transform:"perspective(400px) rotate3d(0, 1, 0, 10deg)",offset:.6}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, -5deg)",transform:"perspective(400px) rotate3d(0, 1, 0, -5deg)",offset:.8}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px)",transform:"perspective(400px)",offset:1})]))],flipInY=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("flipInY",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)("sideA => sideB",flipAnimation),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)("sideB => sideA",flipAnimation)])},"./src/design/atoms/_models/button.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C9:()=>toElementKind,bV:()=>ELEMENT_TYPES});const ELEMENT_TYPES=["PRIMARY","SECONDARY","DARK","DANGER","WARNING","LIGHT","INFO"];function toElementKind(kind){switch(kind){case"PRIMARY":case"SECONDARY":case"DARK":case"DANGER":case"WARNING":case"LIGHT":case"INFO":return kind;case"PRIMARY-OUTLINE":case"SECONDARY-OUTLINE":case"DARK-OUTLINE":case"DANGER-OUTLINE":case"WARNING-OUTLINE":case"LIGHT-OUTLINE":case"INFO-OUTLINE":return kind.replace("-OUTLINE","");case"NONE":return}}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>ConfirmationToggleButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var confirmation_toggle_button_componentngResource=__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.scss?ngResource"),confirmation_toggle_button_componentngResource_default=__webpack_require__.n(confirmation_toggle_button_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),flip=__webpack_require__("./src/design/animations/flip.ts"),_models_button=__webpack_require__("./src/design/atoms/_models/button.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ConfirmationToggleButtonComponent=class ConfirmationToggleButtonComponent{constructor(){this.confirmationQuestion=core.input.required(),this.icon=(0,core.input)(),this.text=(0,core.input)(),this.toggleType=(0,core.input)("DANGER-OUTLINE"),this.toggleSize=(0,core.input)("MEDIUM"),this.confirmButtonType=(0,core.computed)((()=>(0,_models_button.C9)(this.toggleType())??"DANGER")),this.cancelButtonType=(0,core.input)("SECONDARY"),this.confirm=new core.EventEmitter,this.isActive=(0,core.signal)(!1)}toggle(){this.isActive.set(!this.isActive())}emitConfirmation(){this.isActive&&(this.confirm.emit(),this.toggle())}static{this.propDecorators={confirmationQuestion:[{type:core.Input,args:[{isSignal:!0,alias:"confirmationQuestion",required:!0,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],toggleType:[{type:core.Input,args:[{isSignal:!0,alias:"toggleType",required:!1,transform:void 0}]}],toggleSize:[{type:core.Input,args:[{isSignal:!0,alias:"toggleSize",required:!1,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],confirm:[{type:core.Output}]}}};ConfirmationToggleButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-confirmation-toggle-button",template:'\n \n
\n\n\n \n \n\n\n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,common.NgTemplateOutlet],animations:[flip.S],styles:[confirmation_toggle_button_componentngResource_default()]})],ConfirmationToggleButtonComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Dark:()=>Dark,Default:()=>Default,Primary:()=>Primary,Secondary:()=>Secondary,Warning:()=>Warning,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/ConfirmationToggleButtonComponent",component:__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts").T,args:{confirmationQuestion:"Are you sure?",toggleType:"DANGER",cancelButtonType:"SECONDARY"}},Template=args=>({props:{...args,confirm:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("confirm")},template:'\n \n '}),Default=Template.bind({});Default.args={};const Warning=Template.bind({});Warning.args={toggleType:"WARNING"};const Primary=Template.bind({});Primary.args={toggleType:"PRIMARY"};const Secondary=Template.bind({});Secondary.args={toggleType:"SECONDARY"};const Dark=Template.bind({});Dark.args={toggleType:"DARK"};const __namedExportsOrder=["Default","Warning","Primary","Secondary","Dark"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Default.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Warning.parameters?.docs?.source}}},Primary.parameters={...Primary.parameters,docs:{...Primary.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Primary.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Dark.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --align: start;\n --confirmation-bg-color: var(--bs-card-bg) display: flex;\n justify-content: var(--align);\n}\n\n.confirmation-toggle {\n display: inline-block;\n width: fit-content;\n}\n\n.confirmation {\n border: 1px solid;\n display: flex;\n align-items: flex-end;\n align-content: center;\n border-radius: var(--bs-border-radius);\n padding: var(--spacer-2) var(--spacer-3);\n justify-content: space-between;\n background-color: var(--confirmation-bg-color);\n width: fit-content;\n flex-direction: column;\n}\n@media (min-width: 992px) {\n .confirmation {\n flex-direction: row;\n align-items: center;\n }\n}\n.confirmation--DANGER {\n border-color: var(--bs-danger);\n}\n.confirmation--WARNING {\n border-color: var(--bs-warning);\n}\n.confirmation--PRIMARY {\n border-color: var(--bs-primary);\n}\n.confirmation--SECONDARY {\n border-color: var(--bs-secondary);\n}\n.confirmation--TERTIARY {\n border-color: var(--bs-dark);\n}\n.confirmation__question {\n flex: 1;\n}\n@media (min-width: 992px) {\n .confirmation__question {\n margin-right: var(--spacer-2);\n }\n}\n.confirmation__buttons {\n display: flex;\n justify-content: space-between;\n width: 100%;\n}\n@media (min-width: 992px) {\n .confirmation__buttons {\n width: unset;\n }\n .confirmation__buttons :nth-child(1) {\n margin-right: var(--spacer-2);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-confirmation-toggle-button-confirmation-toggle-button-stories.d05f4ba2.iframe.bundle.js b/design-molecules-confirmation-toggle-button-confirmation-toggle-button-stories.d05f4ba2.iframe.bundle.js
deleted file mode 100644
index a97fa7015..000000000
--- a/design-molecules-confirmation-toggle-button-confirmation-toggle-button-stories.d05f4ba2.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3289],{"./src/design/animations/flip.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{S:()=>flipInY});var _angular_animations__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const flipAnimation=[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, 90deg)",transform:"perspective(400px) rotate3d(0, 1, 0, 90deg)","webkit-animation-timing-function":"ease-in","animation-timing-function":"ease-in"}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("400ms",(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i7)([(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, -20deg)",transform:"perspective(400px) rotate3d(0, 1, 0, -20deg)","webkit-animation-timing-function":"ease-in","animation-timing-function":"ease-in",offset:.4}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, 10deg)",transform:"perspective(400px) rotate3d(0, 1, 0, 10deg)",offset:.6}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px) rotate3d(0, 1, 0, -5deg)",transform:"perspective(400px) rotate3d(0, 1, 0, -5deg)",offset:.8}),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({"webkit-transform":"perspective(400px)",transform:"perspective(400px)",offset:1})]))],flipInY=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("flipInY",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)("sideA => sideB",flipAnimation),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)("sideB => sideA",flipAnimation)])},"./src/design/atoms/_models/button.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C9:()=>toElementKind,bV:()=>ELEMENT_TYPES});const ELEMENT_TYPES=["PRIMARY","SECONDARY","DARK","DANGER","WARNING","LIGHT","INFO"];function toElementKind(kind){switch(kind){case"PRIMARY":case"SECONDARY":case"DARK":case"DANGER":case"WARNING":case"LIGHT":case"INFO":return kind;case"PRIMARY-OUTLINE":case"SECONDARY-OUTLINE":case"DARK-OUTLINE":case"DANGER-OUTLINE":case"WARNING-OUTLINE":case"LIGHT-OUTLINE":case"INFO-OUTLINE":return kind.replace("-OUTLINE","");case"NONE":return}}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>ConfirmationToggleButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var confirmation_toggle_button_componentngResource=__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.scss?ngResource"),confirmation_toggle_button_componentngResource_default=__webpack_require__.n(confirmation_toggle_button_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),flip=__webpack_require__("./src/design/animations/flip.ts"),_models_button=__webpack_require__("./src/design/atoms/_models/button.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ConfirmationToggleButtonComponent=class ConfirmationToggleButtonComponent{constructor(){this.confirmationQuestion=core.input.required(),this.icon=(0,core.input)(),this.text=(0,core.input)(),this.toggleType=(0,core.input)("DANGER-OUTLINE"),this.toggleSize=(0,core.input)("MEDIUM"),this.confirmButtonType=(0,core.computed)((()=>(0,_models_button.C9)(this.toggleType())??"DANGER")),this.cancelButtonType=(0,core.input)("SECONDARY"),this.confirm=new core.EventEmitter,this.isActive=(0,core.signal)(!1)}toggle(){this.isActive.set(!this.isActive())}emitConfirmation(){this.isActive&&(this.confirm.emit(),this.toggle())}static{this.propDecorators={confirmationQuestion:[{type:core.Input,args:[{isSignal:!0,alias:"confirmationQuestion",required:!0,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],toggleType:[{type:core.Input,args:[{isSignal:!0,alias:"toggleType",required:!1,transform:void 0}]}],toggleSize:[{type:core.Input,args:[{isSignal:!0,alias:"toggleSize",required:!1,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],confirm:[{type:core.Output}]}}};ConfirmationToggleButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-confirmation-toggle-button",template:'\n \n
\n\n\n \n \n\n\n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,common.NgTemplateOutlet],animations:[flip.S],styles:[confirmation_toggle_button_componentngResource_default()]})],ConfirmationToggleButtonComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Dark:()=>Dark,Default:()=>Default,Primary:()=>Primary,Secondary:()=>Secondary,Warning:()=>Warning,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/ConfirmationToggleButtonComponent",component:__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts").T,args:{confirmationQuestion:"Are you sure?",toggleType:"DANGER",cancelButtonType:"SECONDARY"}},Template=args=>({props:{...args,confirm:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("confirm")},template:'\n \n '}),Default=Template.bind({});Default.args={};const Warning=Template.bind({});Warning.args={toggleType:"WARNING"};const Primary=Template.bind({});Primary.args={toggleType:"PRIMARY"};const Secondary=Template.bind({});Secondary.args={toggleType:"SECONDARY"};const Dark=Template.bind({});Dark.args={toggleType:"DARK"};const __namedExportsOrder=["Default","Warning","Primary","Secondary","Dark"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Default.parameters?.docs?.source}}},Warning.parameters={...Warning.parameters,docs:{...Warning.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Warning.parameters?.docs?.source}}},Primary.parameters={...Primary.parameters,docs:{...Primary.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Primary.parameters?.docs?.source}}},Secondary.parameters={...Secondary.parameters,docs:{...Secondary.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Secondary.parameters?.docs?.source}}},Dark.parameters={...Dark.parameters,docs:{...Dark.parameters?.docs,source:{originalSource:'args => ({\n props: {\n ...args,\n confirm: action(\'confirm\')\n },\n template: `\n \n `\n})',...Dark.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --align: start;\n --confirmation-bg-color: var(--bs-card-bg) display: flex;\n justify-content: var(--align);\n}\n\n.confirmation-toggle {\n display: inline-block;\n width: fit-content;\n}\n\n.confirmation {\n border: 1px solid;\n display: flex;\n align-items: flex-end;\n align-content: center;\n border-radius: var(--bs-border-radius);\n padding: var(--spacer-2) var(--spacer-3);\n justify-content: space-between;\n background-color: var(--confirmation-bg-color);\n width: fit-content;\n flex-direction: column;\n}\n@media (min-width: 992px) {\n .confirmation {\n flex-direction: row;\n align-items: center;\n }\n}\n.confirmation--DANGER {\n border-color: var(--bs-danger);\n}\n.confirmation--WARNING {\n border-color: var(--bs-warning);\n}\n.confirmation--PRIMARY {\n border-color: var(--bs-primary);\n}\n.confirmation--SECONDARY {\n border-color: var(--bs-secondary);\n}\n.confirmation--TERTIARY {\n border-color: var(--bs-dark);\n}\n.confirmation__question {\n flex: 1;\n}\n@media (min-width: 992px) {\n .confirmation__question {\n margin-right: var(--spacer-2);\n }\n}\n.confirmation__buttons {\n display: flex;\n justify-content: space-between;\n width: 100%;\n}\n@media (min-width: 992px) {\n .confirmation__buttons {\n width: unset;\n }\n .confirmation__buttons :nth-child(1) {\n margin-right: var(--spacer-2);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-edit-toggle-edit-toggle-stories.4020cf6b.iframe.bundle.js b/design-molecules-edit-toggle-edit-toggle-stories.4020cf6b.iframe.bundle.js
deleted file mode 100644
index 6867a0797..000000000
--- a/design-molecules-edit-toggle-edit-toggle-stories.4020cf6b.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/edit-toggle/edit-toggle.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{a:()=>EditToggleComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var edit_toggle_componentngResource=__webpack_require__("./src/design/molecules/edit-toggle/edit-toggle.component.scss?ngResource"),edit_toggle_componentngResource_default=__webpack_require__.n(edit_toggle_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let EditToggleComponent=class EditToggleComponent{constructor(){this.buttonKind=(0,core.input)("SECONDARY"),this.toggled=(0,core.input)(!1),this._toggled=(0,core.signal)(!1),this.toggle=new core.EventEmitter,(0,core.effect)((()=>{this._toggled.set(this.toggled())}),{allowSignalWrites:!0})}onClick(){this._toggled.set(!this._toggled()),this.toggle.emit(this._toggled())}static{this.ctorParameters=()=>[]}static{this.propDecorators={buttonKind:[{type:core.Input,args:[{isSignal:!0,alias:"buttonKind",required:!1,transform:void 0}]}],toggled:[{type:core.Input,args:[{isSignal:!0,alias:"toggled",required:!1,transform:void 0}]}],toggle:[{type:core.Output}]}}};EditToggleComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-edit-toggle",template:' \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[button_component.Q],styles:[edit_toggle_componentngResource_default()]})],EditToggleComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/edit-toggle/edit-toggle.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/EditToggleComponent",component:__webpack_require__("./src/design/molecules/edit-toggle/edit-toggle.component.ts").a,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({declarations:[]})],args:{toggled:!1,buttonKind:"SECONDARY"}},Default=(args=>({props:{...args,toggle:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("toggle")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n toggle: action('toggle')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/edit-toggle/edit-toggle.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".edit-toggle {\n display: inline-block;\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-edit-toggle-edit-toggle-stories.d04cb69d.iframe.bundle.js b/design-molecules-edit-toggle-edit-toggle-stories.d04cb69d.iframe.bundle.js
new file mode 100644
index 000000000..fb93b3ad2
--- /dev/null
+++ b/design-molecules-edit-toggle-edit-toggle-stories.d04cb69d.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/edit-toggle/edit-toggle.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{a:()=>EditToggleComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var edit_toggle_componentngResource=__webpack_require__("./src/design/molecules/edit-toggle/edit-toggle.component.scss?ngResource"),edit_toggle_componentngResource_default=__webpack_require__.n(edit_toggle_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let EditToggleComponent=class EditToggleComponent{constructor(){this.buttonKind=(0,core.input)("SECONDARY"),this.toggled=(0,core.input)(!1),this._toggled=(0,core.signal)(!1),this.toggle=new core.EventEmitter,(0,core.effect)((()=>{this._toggled.set(this.toggled())}),{allowSignalWrites:!0})}onClick(){this._toggled.set(!this._toggled()),this.toggle.emit(this._toggled())}static{this.ctorParameters=()=>[]}static{this.propDecorators={buttonKind:[{type:core.Input,args:[{isSignal:!0,alias:"buttonKind",required:!1,transform:void 0}]}],toggled:[{type:core.Input,args:[{isSignal:!0,alias:"toggled",required:!1,transform:void 0}]}],toggle:[{type:core.Output}]}}};EditToggleComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-edit-toggle",template:' \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[button_component.Q],styles:[edit_toggle_componentngResource_default()]})],EditToggleComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/edit-toggle/edit-toggle.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/EditToggleComponent",component:__webpack_require__("./src/design/molecules/edit-toggle/edit-toggle.component.ts").a,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({declarations:[]})],args:{toggled:!1,buttonKind:"SECONDARY"}},Default=(args=>({props:{...args,toggle:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("toggle")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n toggle: action('toggle')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/edit-toggle/edit-toggle.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".edit-toggle {\n display: inline-block;\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-formly-file-field-formly-file-field-stories.f4fed17e.iframe.bundle.js b/design-molecules-formly-file-field-formly-file-field-stories.f4fed17e.iframe.bundle.js
deleted file mode 100644
index 0039ba203..000000000
--- a/design-molecules-formly-file-field-formly-file-field-stories.f4fed17e.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[773],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/formly-file-field/formly-file-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{J:()=>FormlyFileFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_file_field_componentngResource=__webpack_require__("./src/design/molecules/formly-file-field/formly-file-field.component.scss?ngResource"),formly_file_field_componentngResource_default=__webpack_require__.n(formly_file_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let FormlyFileFieldComponent=class FormlyFileFieldComponent extends ngx_formly_core.PU{ngOnInit(){this.buttonType=this.props.buttonType,this.fieldKind=this.props.fileFieldKind}onFileSelect(event){const files=event.target.files;if(!(files.length>0))return;const file=files[0];this.model[this.key]=file;const filePath=event.target.value;this.setModelValue(filePath)}setModelValue(filePath){const splitter=filePath.includes("\\")?"\\":"/";this.selectedFileName=filePath?.split(splitter).pop()}onButtonClick(event){event.stopPropagation();const element=this.fileInputElement.nativeElement,newClick=new MouseEvent("click",{bubbles:!1});element.dispatchEvent(newClick)}static{this.propDecorators={fileInputElement:[{type:core.ViewChild,args:["fileInputElement"]}]}}};FormlyFileFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-file-field",template:'\n
\n
\n @if (selectedFileName) {\n Currently Selected: \n {{ selectedFileName }}\n } @else {\n No File Selected\n }\n
\n
\n\n \n',standalone:!0,imports:[button_component.Q,ngx_formly_core.qy,ngx_formly_bootstrap.u,fesm2022_forms.X1],styles:[formly_file_field_componentngResource_default()]})],FormlyFileFieldComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/concat.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{h:()=>merge});var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js"),_innerFrom__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_empty__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/empty.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_from__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function merge(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>distinctUntilChanged});var _util_identity__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js");function distinctUntilChanged(comparator,keySelector){return void 0===keySelector&&(keySelector=_util_identity__WEBPACK_IMPORTED_MODULE_0__.D),comparator=null!=comparator?comparator:defaultCompare,(0,_util_lift__WEBPACK_IMPORTED_MODULE_1__.N)((function(source,subscriber){var previousKey,first=!0;source.subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(value){var currentKey=keySelector(value);!first&&comparator(previousKey,currentKey)||(first=!1,previousKey=currentKey,subscriber.next(value))})))}))}function defaultCompare(a,b){return a===b}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{b:()=>async_async,E:()=>asyncScheduler});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),Action=function(_super){function Action(scheduler,work){return _super.call(this)||this}return(0,tslib_es6.C6)(Action,_super),Action.prototype.schedule=function(state,delay){return void 0===delay&&(delay=0),this},Action}(__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subscription.js").yU),intervalProvider={setInterval:function(handler,timeout){for(var args=[],_i=2;_i{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>dateTimestampProvider});var dateTimestampProvider={now:function(){return(dateTimestampProvider.delegate||Date).now()},delegate:void 0}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>isObservable});var _Observable__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_isFunction__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");function isObservable(obj){return!!obj&&(obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__.c||(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.lift)&&(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.subscribe))}},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/formly-file-field/formly-file-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,Primary:()=>Primary,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_forms__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),_ngx_formly_core__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_formly_file_field_component__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/design/molecules/formly-file-field/formly-file-field.component.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/FormlyFileFieldComponent",component:_formly_file_field_component__WEBPACK_IMPORTED_MODULE_1__.J,args:{form:new _angular_forms__WEBPACK_IMPORTED_MODULE_2__.gE({}),model:{},options:{},fields:[{key:"file",type:"file",props:{buttonType:"SECONDARY"}}]},decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_forms__WEBPACK_IMPORTED_MODULE_2__.X1,_ngx_formly_core__WEBPACK_IMPORTED_MODULE_3__.qy.forRoot({types:[{name:"file",component:_formly_file_field_component__WEBPACK_IMPORTED_MODULE_1__.J,wrappers:["form-field"]}]})]}),(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.componentWrapperDecorator)((()=>'\n \n '))]},Default=(args=>({props:{...args}})).bind({});Default.args={};const Primary=(args=>({props:{...args,fields:[{key:"file",type:"file",props:{buttonType:"PRIMARY"}}]}})).bind({});Primary.args={};const __namedExportsOrder=["Default","Primary"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}},Primary.parameters={...Primary.parameters,docs:{...Primary.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n fields: [{\n key: 'file',\n type: 'file',\n props: {\n buttonType: 'PRIMARY'\n }\n }]\n }\n})",...Primary.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/formly-file-field/formly-file-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".disabled {\n text-decoration: line-through;\n cursor: not-allowed;\n}\n\n.file-field {\n width: fit-content;\n display: inline-block;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-formly-file-field-formly-file-field-stories.f55e5036.iframe.bundle.js b/design-molecules-formly-file-field-formly-file-field-stories.f55e5036.iframe.bundle.js
new file mode 100644
index 000000000..d451b00b5
--- /dev/null
+++ b/design-molecules-formly-file-field-formly-file-field-stories.f55e5036.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[773],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/formly-file-field/formly-file-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{J:()=>FormlyFileFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_file_field_componentngResource=__webpack_require__("./src/design/molecules/formly-file-field/formly-file-field.component.scss?ngResource"),formly_file_field_componentngResource_default=__webpack_require__.n(formly_file_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let FormlyFileFieldComponent=class FormlyFileFieldComponent extends ngx_formly_core.PU{ngOnInit(){this.buttonType=this.props.buttonType,this.fieldKind=this.props.fileFieldKind}onFileSelect(event){const files=event.target.files;if(!(files.length>0))return;const file=files[0];this.model[this.key]=file;const filePath=event.target.value;this.setModelValue(filePath)}setModelValue(filePath){const splitter=filePath.includes("\\")?"\\":"/";this.selectedFileName=filePath?.split(splitter).pop()}onButtonClick(event){event.stopPropagation();const element=this.fileInputElement.nativeElement,newClick=new MouseEvent("click",{bubbles:!1});element.dispatchEvent(newClick)}static{this.propDecorators={fileInputElement:[{type:core.ViewChild,args:["fileInputElement"]}]}}};FormlyFileFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-file-field",template:'\n
\n
\n @if (selectedFileName) {\n Currently Selected: \n {{ selectedFileName }}\n } @else {\n No File Selected\n }\n
\n
\n\n \n',standalone:!0,imports:[button_component.Q,ngx_formly_core.qy,ngx_formly_bootstrap.u,fesm2022_forms.X1],styles:[formly_file_field_componentngResource_default()]})],FormlyFileFieldComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/concat.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{h:()=>merge});var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js"),_innerFrom__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_empty__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/empty.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_from__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function merge(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>distinctUntilChanged});var _util_identity__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js");function distinctUntilChanged(comparator,keySelector){return void 0===keySelector&&(keySelector=_util_identity__WEBPACK_IMPORTED_MODULE_0__.D),comparator=null!=comparator?comparator:defaultCompare,(0,_util_lift__WEBPACK_IMPORTED_MODULE_1__.N)((function(source,subscriber){var previousKey,first=!0;source.subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(value){var currentKey=keySelector(value);!first&&comparator(previousKey,currentKey)||(first=!1,previousKey=currentKey,subscriber.next(value))})))}))}function defaultCompare(a,b){return a===b}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{b:()=>async_async,E:()=>asyncScheduler});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),Action=function(_super){function Action(scheduler,work){return _super.call(this)||this}return(0,tslib_es6.C6)(Action,_super),Action.prototype.schedule=function(state,delay){return void 0===delay&&(delay=0),this},Action}(__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subscription.js").yU),intervalProvider={setInterval:function(handler,timeout){for(var args=[],_i=2;_i{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>dateTimestampProvider});var dateTimestampProvider={now:function(){return(dateTimestampProvider.delegate||Date).now()},delegate:void 0}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>isObservable});var _Observable__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_isFunction__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");function isObservable(obj){return!!obj&&(obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__.c||(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.lift)&&(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.subscribe))}},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/formly-file-field/formly-file-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,Primary:()=>Primary,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_forms__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),_ngx_formly_core__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_formly_file_field_component__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/design/molecules/formly-file-field/formly-file-field.component.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/FormlyFileFieldComponent",component:_formly_file_field_component__WEBPACK_IMPORTED_MODULE_1__.J,args:{form:new _angular_forms__WEBPACK_IMPORTED_MODULE_2__.gE({}),model:{},options:{},fields:[{key:"file",type:"file",props:{buttonType:"SECONDARY"}}]},decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_forms__WEBPACK_IMPORTED_MODULE_2__.X1,_ngx_formly_core__WEBPACK_IMPORTED_MODULE_3__.qy.forRoot({types:[{name:"file",component:_formly_file_field_component__WEBPACK_IMPORTED_MODULE_1__.J,wrappers:["form-field"]}]})]}),(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.componentWrapperDecorator)((()=>'\n \n '))]},Default=(args=>({props:{...args}})).bind({});Default.args={};const Primary=(args=>({props:{...args,fields:[{key:"file",type:"file",props:{buttonType:"PRIMARY"}}]}})).bind({});Primary.args={};const __namedExportsOrder=["Default","Primary"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}},Primary.parameters={...Primary.parameters,docs:{...Primary.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n fields: [{\n key: 'file',\n type: 'file',\n props: {\n buttonType: 'PRIMARY'\n }\n }]\n }\n})",...Primary.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/formly-file-field/formly-file-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".disabled {\n text-decoration: line-through;\n cursor: not-allowed;\n}\n\n.file-field {\n width: fit-content;\n display: inline-block;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-icon-card-icon-card-stories.270f2867.iframe.bundle.js b/design-molecules-icon-card-icon-card-stories.270f2867.iframe.bundle.js
new file mode 100644
index 000000000..434b6f4d7
--- /dev/null
+++ b/design-molecules-icon-card-icon-card-stories.270f2867.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2441],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/molecules/icon-card/icon-card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>IconCardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_card_componentngResource=__webpack_require__("./src/design/molecules/icon-card/icon-card.component.scss?ngResource"),icon_card_componentngResource_default=__webpack_require__.n(icon_card_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),string=__webpack_require__("./src/utils/string.ts");let IconCardComponent=class IconCardComponent{constructor(){this.icon=core.input.required(),this.title=core.input.required(),this.subText=core.input.required(),this.updateDatetime=core.input.required(),this.decoration=(0,core.input)(),this._title=(0,core.computed)((()=>(0,string.mc)(this.title(),40)))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}],title:[{type:core.Input,args:[{isSignal:!0,alias:"title",required:!0,transform:void 0}]}],subText:[{type:core.Input,args:[{isSignal:!0,alias:"subText",required:!0,transform:void 0}]}],updateDatetime:[{type:core.Input,args:[{isSignal:!0,alias:"updateDatetime",required:!0,transform:void 0}]}],decoration:[{type:core.Input,args:[{isSignal:!0,alias:"decoration",required:!1,transform:void 0}]}]}}};IconCardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon-card",template:'\n @if (decoration()) {\n
\n {{ decoration() }}\n
\n }\n\n \x3c!-- Heading --\x3e\n
\n\n \x3c!-- Body --\x3e\n
\n
\n {{ _title() | titlecase }} \n
\n\n
\n {{ updateDatetime() | date }}\n
\n {{ subText() | titlecase }}\n
\n
\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,common.DatePipe,common.TitleCasePipe],styles:[icon_card_componentngResource_default()]})],IconCardComponent)},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/icon-card/icon-card.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/IconCardComponent",component:__webpack_require__("./src/design/molecules/icon-card/icon-card.component.ts").n,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({})],args:{icon:"magic",title:"Cute Doggo",subText:"Spell",updateDatetime:"2022-04-23T13:34:56.789Z"}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/icon-card/icon-card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --icon-height: 6rem;\n --icon-size: 4rem;\n}\n\n.card {\n position: relative;\n overflow: clip;\n}\n.card:hover {\n box-shadow: inset 0 0 30px var(--bs-link-hover-color);\n}\n.card-decoration {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n transform: rotate(45deg);\n width: 120px;\n height: 20px;\n top: 16px;\n right: -30px;\n font-weight: bold;\n text-align: center;\n background-color: var(--bs-dark);\n}\n.card-icon-top {\n display: flex;\n align-items: center;\n justify-content: center;\n height: var(--icon-height);\n font-size: var(--icon-size);\n}\n.card-title {\n height: 4rem;\n}\n.card-subtitle {\n margin-bottom: var(--spacer-2);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-icon-card-icon-card-stories.c79643de.iframe.bundle.js b/design-molecules-icon-card-icon-card-stories.c79643de.iframe.bundle.js
deleted file mode 100644
index e86d00d29..000000000
--- a/design-molecules-icon-card-icon-card-stories.c79643de.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2441],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/molecules/icon-card/icon-card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>IconCardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_card_componentngResource=__webpack_require__("./src/design/molecules/icon-card/icon-card.component.scss?ngResource"),icon_card_componentngResource_default=__webpack_require__.n(icon_card_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),string=__webpack_require__("./src/utils/string.ts");let IconCardComponent=class IconCardComponent{constructor(){this.icon=core.input.required(),this.title=core.input.required(),this.subText=core.input.required(),this.updateDatetime=core.input.required(),this.decoration=(0,core.input)(),this._title=(0,core.computed)((()=>(0,string.mc)(this.title(),40)))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}],title:[{type:core.Input,args:[{isSignal:!0,alias:"title",required:!0,transform:void 0}]}],subText:[{type:core.Input,args:[{isSignal:!0,alias:"subText",required:!0,transform:void 0}]}],updateDatetime:[{type:core.Input,args:[{isSignal:!0,alias:"updateDatetime",required:!0,transform:void 0}]}],decoration:[{type:core.Input,args:[{isSignal:!0,alias:"decoration",required:!1,transform:void 0}]}]}}};IconCardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon-card",template:'\n @if (decoration()) {\n
\n {{ decoration() }}\n
\n }\n\n \x3c!-- Heading --\x3e\n
\n\n \x3c!-- Body --\x3e\n
\n
\n {{ _title() | titlecase }} \n
\n\n
\n {{ updateDatetime() | date }}\n
\n {{ subText() | titlecase }}\n
\n
\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,common.DatePipe,common.TitleCasePipe],styles:[icon_card_componentngResource_default()]})],IconCardComponent)},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/icon-card/icon-card.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/IconCardComponent",component:__webpack_require__("./src/design/molecules/icon-card/icon-card.component.ts").n,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({})],args:{icon:"magic",title:"Cute Doggo",subText:"Spell",updateDatetime:"2022-04-23T13:34:56.789Z"}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/icon-card/icon-card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --icon-height: 6rem;\n --icon-size: 4rem;\n}\n\n.card {\n position: relative;\n overflow: clip;\n}\n.card:hover {\n box-shadow: inset 0 0 30px var(--bs-link-hover-color);\n}\n.card-decoration {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n transform: rotate(45deg);\n width: 120px;\n height: 20px;\n top: 16px;\n right: -30px;\n font-weight: bold;\n text-align: center;\n background-color: var(--bs-dark);\n}\n.card-icon-top {\n display: flex;\n align-items: center;\n justify-content: center;\n height: var(--icon-height);\n font-size: var(--icon-size);\n}\n.card-title {\n height: 4rem;\n}\n.card-subtitle {\n margin-bottom: var(--spacer-2);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-image-card-image-card-stories.5685c9e7.iframe.bundle.js b/design-molecules-image-card-image-card-stories.5685c9e7.iframe.bundle.js
deleted file mode 100644
index 59f66dba9..000000000
--- a/design-molecules-image-card-image-card-stories.5685c9e7.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2815],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/image-card/image-card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{f:()=>ImageCardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_card_componentngResource=__webpack_require__("./src/design/molecules/image-card/image-card.component.scss?ngResource"),image_card_componentngResource_default=__webpack_require__.n(image_card_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),merge=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/merge.js"),fromEvent=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),debounceTime=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js"),startWith=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/startWith.js"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ImageCardComponent=class ImageCardComponent{constructor(){this.serverUrl=core.input.required(),this.fallbackUrl=(0,core.input)(),this.imageUrls=core.input.required({transform:value=>value?Array.isArray(value)?value:[value]:[]}),this.link=(0,core.input)(),this.text=core.input.required(),this.alt=(0,core.input)(),this.currentImageIndex=(0,core.signal)(0),this.currentImage=(0,core.computed)((()=>this.imageUrls()[this.currentImageIndex()]??this.fallbackUrl())),this.elementRef=(0,core.inject)(core.ElementRef),this.selectorClicked$=new Subject.B,this.closeBtnClicked$=new Subject.B,this.openBtnClicked$=new Subject.B,this.inFocus=(0,rxjs_interop.ot)((0,merge.h)((0,fromEvent.R)(this.elementRef.nativeElement,"focusin").pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("focusin")))),(0,fromEvent.R)(this.elementRef.nativeElement,"focusout").pipe((0,filter.p)((event=>this.hasDataAttributeInTree(event,"[data-register-focus]"))),(0,tap.M)((evt=>console.log("focusout",evt))),(0,map.T)((()=>!1))),(0,fromEvent.R)(this.elementRef.nativeElement,"mouseenter").pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("mouseenter")))),(0,fromEvent.R)(this.elementRef.nativeElement,"mouseleave").pipe((0,map.T)((()=>!1)),(0,tap.M)((()=>console.log("mouseleave")))),(0,fromEvent.R)(this.elementRef.nativeElement,"click").pipe((0,filter.p)((event=>!this.hasDataAttributeInTree(event,"[data-ignore-click]"))),(0,map.T)((()=>!0))),this.selectorClicked$.pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("selector-click")))),this.openBtnClicked$.pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("open-click")))),this.closeBtnClicked$.pipe((0,map.T)((()=>!1)),(0,tap.M)((()=>console.log("close-click"))))).pipe((0,debounceTime.B)(50),(0,startWith.Z)(!1))),this.selectorClicked$.pipe((0,rxjs_interop.pQ)()).subscribe((({event,index})=>this.onSelectorClick(index,event)))}onSelectorClick(newIndex,event){this.currentImageIndex.set(newIndex),event.preventDefault()}hasDataAttributeInTree(event,attr){const target=event.target;if(!(target instanceof Element))return!0;return null!=target.closest(attr)}static{this.ctorParameters=()=>[]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],fallbackUrl:[{type:core.Input,args:[{isSignal:!0,alias:"fallbackUrl",required:!1,transform:void 0}]}],imageUrls:[{type:core.Input,args:[{isSignal:!0,alias:"imageUrls",required:!0,transform:void 0}]}],link:[{type:core.Input,args:[{isSignal:!0,alias:"link",required:!1,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],alt:[{type:core.Input,args:[{isSignal:!0,alias:"alt",required:!1,transform:void 0}]}]}}};ImageCardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-card",template:'\n @if (currentImage()) {\n
\n }\n
\n @if (imageUrls().length > 1) {\n
\n @for (_ of imageUrls(); track $index) {\n \n {{ $index + 1 }}\n \n }\n
\n }\n
\n \n {{ text() }}\n \n \n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[router.Wk,button_component.Q,common.AsyncPipe],host:{"[class.card--active]":"inFocus()"},styles:[image_card_componentngResource_default()]})],ImageCardComponent)},"./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{B:()=>debounceTime});var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/scheduler/async.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js");function debounceTime(dueTime,scheduler){return void 0===scheduler&&(scheduler=_scheduler_async__WEBPACK_IMPORTED_MODULE_0__.E),(0,_util_lift__WEBPACK_IMPORTED_MODULE_1__.N)((function(source,subscriber){var activeTask=null,lastValue=null,lastTime=null,emit=function(){if(activeTask){activeTask.unsubscribe(),activeTask=null;var value=lastValue;lastValue=null,subscriber.next(value)}};function emitWhenIdle(){var targetTime=lastTime+dueTime,now=scheduler.now();if(now{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/ImageCardComponent",component:__webpack_require__("./src/design/molecules/image-card/image-card.component.ts").f,args:{serverUrl:"https://images.dog.ceo",imageUrl:"/breeds/malinois/n02105162_1572.jpg",text:"Cute Doggo",alt:"A cute little doggo"}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/image-card/image-card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n position: relative;\n display: block;\n}\n\n.card {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.card--active {\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 3;\n box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 0, 0, 0.6), 0 10px 20px rgba(0, 0, 0, 0.8);\n}\n@media (min-width: 992px) {\n .card--active {\n transition: transform ease-in-out 0.2s;\n transform: scale(1.2);\n }\n}\n.card--active .card__img-container {\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n.card--active .card__img-link {\n flex: 1;\n display: flex;\n}\n.card--active .card-img-top {\n max-width: 100%;\n height: 40vh;\n max-height: unset;\n object-fit: scale-down;\n object-position: top;\n}\n.card--active .card-body {\n flex: unset;\n}\n.card-body {\n padding: var(--spacer-3);\n}\n.card-title {\n margin-bottom: var(--spacer-0);\n text-align: center;\n}\n@media (min-width: 768px) {\n .card__title-link {\n text-decoration: none;\n }\n}\n.card__img-container {\n flex: 1;\n position: relative;\n}\n.card-img-top {\n object-fit: cover;\n max-height: 7rem;\n transition: 0.5s height;\n}\n.card__img-close-btn {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n top: var(--spacer-2);\n right: var(--spacer-2);\n background-color: var(--bs-dark);\n --btn-pad: var(--spacer-2);\n padding: var(--btn-pad) var(--btn-pad) var(--btn-pad) calc(var(--btn-pad) + 0.25rem);\n border-radius: 50%;\n z-index: 2;\n}\n@media (min-width: 768px) {\n .card__img-close-btn {\n display: none;\n }\n}\n.card__img-selectors {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n margin-top: var(--spacer-2);\n margin-bottom: var(--spacer-2);\n gap: var(--spacer-2);\n}\n.card__img-selector {\n border-radius: 50%;\n padding: var(--spacer-1) var(--spacer-2);\n border: var(--bs-dark) 2px solid;\n background-color: var(--bs-secondary);\n}\n.card__img-selector--active {\n background-color: var(--bs-dark);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-image-card-image-card-stories.a8d9bbe7.iframe.bundle.js b/design-molecules-image-card-image-card-stories.a8d9bbe7.iframe.bundle.js
new file mode 100644
index 000000000..befd5a203
--- /dev/null
+++ b/design-molecules-image-card-image-card-stories.a8d9bbe7.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2815],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/image-card/image-card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{f:()=>ImageCardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_card_componentngResource=__webpack_require__("./src/design/molecules/image-card/image-card.component.scss?ngResource"),image_card_componentngResource_default=__webpack_require__.n(image_card_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),merge=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/merge.js"),fromEvent=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),debounceTime=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js"),startWith=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/startWith.js"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ImageCardComponent=class ImageCardComponent{constructor(){this.serverUrl=core.input.required(),this.fallbackUrl=(0,core.input)(),this.imageUrls=core.input.required({transform:value=>value?Array.isArray(value)?value:[value]:[]}),this.link=(0,core.input)(),this.text=core.input.required(),this.alt=(0,core.input)(),this.currentImageIndex=(0,core.signal)(0),this.currentImage=(0,core.computed)((()=>this.imageUrls()[this.currentImageIndex()]??this.fallbackUrl())),this.elementRef=(0,core.inject)(core.ElementRef),this.selectorClicked$=new Subject.B,this.closeBtnClicked$=new Subject.B,this.openBtnClicked$=new Subject.B,this.inFocus=(0,rxjs_interop.ot)((0,merge.h)((0,fromEvent.R)(this.elementRef.nativeElement,"focusin").pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("focusin")))),(0,fromEvent.R)(this.elementRef.nativeElement,"focusout").pipe((0,filter.p)((event=>this.hasDataAttributeInTree(event,"[data-register-focus]"))),(0,tap.M)((evt=>console.log("focusout",evt))),(0,map.T)((()=>!1))),(0,fromEvent.R)(this.elementRef.nativeElement,"mouseenter").pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("mouseenter")))),(0,fromEvent.R)(this.elementRef.nativeElement,"mouseleave").pipe((0,map.T)((()=>!1)),(0,tap.M)((()=>console.log("mouseleave")))),(0,fromEvent.R)(this.elementRef.nativeElement,"click").pipe((0,filter.p)((event=>!this.hasDataAttributeInTree(event,"[data-ignore-click]"))),(0,map.T)((()=>!0))),this.selectorClicked$.pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("selector-click")))),this.openBtnClicked$.pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("open-click")))),this.closeBtnClicked$.pipe((0,map.T)((()=>!1)),(0,tap.M)((()=>console.log("close-click"))))).pipe((0,debounceTime.B)(50),(0,startWith.Z)(!1))),this.selectorClicked$.pipe((0,rxjs_interop.pQ)()).subscribe((({event,index})=>this.onSelectorClick(index,event)))}onSelectorClick(newIndex,event){this.currentImageIndex.set(newIndex),event.preventDefault()}hasDataAttributeInTree(event,attr){const target=event.target;if(!(target instanceof Element))return!0;return null!=target.closest(attr)}static{this.ctorParameters=()=>[]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],fallbackUrl:[{type:core.Input,args:[{isSignal:!0,alias:"fallbackUrl",required:!1,transform:void 0}]}],imageUrls:[{type:core.Input,args:[{isSignal:!0,alias:"imageUrls",required:!0,transform:void 0}]}],link:[{type:core.Input,args:[{isSignal:!0,alias:"link",required:!1,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],alt:[{type:core.Input,args:[{isSignal:!0,alias:"alt",required:!1,transform:void 0}]}]}}};ImageCardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-card",template:'\n @if (currentImage()) {\n
\n }\n
\n @if (imageUrls().length > 1) {\n
\n @for (_ of imageUrls(); track $index) {\n \n {{ $index + 1 }}\n \n }\n
\n }\n
\n \n {{ text() }}\n \n \n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[router.Wk,button_component.Q,common.AsyncPipe],host:{"[class.card--active]":"inFocus()"},styles:[image_card_componentngResource_default()]})],ImageCardComponent)},"./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{B:()=>debounceTime});var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/scheduler/async.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js");function debounceTime(dueTime,scheduler){return void 0===scheduler&&(scheduler=_scheduler_async__WEBPACK_IMPORTED_MODULE_0__.E),(0,_util_lift__WEBPACK_IMPORTED_MODULE_1__.N)((function(source,subscriber){var activeTask=null,lastValue=null,lastTime=null,emit=function(){if(activeTask){activeTask.unsubscribe(),activeTask=null;var value=lastValue;lastValue=null,subscriber.next(value)}};function emitWhenIdle(){var targetTime=lastTime+dueTime,now=scheduler.now();if(now{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/ImageCardComponent",component:__webpack_require__("./src/design/molecules/image-card/image-card.component.ts").f,args:{serverUrl:"https://images.dog.ceo",imageUrl:"/breeds/malinois/n02105162_1572.jpg",text:"Cute Doggo",alt:"A cute little doggo"}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/image-card/image-card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n position: relative;\n display: block;\n}\n\n.card {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.card--active {\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 3;\n box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 0, 0, 0.6), 0 10px 20px rgba(0, 0, 0, 0.8);\n}\n@media (min-width: 992px) {\n .card--active {\n transition: transform ease-in-out 0.2s;\n transform: scale(1.2);\n }\n}\n.card--active .card__img-container {\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n.card--active .card__img-link {\n flex: 1;\n display: flex;\n}\n.card--active .card-img-top {\n max-width: 100%;\n height: 40vh;\n max-height: unset;\n object-fit: scale-down;\n object-position: top;\n}\n.card--active .card-body {\n flex: unset;\n}\n.card-body {\n padding: var(--spacer-3);\n}\n.card-title {\n margin-bottom: var(--spacer-0);\n text-align: center;\n}\n@media (min-width: 768px) {\n .card__title-link {\n text-decoration: none;\n }\n}\n.card__img-container {\n flex: 1;\n position: relative;\n}\n.card-img-top {\n object-fit: cover;\n max-height: 7rem;\n transition: 0.5s height;\n}\n.card__img-close-btn {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n top: var(--spacer-2);\n right: var(--spacer-2);\n background-color: var(--bs-dark);\n --btn-pad: var(--spacer-2);\n padding: var(--btn-pad) var(--btn-pad) var(--btn-pad) calc(var(--btn-pad) + 0.25rem);\n border-radius: 50%;\n z-index: 2;\n}\n@media (min-width: 768px) {\n .card__img-close-btn {\n display: none;\n }\n}\n.card__img-selectors {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n margin-top: var(--spacer-2);\n margin-bottom: var(--spacer-2);\n gap: var(--spacer-2);\n}\n.card__img-selector {\n border-radius: 50%;\n padding: var(--spacer-1) var(--spacer-2);\n border: var(--bs-dark) 2px solid;\n background-color: var(--bs-secondary);\n}\n.card__img-selector--active {\n background-color: var(--bs-dark);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-link-entry-link-entry-stories.b56a979a.iframe.bundle.js b/design-molecules-link-entry-link-entry-stories.b56a979a.iframe.bundle.js
deleted file mode 100644
index f91d56b8d..000000000
--- a/design-molecules-link-entry-link-entry-stories.b56a979a.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2525],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/link-entry/link-entry.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>LinkEntryComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var link_entry_componentngResource=__webpack_require__("./src/design/molecules/link-entry/link-entry.component.scss?ngResource"),link_entry_componentngResource_default=__webpack_require__.n(link_entry_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let LinkEntryComponent=class LinkEntryComponent{constructor(){this.entry=core.input.required(),this.canDelete=(0,core.input)(!1),this.deleteMessage=(0,core.input)("Delete entry?"),this.delete=new core.EventEmitter,this.linkClick=new core.EventEmitter,this.state=(0,core.signal)("DISPLAY")}changeState(newState){this.state.set(newState)}static{this.propDecorators={entry:[{type:core.Input,args:[{isSignal:!0,alias:"entry",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],deleteMessage:[{type:core.Input,args:[{isSignal:!0,alias:"deleteMessage",required:!1,transform:void 0}]}],delete:[{type:core.Output}],linkClick:[{type:core.Output}]}}};LinkEntryComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-link-entry",template:'\n \n
\n\n\n \x3c!-- Entry Linktext --\x3e\n \n {{ entry().linkText }}\n \n\n \x3c!-- Entry Name --\x3e\n \n {{ entry().label }}\n
\n\n \x3c!-- Delete Entry --\x3e\n \n @if (canDelete()) {\n \n }\n
\n \n\n\n \n \n {{ deleteMessage() }}\n \n \n \n
\n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,common.NgTemplateOutlet],styles:[link_entry_componentngResource_default()]})],LinkEntryComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/link-entry/link-entry.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/LinkEntryComponent",component:__webpack_require__("./src/design/molecules/link-entry/link-entry.component.ts").i,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({})],args:{canDelete:!0,columnSizes:[3,8,1],entry:{label:"Some Label",linkText:"Link me to thing",value:{x:"Super value"}}}},Default=(args=>({props:{...args,delete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("delete"),linkClick:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("linkClick")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n delete: action('delete'),\n linkClick: action('linkClick')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/link-entry/link-entry.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".linkentry {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: var(--spacer-4);\n}\n.linkentry--delete {\n justify-content: center;\n}\n.linkentry__link {\n text-align: end;\n cursor: pointer;\n}\n.linkentry__label {\n flex: 1;\n text-align: start;\n text-overflow: ellipsis;\n}\n.linkentry__box {\n background-color: var(--bs-secondary);\n padding: var(--spacer-2);\n}\n.linkentry__delete {\n display: flex;\n justify-content: flex-end;\n}\n.linkentry__delete-button {\n width: fit-content;\n display: inline-block;\n}\n\n.box {\n display: flex;\n flex-direction: row;\n width: fit-content;\n border-radius: var(--bs-border-radius);\n border-color: var(--bs-danger);\n border-style: solid;\n border-width: 1px;\n}\n.box__message {\n font-weight: bold;\n}\n.box__button {\n width: fit-content;\n margin-left: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-link-entry-link-entry-stories.d967e891.iframe.bundle.js b/design-molecules-link-entry-link-entry-stories.d967e891.iframe.bundle.js
new file mode 100644
index 000000000..35c32bd6f
--- /dev/null
+++ b/design-molecules-link-entry-link-entry-stories.d967e891.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2525],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/link-entry/link-entry.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>LinkEntryComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var link_entry_componentngResource=__webpack_require__("./src/design/molecules/link-entry/link-entry.component.scss?ngResource"),link_entry_componentngResource_default=__webpack_require__.n(link_entry_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let LinkEntryComponent=class LinkEntryComponent{constructor(){this.entry=core.input.required(),this.canDelete=(0,core.input)(!1),this.deleteMessage=(0,core.input)("Delete entry?"),this.delete=new core.EventEmitter,this.linkClick=new core.EventEmitter,this.state=(0,core.signal)("DISPLAY")}changeState(newState){this.state.set(newState)}static{this.propDecorators={entry:[{type:core.Input,args:[{isSignal:!0,alias:"entry",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],deleteMessage:[{type:core.Input,args:[{isSignal:!0,alias:"deleteMessage",required:!1,transform:void 0}]}],delete:[{type:core.Output}],linkClick:[{type:core.Output}]}}};LinkEntryComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-link-entry",template:'\n \n
\n\n\n \x3c!-- Entry Linktext --\x3e\n \n {{ entry().linkText }}\n \n\n \x3c!-- Entry Name --\x3e\n \n {{ entry().label }}\n
\n\n \x3c!-- Delete Entry --\x3e\n \n @if (canDelete()) {\n \n }\n
\n \n\n\n \n \n {{ deleteMessage() }}\n \n \n \n
\n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[button_component.Q,common.NgTemplateOutlet],styles:[link_entry_componentngResource_default()]})],LinkEntryComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/link-entry/link-entry.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/LinkEntryComponent",component:__webpack_require__("./src/design/molecules/link-entry/link-entry.component.ts").i,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({})],args:{canDelete:!0,columnSizes:[3,8,1],entry:{label:"Some Label",linkText:"Link me to thing",value:{x:"Super value"}}}},Default=(args=>({props:{...args,delete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("delete"),linkClick:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("linkClick")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n delete: action('delete'),\n linkClick: action('linkClick')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/link-entry/link-entry.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".linkentry {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: var(--spacer-4);\n}\n.linkentry--delete {\n justify-content: center;\n}\n.linkentry__link {\n text-align: end;\n cursor: pointer;\n}\n.linkentry__label {\n flex: 1;\n text-align: start;\n text-overflow: ellipsis;\n}\n.linkentry__box {\n background-color: var(--bs-secondary);\n padding: var(--spacer-2);\n}\n.linkentry__delete {\n display: flex;\n justify-content: flex-end;\n}\n.linkentry__delete-button {\n width: fit-content;\n display: inline-block;\n}\n\n.box {\n display: flex;\n flex-direction: row;\n width: fit-content;\n border-radius: var(--bs-border-radius);\n border-color: var(--bs-danger);\n border-style: solid;\n border-width: 1px;\n}\n.box__message {\n font-weight: bold;\n}\n.box__button {\n width: fit-content;\n margin-left: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-list-list-stories.7a1087b3.iframe.bundle.js b/design-molecules-list-list-stories.7a1087b3.iframe.bundle.js
new file mode 100644
index 000000000..4b9d8c83a
--- /dev/null
+++ b/design-molecules-list-list-stories.7a1087b3.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2291],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/list/list.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{s:()=>ListComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var list_componentngResource=__webpack_require__("./src/design/molecules/list/list.component.scss?ngResource"),list_componentngResource_default=__webpack_require__.n(list_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ListComponent=class ListComponent{constructor(){this.heading=core.input.required(),this.entries=core.input.required(),this.enableCreate=(0,core.input)(!1),this.emptyListText=(0,core.input)("No entries yet"),this.create=new core.EventEmitter}onCreateButtonClick(){this.enableCreate()&&this.create.emit()}static{this.propDecorators={heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!0,transform:void 0}]}],entries:[{type:core.Input,args:[{isSignal:!0,alias:"entries",required:!0,transform:void 0}]}],enableCreate:[{type:core.Input,args:[{isSignal:!0,alias:"enableCreate",required:!1,transform:void 0}]}],emptyListText:[{type:core.Input,args:[{isSignal:!0,alias:"emptyListText",required:!1,transform:void 0}]}],create:[{type:core.Output}]}}};ListComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-list",template:'\n \x3c!-- Heading --\x3e\n
\n
{{ heading() }} \n @if (enableCreate()) {\n \n }\n \n\n \x3c!-- List --\x3e\n @if (entries() && entries().length > 0) {\n
\n } @else {\n
\n {{ emptyListText() }}\n
\n }\n
\n',standalone:!0,imports:[button_component.Q,router.Wk],styles:[list_componentngResource_default()]})],ListComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/molecules/list/list.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoCreate:()=>NoCreate,NoEntries:()=>NoEntries,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/ListComponent",component:__webpack_require__("./src/design/molecules/list/list.component.ts").s,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_3__.c]})],args:{enableCreate:!0,heading:"Heading text",createLabel:"Create Entry",entries:[{label:"Home",link:"/"},{label:"About",link:"/about"},{label:"Contact",link:"/contact"},{label:"Blog",link:"/blog"},{label:"Services",link:"/services"},{label:"Products",link:"/products"},{label:"Team",link:"/team"},{label:"Careers",link:"/careers"},{label:"Portfolio",link:"/portfolio"},{label:"FAQ",link:"/faq"},{label:"Events",link:"/events"},{label:"Terms of Service",link:"/terms"},{label:"Privacy Policy",link:"/privacy"},{label:"Support",link:"/support"},{label:"Feedback",link:"/feedback"},{label:"Documentation",link:"/docs"},{label:"Community",link:"/community"},{label:"Login",link:"/login"},{label:"Register",link:"/register"},{label:"Logout",link:"/logout"}]}},Template=args=>({props:{...args,create:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("create")}}),Default=Template.bind({});Default.args={};const NoCreate=Template.bind({});NoCreate.args={enableCreate:!1};const NoEntries=Template.bind({});NoEntries.args={entries:[]};const __namedExportsOrder=["Default","NoCreate","NoEntries"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...Default.parameters?.docs?.source}}},NoCreate.parameters={...NoCreate.parameters,docs:{...NoCreate.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...NoCreate.parameters?.docs?.source}}},NoEntries.parameters={...NoEntries.parameters,docs:{...NoEntries.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...NoEntries.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/list/list.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".list__heading {\n display: flex;\n flex-direction: row;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-list-list-stories.d04ad21c.iframe.bundle.js b/design-molecules-list-list-stories.d04ad21c.iframe.bundle.js
deleted file mode 100644
index bcf92fa45..000000000
--- a/design-molecules-list-list-stories.d04ad21c.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2291],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/list/list.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{s:()=>ListComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var list_componentngResource=__webpack_require__("./src/design/molecules/list/list.component.scss?ngResource"),list_componentngResource_default=__webpack_require__.n(list_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ListComponent=class ListComponent{constructor(){this.heading=core.input.required(),this.entries=core.input.required(),this.enableCreate=(0,core.input)(!1),this.emptyListText=(0,core.input)("No entries yet"),this.create=new core.EventEmitter}onCreateButtonClick(){this.enableCreate()&&this.create.emit()}static{this.propDecorators={heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!0,transform:void 0}]}],entries:[{type:core.Input,args:[{isSignal:!0,alias:"entries",required:!0,transform:void 0}]}],enableCreate:[{type:core.Input,args:[{isSignal:!0,alias:"enableCreate",required:!1,transform:void 0}]}],emptyListText:[{type:core.Input,args:[{isSignal:!0,alias:"emptyListText",required:!1,transform:void 0}]}],create:[{type:core.Output}]}}};ListComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-list",template:'\n \x3c!-- Heading --\x3e\n
\n
{{ heading() }} \n @if (enableCreate()) {\n \n }\n \n\n \x3c!-- List --\x3e\n @if (entries() && entries().length > 0) {\n
\n } @else {\n
\n {{ emptyListText() }}\n
\n }\n
\n',standalone:!0,imports:[button_component.Q,router.Wk],styles:[list_componentngResource_default()]})],ListComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/molecules/list/list.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoCreate:()=>NoCreate,NoEntries:()=>NoEntries,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/ListComponent",component:__webpack_require__("./src/design/molecules/list/list.component.ts").s,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_3__.c]})],args:{enableCreate:!0,heading:"Heading text",createLabel:"Create Entry",entries:[{label:"Home",link:"/"},{label:"About",link:"/about"},{label:"Contact",link:"/contact"},{label:"Blog",link:"/blog"},{label:"Services",link:"/services"},{label:"Products",link:"/products"},{label:"Team",link:"/team"},{label:"Careers",link:"/careers"},{label:"Portfolio",link:"/portfolio"},{label:"FAQ",link:"/faq"},{label:"Events",link:"/events"},{label:"Terms of Service",link:"/terms"},{label:"Privacy Policy",link:"/privacy"},{label:"Support",link:"/support"},{label:"Feedback",link:"/feedback"},{label:"Documentation",link:"/docs"},{label:"Community",link:"/community"},{label:"Login",link:"/login"},{label:"Register",link:"/register"},{label:"Logout",link:"/logout"}]}},Template=args=>({props:{...args,create:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("create")}}),Default=Template.bind({});Default.args={};const NoCreate=Template.bind({});NoCreate.args={enableCreate:!1};const NoEntries=Template.bind({});NoEntries.args={entries:[]};const __namedExportsOrder=["Default","NoCreate","NoEntries"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...Default.parameters?.docs?.source}}},NoCreate.parameters={...NoCreate.parameters,docs:{...NoCreate.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...NoCreate.parameters?.docs?.source}}},NoEntries.parameters={...NoEntries.parameters,docs:{...NoEntries.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...NoEntries.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/list/list.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".list__heading {\n display: flex;\n flex-direction: row;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-search-field-search-field-stories.5c189753.iframe.bundle.js b/design-molecules-search-field-search-field-stories.5c189753.iframe.bundle.js
deleted file mode 100644
index 484c49c61..000000000
--- a/design-molecules-search-field-search-field-stories.5c189753.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6277],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/search-field/search-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{q:()=>SearchFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var search_field_componentngResource=__webpack_require__("./src/design/molecules/search-field/search-field.component.scss?ngResource"),search_field_componentngResource_default=__webpack_require__.n(search_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let SearchFieldComponent=class SearchFieldComponent{constructor(){this.NON_NORMAL_CHARACTER_REGEXP=/[^a-zA-Z0-9']/g,this.TWO_OR_MORE_WHITESPACE_REGEXP=/\s\s+/g,this.placeholder=(0,core.input)("Enter Search Query"),this.btnAriaLabel=(0,core.input)("Trigger a search"),this.appSearch=new core.EventEmitter,this.searchString=""}startSearch(){null!=this.searchString&&(this.searchString=this.cleanText(this.searchString),null!=this.searchString&&""!==this.searchString&&(console.log("Emit with",this.searchString),this.appSearch.emit(this.searchString)))}cleanText(str){return str.replace(this.NON_NORMAL_CHARACTER_REGEXP," ").trim().replace(this.TWO_OR_MORE_WHITESPACE_REGEXP," ")}static{this.propDecorators={placeholder:[{type:core.Input,args:[{isSignal:!0,alias:"placeholder",required:!1,transform:void 0}]}],btnAriaLabel:[{type:core.Input,args:[{isSignal:!0,alias:"btnAriaLabel",required:!1,transform:void 0}]}],appSearch:[{type:core.Output}]}}};SearchFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-search-field",template:'\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[button_component.Q,fesm2022_forms.YN],styles:[search_field_componentngResource_default()]})],SearchFieldComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/search-field/search-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/SearchFieldComponent",component:__webpack_require__("./src/design/molecules/search-field/search-field.component.ts").q,args:{}},Default=(args=>({props:{...args,search:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("search")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/search-field/search-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"/* SEARCHBAR CSS */\ninput[type=search]::-webkit-search-decoration,\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-results-button,\ninput[type=search]::-webkit-search-results-decoration {\n display: none;\n}\n\n.search {\n margin-bottom: var(--spacer-4);\n}\n.search__form {\n flex: 1;\n}\n.search__bar {\n display: flex;\n align-items: center;\n background-color: var(--bs-gray-800);\n padding-left: var(--spacer-2);\n border-color: var(--bs-white);\n border: solid 2px var(--bs-white);\n border-radius: var(--bs-border-radius);\n}\n.search__input {\n background-color: var(--bs-gray-800);\n border: none;\n outline: none;\n width: 100%;\n padding: var(--spacer-2);\n color: var(--bs-white);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-search-field-search-field-stories.b3c7c0ef.iframe.bundle.js b/design-molecules-search-field-search-field-stories.b3c7c0ef.iframe.bundle.js
new file mode 100644
index 000000000..31937abe9
--- /dev/null
+++ b/design-molecules-search-field-search-field-stories.b3c7c0ef.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6277],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/search-field/search-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{q:()=>SearchFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var search_field_componentngResource=__webpack_require__("./src/design/molecules/search-field/search-field.component.scss?ngResource"),search_field_componentngResource_default=__webpack_require__.n(search_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let SearchFieldComponent=class SearchFieldComponent{constructor(){this.NON_NORMAL_CHARACTER_REGEXP=/[^a-zA-Z0-9']/g,this.TWO_OR_MORE_WHITESPACE_REGEXP=/\s\s+/g,this.placeholder=(0,core.input)("Enter Search Query"),this.btnAriaLabel=(0,core.input)("Trigger a search"),this.appSearch=new core.EventEmitter,this.searchString=""}startSearch(){null!=this.searchString&&(this.searchString=this.cleanText(this.searchString),null!=this.searchString&&""!==this.searchString&&(console.log("Emit with",this.searchString),this.appSearch.emit(this.searchString)))}cleanText(str){return str.replace(this.NON_NORMAL_CHARACTER_REGEXP," ").trim().replace(this.TWO_OR_MORE_WHITESPACE_REGEXP," ")}static{this.propDecorators={placeholder:[{type:core.Input,args:[{isSignal:!0,alias:"placeholder",required:!1,transform:void 0}]}],btnAriaLabel:[{type:core.Input,args:[{isSignal:!0,alias:"btnAriaLabel",required:!1,transform:void 0}]}],appSearch:[{type:core.Output}]}}};SearchFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-search-field",template:'\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[button_component.Q,fesm2022_forms.YN],styles:[search_field_componentngResource_default()]})],SearchFieldComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/search-field/search-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/SearchFieldComponent",component:__webpack_require__("./src/design/molecules/search-field/search-field.component.ts").q,args:{}},Default=(args=>({props:{...args,search:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("search")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/search-field/search-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"/* SEARCHBAR CSS */\ninput[type=search]::-webkit-search-decoration,\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-results-button,\ninput[type=search]::-webkit-search-results-decoration {\n display: none;\n}\n\n.search {\n margin-bottom: var(--spacer-4);\n}\n.search__form {\n flex: 1;\n}\n.search__bar {\n display: flex;\n align-items: center;\n background-color: var(--bs-gray-800);\n padding-left: var(--spacer-2);\n border-color: var(--bs-white);\n border: solid 2px var(--bs-white);\n border-radius: var(--bs-border-radius);\n}\n.search__input {\n background-color: var(--bs-gray-800);\n border: none;\n outline: none;\n width: 100%;\n padding: var(--spacer-2);\n color: var(--bs-white);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-sidebar-legend-sidebar-legend-stories.14596eb4.iframe.bundle.js b/design-molecules-sidebar-legend-sidebar-legend-stories.14596eb4.iframe.bundle.js
deleted file mode 100644
index 00e434229..000000000
--- a/design-molecules-sidebar-legend-sidebar-legend-stories.14596eb4.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[1875],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/molecules/_models/search-preferences.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{y:()=>DEFAULT_SEARCH_PREFERENCES});const DEFAULT_SEARCH_PREFERENCES=[{label:"Character",active:!1,color:"--character-color"},{label:"Creature",active:!1,color:"--creature-color"},{label:"Diaryentry",active:!1,color:"--diaryentry-color"},{label:"Encounter",active:!1,color:"--encounter-color"},{label:"Item",active:!1,color:"--item-color"},{label:"Location",active:!1,color:"--location-color"},{label:"Map",active:!1,color:"--map-color"},{label:"Organization",active:!1,color:"--organization-color"},{label:"Quest",active:!1,color:"--quest-color"},{label:"SessionAudio",active:!1,color:"--sessionaudio-color"},{label:"Rules",active:!1,color:"--rules-color"},{label:"Spell",active:!1,color:"--spell-color"}]},"./src/design/molecules/sidebar-legend/sidebar-legend.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{N:()=>SidebarLegendComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var sidebar_legend_componentngResource=__webpack_require__("./src/design/molecules/sidebar-legend/sidebar-legend.component.scss?ngResource"),sidebar_legend_componentngResource_default=__webpack_require__.n(sidebar_legend_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");var selectable_entry_componentngResource=__webpack_require__("./src/design/atoms/selectable-entry/selectable-entry.component.scss?ngResource"),selectable_entry_componentngResource_default=__webpack_require__.n(selectable_entry_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let SelectableEntryComponent=class SelectableEntryComponent{constructor(){this.label=core.input.required(),this.isSelectable=(0,core.input)(!1),this.isActive=(0,core.input)(!1),this.borderColorVar=(0,core.input)("secondary"),this.entryClick=(0,core.output)()}static{this.propDecorators={label:[{type:core.Input,args:[{isSignal:!0,alias:"label",required:!0,transform:void 0}]}],isSelectable:[{type:core.Input,args:[{isSignal:!0,alias:"isSelectable",required:!1,transform:void 0}]}],isActive:[{type:core.Input,args:[{isSignal:!0,alias:"isActive",required:!1,transform:void 0}]}],borderColorVar:[{type:core.Input,args:[{isSignal:!0,alias:"borderColorVar",required:!1,transform:void 0}]}],entryClick:[{type:core.Output,args:["entryClick"]}]}}};SelectableEntryComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-selectable-entry",standalone:!0,imports:[common.NgClass,icon_component.R,common.NgTemplateOutlet],template:'@if (isSelectable()) {\n \n \n \n} @else {\n \n}\n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[selectable_entry_componentngResource_default()]})],SelectableEntryComponent);var search_preferences=__webpack_require__("./src/design/molecules/_models/search-preferences.ts");let SidebarLegendComponent=class SidebarLegendComponent{constructor(){this.interactable=(0,core.input)(!1),this.sidebarEntries=(0,core.input)(search_preferences.y),this.sidebarChange=new core.EventEmitter}onSidebarEntryClick(clickedOptionIndex){if(!this.interactable)return;const entry=this.sidebarEntries()[clickedOptionIndex];entry.active=!entry.active,this.sidebarChange.emit(this.sidebarEntries())}static{this.ctorParameters=()=>[]}static{this.propDecorators={interactable:[{type:core.Input,args:[{isSignal:!0,alias:"interactable",required:!1,transform:void 0}]}],sidebarEntries:[{type:core.Input,args:[{isSignal:!0,alias:"sidebarEntries",required:!1,transform:void 0}]}],sidebarChange:[{type:core.Output}]}}};SidebarLegendComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-sidebar-legend",template:'\n
\n @for (option of sidebarEntries(); track $index) {\n
\n }\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[SelectableEntryComponent],styles:[sidebar_legend_componentngResource_default()]})],SidebarLegendComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/sidebar-legend/sidebar-legend.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_models_search_preferences__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/design/molecules/_models/search-preferences.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/SidebarLegendComponent",component:__webpack_require__("./src/design/molecules/sidebar-legend/sidebar-legend.component.ts").N,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({})],args:{interactable:!0,sidebarEntries:_models_search_preferences__WEBPACK_IMPORTED_MODULE_2__.y},parameters:{backgrounds:{default:"grey"}}},Default=(args=>({props:{...args,sidebarChange:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("sidebarChange")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sidebarChange: action('sidebarChange')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/selectable-entry/selectable-entry.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".sidebar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: var(--spacer-2);\n padding-bottom: var(--spacer-2);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n}\n\n.sidebar-border {\n display: flex;\n border-left: solid 10px;\n}\n\nbutton {\n outline: unset;\n}\nbutton:hover {\n color: var(--bs-white);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/sidebar-legend/sidebar-legend.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".row-entry {\n padding: 0;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-sidebar-legend-sidebar-legend-stories.5a3259c0.iframe.bundle.js b/design-molecules-sidebar-legend-sidebar-legend-stories.5a3259c0.iframe.bundle.js
new file mode 100644
index 000000000..ca291b64a
--- /dev/null
+++ b/design-molecules-sidebar-legend-sidebar-legend-stories.5a3259c0.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[1875],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/molecules/_models/search-preferences.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{y:()=>DEFAULT_SEARCH_PREFERENCES});const DEFAULT_SEARCH_PREFERENCES=[{label:"Character",active:!1,color:"--character-color"},{label:"Creature",active:!1,color:"--creature-color"},{label:"Diaryentry",active:!1,color:"--diaryentry-color"},{label:"Encounter",active:!1,color:"--encounter-color"},{label:"Item",active:!1,color:"--item-color"},{label:"Location",active:!1,color:"--location-color"},{label:"Map",active:!1,color:"--map-color"},{label:"Organization",active:!1,color:"--organization-color"},{label:"Quest",active:!1,color:"--quest-color"},{label:"SessionAudio",active:!1,color:"--sessionaudio-color"},{label:"Rules",active:!1,color:"--rules-color"},{label:"Spell",active:!1,color:"--spell-color"}]},"./src/design/molecules/sidebar-legend/sidebar-legend.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{N:()=>SidebarLegendComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var sidebar_legend_componentngResource=__webpack_require__("./src/design/molecules/sidebar-legend/sidebar-legend.component.scss?ngResource"),sidebar_legend_componentngResource_default=__webpack_require__.n(sidebar_legend_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");var selectable_entry_componentngResource=__webpack_require__("./src/design/atoms/selectable-entry/selectable-entry.component.scss?ngResource"),selectable_entry_componentngResource_default=__webpack_require__.n(selectable_entry_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let SelectableEntryComponent=class SelectableEntryComponent{constructor(){this.label=core.input.required(),this.isSelectable=(0,core.input)(!1),this.isActive=(0,core.input)(!1),this.borderColorVar=(0,core.input)("secondary"),this.entryClick=(0,core.output)()}static{this.propDecorators={label:[{type:core.Input,args:[{isSignal:!0,alias:"label",required:!0,transform:void 0}]}],isSelectable:[{type:core.Input,args:[{isSignal:!0,alias:"isSelectable",required:!1,transform:void 0}]}],isActive:[{type:core.Input,args:[{isSignal:!0,alias:"isActive",required:!1,transform:void 0}]}],borderColorVar:[{type:core.Input,args:[{isSignal:!0,alias:"borderColorVar",required:!1,transform:void 0}]}],entryClick:[{type:core.Output,args:["entryClick"]}]}}};SelectableEntryComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-selectable-entry",standalone:!0,imports:[common.NgClass,icon_component.R,common.NgTemplateOutlet],template:'@if (isSelectable()) {\n \n \n \n} @else {\n \n}\n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[selectable_entry_componentngResource_default()]})],SelectableEntryComponent);var search_preferences=__webpack_require__("./src/design/molecules/_models/search-preferences.ts");let SidebarLegendComponent=class SidebarLegendComponent{constructor(){this.interactable=(0,core.input)(!1),this.sidebarEntries=(0,core.input)(search_preferences.y),this.sidebarChange=new core.EventEmitter}onSidebarEntryClick(clickedOptionIndex){if(!this.interactable)return;const entry=this.sidebarEntries()[clickedOptionIndex];entry.active=!entry.active,this.sidebarChange.emit(this.sidebarEntries())}static{this.ctorParameters=()=>[]}static{this.propDecorators={interactable:[{type:core.Input,args:[{isSignal:!0,alias:"interactable",required:!1,transform:void 0}]}],sidebarEntries:[{type:core.Input,args:[{isSignal:!0,alias:"sidebarEntries",required:!1,transform:void 0}]}],sidebarChange:[{type:core.Output}]}}};SidebarLegendComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-sidebar-legend",template:'\n
\n @for (option of sidebarEntries(); track $index) {\n
\n }\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[SelectableEntryComponent],styles:[sidebar_legend_componentngResource_default()]})],SidebarLegendComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./src/design/molecules/sidebar-legend/sidebar-legend.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_models_search_preferences__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/design/molecules/_models/search-preferences.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/SidebarLegendComponent",component:__webpack_require__("./src/design/molecules/sidebar-legend/sidebar-legend.component.ts").N,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({})],args:{interactable:!0,sidebarEntries:_models_search_preferences__WEBPACK_IMPORTED_MODULE_2__.y},parameters:{backgrounds:{default:"grey"}}},Default=(args=>({props:{...args,sidebarChange:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("sidebarChange")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sidebarChange: action('sidebarChange')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/selectable-entry/selectable-entry.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".sidebar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: var(--spacer-2);\n padding-bottom: var(--spacer-2);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n}\n\n.sidebar-border {\n display: flex;\n border-left: solid 10px;\n}\n\nbutton {\n outline: unset;\n}\nbutton:hover {\n color: var(--bs-white);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/sidebar-legend/sidebar-legend.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".row-entry {\n padding: 0;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-small-create-form-small-create-form-stories.9ed15931.iframe.bundle.js b/design-molecules-small-create-form-small-create-form-stories.9ed15931.iframe.bundle.js
new file mode 100644
index 000000000..229b65f04
--- /dev/null
+++ b/design-molecules-small-create-form-small-create-form-stories.9ed15931.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5345],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/badge/badge.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>BadgeComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var badge_componentngResource=__webpack_require__("./src/design/atoms/badge/badge.component.scss?ngResource"),badge_componentngResource_default=__webpack_require__.n(badge_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let BadgeComponent=class BadgeComponent{constructor(){this.kind=core.input.required(),this.text=core.input.required(),this.icon=(0,core.input)(),this.clickable=(0,core.input)(!1),this.badgeClick=new core.EventEmitter}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],clickable:[{type:core.Input,args:[{isSignal:!0,alias:"clickable",required:!1,transform:void 0}]}],badgeClick:[{type:core.Output}]}}};BadgeComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-badge",template:"@if (clickable()) {\n \n \n \n} @else {\n \n}\n\n\n \n @let iconVal = icon();\n @if (iconVal) {\n
\n }\n {{ text() }}\n
\n \n",standalone:!0,imports:[common.NgTemplateOutlet,common.NgClass,icon_component.R],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[badge_componentngResource_default()]})],BadgeComponent)},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/small-create-form/small-create-form.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>SmallCreateFormComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var small_create_form_componentngResource=__webpack_require__("./src/design/molecules/small-create-form/small-create-form.component.scss?ngResource"),small_create_form_componentngResource_default=__webpack_require__.n(small_create_form_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),badge_component=__webpack_require__("./src/design/atoms/badge/badge.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let SmallCreateFormComponent=class SmallCreateFormComponent{constructor(){this.options=core.input.required(),this.labelProp=core.input.required(),this.badgeText=(0,core.input)("Add Entry"),this.valueProp=core.input.required(),this.submitButtonType=(0,core.input)("PRIMARY"),this.cancelButtonType=(0,core.input)("SECONDARY"),this.create=new core.EventEmitter,this.selectFieldName=(0,core.computed)((()=>`select-' + ${String(this.labelProp())}`)),this.form=new fesm2022_forms.gE({}),this.userModel={},this.state=(0,core.signal)("DISPLAY")}changeState(newState){this.state.set(newState)}onChange(event){const selectedIndex=event.srcElement.value;this.userModel=this.options()[selectedIndex]}onCancel(){this.changeState("DISPLAY"),this.userModel={}}onSubmit(){this.changeState("DISPLAY");null!=this.userModel[this.valueProp()]&&this.create.emit(this.userModel),this.userModel={}}static{this.propDecorators={options:[{type:core.Input,args:[{isSignal:!0,alias:"options",required:!0,transform:void 0}]}],labelProp:[{type:core.Input,args:[{isSignal:!0,alias:"labelProp",required:!0,transform:void 0}]}],badgeText:[{type:core.Input,args:[{isSignal:!0,alias:"badgeText",required:!1,transform:void 0}]}],valueProp:[{type:core.Input,args:[{isSignal:!0,alias:"valueProp",required:!0,transform:void 0}]}],submitButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"submitButtonType",required:!1,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],create:[{type:core.Output}]}}};SmallCreateFormComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-small-create-form",template:'@if (options() && options().length > 0) {\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n \n \n\n\n \n \n',standalone:!0,imports:[badge_component.n,common.NgTemplateOutlet,button_component.Q],styles:[small_create_form_componentngResource_default()]})],SmallCreateFormComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/small-create-form/small-create-form.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,DisabledOptions:()=>DisabledOptions,NoOptions:()=>NoOptions,UndefinedOptions:()=>UndefinedOptions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/SmallCreateFormComponent",component:__webpack_require__("./src/design/molecules/small-create-form/small-create-form.component.ts").R,args:{options:[{myLabel:"A value",myValue:5},{myLabel:"Another value",myValue:7},{myLabel:"Yet another value",myValue:2},{myLabel:"More values",myValue:9},{myLabel:"Even more values",myValue:4},{myLabel:"Values galore",myValue:1},{myLabel:"The value of values",myValue:8},{myLabel:"The value of life",myValue:42},{myLabel:"The value of time",myValue:24},{myLabel:"The value of money",myValue:100},{myLabel:"The value of love",myValue:99},{myLabel:"The value of friendship",myValue:10},{myLabel:"The value of knowledge",myValue:314},{myLabel:"The value of wisdom",myValue:999},{myLabel:"The value of power",myValue:666}],labelProp:"myLabel",valueProp:"myValue",badgeText:"Add Entry",submitButtonType:"PRIMARY",cancelButtonType:"SECONDARY"}},Template=args=>({props:{...args,create:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("create")}}),Default=Template.bind({});Default.args={};const NoOptions=Template.bind({});NoOptions.args={options:[]};const UndefinedOptions=Template.bind({});UndefinedOptions.args={options:void 0};const DisabledOptions=Template.bind({});DisabledOptions.args={isDisabledFunction:opt=>opt.myValue>5};const __namedExportsOrder=["Default","NoOptions","UndefinedOptions","DisabledOptions"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...Default.parameters?.docs?.source}}},NoOptions.parameters={...NoOptions.parameters,docs:{...NoOptions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...NoOptions.parameters?.docs?.source}}},UndefinedOptions.parameters={...UndefinedOptions.parameters,docs:{...UndefinedOptions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...UndefinedOptions.parameters?.docs?.source}}},DisabledOptions.parameters={...DisabledOptions.parameters,docs:{...DisabledOptions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...DisabledOptions.parameters?.docs?.source}}}},"./src/design/atoms/badge/badge.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n border-radius: var(--bs-border-radius);\n}\n\n.badge-button {\n border-radius: var(--bs-border-radius);\n display: flex;\n}\n.badge-button:focus, .badge-button:focus-within, .badge-button:hover {\n outline: var(--focus-outline);\n}\n.badge-button:focus .badge, .badge-button:focus-within .badge, .badge-button:hover .badge {\n color: inherit;\n}\n\n.badge {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.bg-warning,\n.bg-light,\n.bg-info {\n color: var(--bs-black);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/small-create-form/small-create-form.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".display-form {\n cursor: pointer;\n display: flex;\n}\n.display-form:focus, .display-form:focus-within, .display-form:focus-visible, .display-form:hover {\n outline: var(--focus-outline);\n}\n\n.form {\n display: flex;\n align-items: center;\n flex-direction: row;\n}\n\n.form-select {\n width: unset !important;\n padding: var(--spacer-1) var(--spacer-2) var(--spacer-1) var(--spacer-2);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-molecules-small-create-form-small-create-form-stories.cdb9f1a4.iframe.bundle.js b/design-molecules-small-create-form-small-create-form-stories.cdb9f1a4.iframe.bundle.js
deleted file mode 100644
index bf3755b8b..000000000
--- a/design-molecules-small-create-form-small-create-form-stories.cdb9f1a4.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5345],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/badge/badge.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{n:()=>BadgeComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var badge_componentngResource=__webpack_require__("./src/design/atoms/badge/badge.component.scss?ngResource"),badge_componentngResource_default=__webpack_require__.n(badge_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let BadgeComponent=class BadgeComponent{constructor(){this.kind=core.input.required(),this.text=core.input.required(),this.icon=(0,core.input)(),this.clickable=(0,core.input)(!1),this.badgeClick=new core.EventEmitter}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],clickable:[{type:core.Input,args:[{isSignal:!0,alias:"clickable",required:!1,transform:void 0}]}],badgeClick:[{type:core.Output}]}}};BadgeComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-badge",template:"@if (clickable()) {\n \n \n \n} @else {\n \n}\n\n\n \n @let iconVal = icon();\n @if (iconVal) {\n
\n }\n {{ text() }}\n
\n \n",standalone:!0,imports:[common.NgTemplateOutlet,common.NgClass,icon_component.R],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[badge_componentngResource_default()]})],BadgeComponent)},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/small-create-form/small-create-form.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>SmallCreateFormComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var small_create_form_componentngResource=__webpack_require__("./src/design/molecules/small-create-form/small-create-form.component.scss?ngResource"),small_create_form_componentngResource_default=__webpack_require__.n(small_create_form_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),badge_component=__webpack_require__("./src/design/atoms/badge/badge.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let SmallCreateFormComponent=class SmallCreateFormComponent{constructor(){this.options=core.input.required(),this.labelProp=core.input.required(),this.badgeText=(0,core.input)("Add Entry"),this.valueProp=core.input.required(),this.submitButtonType=(0,core.input)("PRIMARY"),this.cancelButtonType=(0,core.input)("SECONDARY"),this.create=new core.EventEmitter,this.selectFieldName=(0,core.computed)((()=>`select-' + ${String(this.labelProp())}`)),this.form=new fesm2022_forms.gE({}),this.userModel={},this.state=(0,core.signal)("DISPLAY")}changeState(newState){this.state.set(newState)}onChange(event){const selectedIndex=event.srcElement.value;this.userModel=this.options()[selectedIndex]}onCancel(){this.changeState("DISPLAY"),this.userModel={}}onSubmit(){this.changeState("DISPLAY");null!=this.userModel[this.valueProp()]&&this.create.emit(this.userModel),this.userModel={}}static{this.propDecorators={options:[{type:core.Input,args:[{isSignal:!0,alias:"options",required:!0,transform:void 0}]}],labelProp:[{type:core.Input,args:[{isSignal:!0,alias:"labelProp",required:!0,transform:void 0}]}],badgeText:[{type:core.Input,args:[{isSignal:!0,alias:"badgeText",required:!1,transform:void 0}]}],valueProp:[{type:core.Input,args:[{isSignal:!0,alias:"valueProp",required:!0,transform:void 0}]}],submitButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"submitButtonType",required:!1,transform:void 0}]}],cancelButtonType:[{type:core.Input,args:[{isSignal:!0,alias:"cancelButtonType",required:!1,transform:void 0}]}],create:[{type:core.Output}]}}};SmallCreateFormComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-small-create-form",template:'@if (options() && options().length > 0) {\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n \n \n\n\n \n \n',standalone:!0,imports:[badge_component.n,common.NgTemplateOutlet,button_component.Q],styles:[small_create_form_componentngResource_default()]})],SmallCreateFormComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/molecules/small-create-form/small-create-form.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,DisabledOptions:()=>DisabledOptions,NoOptions:()=>NoOptions,UndefinedOptions:()=>UndefinedOptions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Molecules/SmallCreateFormComponent",component:__webpack_require__("./src/design/molecules/small-create-form/small-create-form.component.ts").R,args:{options:[{myLabel:"A value",myValue:5},{myLabel:"Another value",myValue:7},{myLabel:"Yet another value",myValue:2},{myLabel:"More values",myValue:9},{myLabel:"Even more values",myValue:4},{myLabel:"Values galore",myValue:1},{myLabel:"The value of values",myValue:8},{myLabel:"The value of life",myValue:42},{myLabel:"The value of time",myValue:24},{myLabel:"The value of money",myValue:100},{myLabel:"The value of love",myValue:99},{myLabel:"The value of friendship",myValue:10},{myLabel:"The value of knowledge",myValue:314},{myLabel:"The value of wisdom",myValue:999},{myLabel:"The value of power",myValue:666}],labelProp:"myLabel",valueProp:"myValue",badgeText:"Add Entry",submitButtonType:"PRIMARY",cancelButtonType:"SECONDARY"}},Template=args=>({props:{...args,create:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("create")}}),Default=Template.bind({});Default.args={};const NoOptions=Template.bind({});NoOptions.args={options:[]};const UndefinedOptions=Template.bind({});UndefinedOptions.args={options:void 0};const DisabledOptions=Template.bind({});DisabledOptions.args={isDisabledFunction:opt=>opt.myValue>5};const __namedExportsOrder=["Default","NoOptions","UndefinedOptions","DisabledOptions"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...Default.parameters?.docs?.source}}},NoOptions.parameters={...NoOptions.parameters,docs:{...NoOptions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...NoOptions.parameters?.docs?.source}}},UndefinedOptions.parameters={...UndefinedOptions.parameters,docs:{...UndefinedOptions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...UndefinedOptions.parameters?.docs?.source}}},DisabledOptions.parameters={...DisabledOptions.parameters,docs:{...DisabledOptions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n create: action('create')\n }\n})",...DisabledOptions.parameters?.docs?.source}}}},"./src/design/atoms/badge/badge.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n border-radius: var(--bs-border-radius);\n}\n\n.badge-button {\n border-radius: var(--bs-border-radius);\n display: flex;\n}\n.badge-button:focus, .badge-button:focus-within, .badge-button:hover {\n outline: var(--focus-outline);\n}\n.badge-button:focus .badge, .badge-button:focus-within .badge, .badge-button:hover .badge {\n color: inherit;\n}\n\n.badge {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.bg-warning,\n.bg-light,\n.bg-info {\n color: var(--bs-black);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/small-create-form/small-create-form.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".display-form {\n cursor: pointer;\n display: flex;\n}\n.display-form:focus, .display-form:focus-within, .display-form:focus-visible, .display-form:hover {\n outline: var(--focus-outline);\n}\n\n.form {\n display: flex;\n align-items: center;\n flex-direction: row;\n}\n\n.form-select {\n width: unset !important;\n padding: var(--spacer-1) var(--spacer-2) var(--spacer-1) var(--spacer-2);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-encounter-accordion-encounter-accordion-stories.9c4c68ac.iframe.bundle.js b/design-organisms-encounter-accordion-encounter-accordion-stories.9c4c68ac.iframe.bundle.js
new file mode 100644
index 000000000..8e43ecdde
--- /dev/null
+++ b/design-organisms-encounter-accordion-encounter-accordion-stories.9c4c68ac.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[181],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/encounter-accordion/encounter-accordion.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>EncounterAccordionComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var encounter_accordion_componentngResource=__webpack_require__("./src/design/organisms/encounter-accordion/encounter-accordion.component.scss?ngResource"),encounter_accordion_componentngResource_default=__webpack_require__.n(encounter_accordion_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),encounter_component=__webpack_require__("./src/design/organisms/encounter/encounter.component.ts");let EncounterAccordionComponent=class EncounterAccordionComponent{constructor(){this.encounters=core.input.required(),this.campaignLocations=core.input.required(),this.campaignCharacters=core.input.required(),this.serverModel=(0,core.input)(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter}static{this.propDecorators={encounters:[{type:core.Input,args:[{isSignal:!0,alias:"encounters",required:!0,transform:void 0}]}],campaignLocations:[{type:core.Input,args:[{isSignal:!0,alias:"campaignLocations",required:!0,transform:void 0}]}],campaignCharacters:[{type:core.Input,args:[{isSignal:!0,alias:"campaignCharacters",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}]}}};EncounterAccordionComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-encounter-accordion",template:'\n
\n @for (encounter of encounters(); track encounter.pk) {\n
\n }\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[ng_bootstrap._f,encounter_component.L],styles:[encounter_accordion_componentngResource_default()]})],EncounterAccordionComponent)},"./src/design/organisms/encounter/encounter.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{L:()=>EncounterComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var encounter_componentngResource=__webpack_require__("./src/design/organisms/encounter/encounter.component.scss?ngResource"),encounter_componentngResource_default=__webpack_require__.n(encounter_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),array=__webpack_require__("./src/utils/array.ts"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts");let EncounterComponent=class EncounterComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.characters=core.input.required(),this.locations=core.input.required(),this.encounter=(0,core.input)(),this.serverModel=(0,core.input)(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.initialState=(0,core.input)("DISPLAY"),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter,this.encounterCreate=new core.EventEmitter,this.encounterCreateCancel=new core.EventEmitter,this.userModel=(0,core.signal)({}),this.state=(0,core.signal)("DISPLAY"),this.badgeEntries=(0,core.computed)((()=>{const encounterConnections=this.encounter()?.encounterConnections??[];return this.parseConnection(encounterConnections)})),this.campaignName=(0,core.computed)((()=>this.encounter()?.campaign_details?.name)),this.locations$=(0,rxjs_interop.br)(this.locations).pipe((0,rxjs_operators.u5)()),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"title",inputKind:"STRING"}),this.formlyService.buildOverviewSelectConfig({key:"location",label:"Encounter Location",sortProp:"name_full",campaign:this.campaignName(),options$:this.locations$.pipe((0,map.T)((locs=>(0,array.Z)(locs,"name_full")))),labelProp:"name_full",required:!1}),this.formlyService.buildEditorConfig({key:"description",required:!0})]))}ngOnInit(){const model="CREATE"===this.initialState()&&this.canCreate()?{}:void 0;this.changeState(this.initialState(),model)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onEncounterCreate(encounter){this.encounterCreate.emit({...this.encounter(),...encounter}),this.changeState("DISPLAY",encounter)}onEncounterDelete(){this.encounterDelete.emit(this.encounter()),this.changeState("DISPLAY",void 0)}onEncounterUpdate(encounter){this.encounterUpdate.emit(encounter),this.changeState("DISPLAY",void 0)}onEncounterCreateCancel(){this.encounterCreateCancel.emit(),this.changeState("DISPLAY",void 0)}onConnectionDelete(connection){this.canDelete()&&this.connectionDelete.emit(connection)}onConnectionCreate(character){const newConnection={campaign:this.encounter()?.campaign_details?.id,encounter:this.encounter()?.pk,character:character.pk};this.connectionCreate.emit(newConnection)}onToggle(toggled){if("CREATE"===this.state())return void this.encounterCreateCancel.emit();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.encounter()}:void 0;this.changeState(nextState,nextModel)}parseConnection(connections){return connections.map((con=>{const characterName=con.character_details?.name;return{text:characterName,badgeValue:con,link:this.routingService.getRoutePath("character",{name:characterName,campaign:this.campaignName()})}}))}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={characters:[{type:core.Input,args:[{isSignal:!0,alias:"characters",required:!0,transform:void 0}]}],locations:[{type:core.Input,args:[{isSignal:!0,alias:"locations",required:!0,transform:void 0}]}],encounter:[{type:core.Input,args:[{isSignal:!0,alias:"encounter",required:!1,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],initialState:[{type:core.Input,args:[{isSignal:!0,alias:"initialState",required:!1,transform:void 0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}],encounterCreate:[{type:core.Output}],encounterCreateCancel:[{type:core.Output}]}}};EncounterComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-encounter",template:'@if (encounter() || state() === "CREATE") {\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n\n @if (canUpdate()) {\n \n }\n \n\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n {{ encounter()?.title }}\n \n\n\n \x3c!-- Encounter --\x3e\n @let encounterVal = encounter();\n @if (encounterVal) {\n \n }\n\n \n\n \x3c!-- Encounter Connections --\x3e\n \n\n \x3c!-- Encounter Footer/Delete Toggle --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update "{{ encounter()?.title }}" \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canUpdate() && state() === "UPDATE") {\n \n } @else if (canUpdate() && state() === "OUTDATEDUPDATE") {\n \n }\n \n\n Create new Encounter \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canCreate() && state() === "CREATE") {\n \n }\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,separator_component.F,molecules.pn,molecules.Ts,molecules.s2,molecules.zx],styles:[encounter_componentngResource_default()]})],EncounterComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/encounter-accordion/encounter-accordion.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoEncounters:()=>NoEncounters,NoPermissions:()=>NoPermissions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_tinymce_tinymce_angular__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_modules/formly_constants.ts");__webpack_require__("./node_modules/tinymce/tinymce.js");const dummyEncounters=[{pk:1,description:"\n In this epic encounter , the adventurers find themselves facing a fearsome red dragon deep within the twisting caverns of the mountains. The air is thick with the stench of sulfur as the dragon's massive form looms before them, its scales glinting in the flickering light of the torches.
\n\n The dragon roars, its fiery breath scorching the stone walls and causing the ground to tremble beneath the adventurers' feet. But they stand firm, weapons at the ready, knowing that this is the moment they have been training for.
\n\n The battle is fierce, with the dragon lashing out with razor-sharp claws and blasting the adventurers with jets of searing flame. But they are determined to prevail, and with each blow they strike, they chip away at the dragon's armor and weaken its resolve.
\n\n Finally, with a mighty roar, the dragon falls, its lifeless body crashing to the ground in a thunderous heap. The adventurers are battered and bruised, but they emerge victorious, their spirits lifted by the knowledge that they have faced one of the greatest challenges of their lives and emerged triumphant.
\n ",encounterConnections:[{pk:1,encounter:1,encounter_details:{name:"Dragon",name_full:"Red Dragon",pk:1},character:1,character_details:{name:"Adventurer",name_full:"Adventurer One",pk:1}},{pk:2,encounter:1,encounter_details:{name:"Dragon",name_full:"Red Dragon",pk:1},character:2,character_details:{name:"Adventurer",name_full:"Adventurer Two",pk:2}},{pk:1,encounter:4,encounter_details:{name:"Goblin Ambush",name_full:"Goblin Ambush",pk:4},character:4,character_details:{name:"Warrior",name_full:"Warrior Four",pk:4}},{pk:1,encounter:5,encounter_details:{name:"Treasure Hunt",name_full:"Treasure Hunt",pk:5},character:5,character_details:{name:"Wizard",name_full:"Wizard Five",pk:5}},{pk:1,encounter:6,encounter_details:{name:"Orc Battle",name_full:"Orc Battle",pk:6},character:6,character_details:{name:"Ranger",name_full:"Ranger Six",pk:6}},{pk:1,encounter:7,encounter_details:{name:"Bandit Raid",name_full:"Bandit Raid",pk:7},character:7,character_details:{name:"Paladin",name_full:"Paladin Seven",pk:7}}],location:1,location_details:{name:"Cave",pk:1,name_full:"Cave of the Red Dragon",parent_location_name:"Mountains"},title:"The Battle of the Red Dragon's Lair",diaryentry:1,diaryentry_details:{author_name:"Dungeon Master",is_main_session:1,session_number:1},order_index:1,name:"Encounter 1",creation_datetime:"2022-04-23T12:34:56.789Z",update_datetime:"2022-04-23T12:34:56.789Z",campaign:1,campaign_details:{id:1,name:"Campaign 1"},getAbsoluteRouterUrl:()=>"/encounters/1/"},{pk:2,description:"\n A group of adventurers are hired to retrieve a stolen artifact from a well-guarded tomb. The tomb is filled with traps and monsters, but the adventurers are determined to complete the job and earn their reward.
\n ",encounterConnections:[{pk:1,encounter:2,encounter_details:{name:"Tomb",name_full:"The Tomb of the Lost Artifact",pk:2},character:1,character_details:{name:"Rogue",name_full:"Rogue One",pk:1}},{pk:2,encounter:2,encounter_details:{name:"Tomb",name_full:"The Tomb of the Lost Artifact",pk:2},character:2,character_details:{name:"Fighter",name_full:"Fighter Two",pk:2}},{pk:3,encounter:2,encounter_details:{name:"Tomb",name_full:"The Tomb of the Lost Artifact",pk:2},character:3,character_details:{name:"Cleric",name_full:"Cleric Three",pk:3}}],location:2,location_details:{name:"Tomb",pk:2,name_full:"The Tomb of the Lost Artifact",parent_location_name:"Desert"},title:"The Tomb of the Lost Artifact",diaryentry:2,diaryentry_details:{author_name:"Dungeon Master",is_main_session:1,session_number:2},order_index:2,name:"Encounter 2",creation_datetime:"2022-04-23T12:34:56.789Z",update_datetime:"2022-04-23T12:34:56.789Z",campaign:1,campaign_details:{id:1,name:"Campaign 1"},getAbsoluteRouterUrl:()=>"/encounters/2/"},{pk:2,description:"\n A peaceful meadow is disturbed by the sudden appearance of a swarm of angry bees. The buzzing grows louder as the bees form a whirlwind around the adventurers, stinging them fiercely. Despite the pain, the adventurers remain calm and work together to disperse the swarm.
\n ",encounterConnections:[{pk:3,encounter:2,encounter_details:{name:"Bee Swarm",name_full:"Angry Bee Swarm",pk:2},character:3,character_details:{name:"Bard",name_full:"Bard Three",pk:3}},{pk:4,encounter:2,encounter_details:{name:"Bee Swarm",name_full:"Angry Bee Swarm",pk:2},character:4,character_details:{name:"Warrior",name_full:"Warrior Four",pk:4}}],location:2,location_details:{name:"Meadow",pk:2,name_full:"Meadow of the Angry Bees",parent_location_name:"Forest"},title:"The Bee Swarm Attack",diaryentry:2,diaryentry_details:{author_name:"Dungeon Master",is_main_session:0,session_number:2},order_index:2,name:"Encounter 2",creation_datetime:"2022-04-23T13:34:56.789Z",update_datetime:"2022-04-23T13:34:56.789Z",campaign:1,campaign_details:{id:1,name:"Campaign 1"},getAbsoluteRouterUrl:()=>"/encounters/2/"}],__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/EncounterAccordionComponent",component:__webpack_require__("./src/design/organisms/encounter-accordion/encounter-accordion.component.ts").x,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_tinymce_tinymce_angular__WEBPACK_IMPORTED_MODULE_5__.sv,_angular_router_testing__WEBPACK_IMPORTED_MODULE_6__.c,src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__.d_]})],args:{encounters:dummyEncounters,campaignCharacters:[{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gandalf",pk:1,name_full:"Gandalf the Grey",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Frodo",pk:2,name_full:"Frodo Baggins",player_character:!0,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gimli",pk:3,name_full:"Gimli son of Glóin",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Legolas",pk:4,name_full:"Legolas Greenleaf",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Bilbo",pk:5,name_full:"Bilbo Baggins",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Aragorn",pk:6,name_full:"Aragorn son of Arathorn",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Saruman",pk:7,name_full:"Saruman the White",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Sif",pk:18,name_full:"Sif the Swift",description:"Sif is a skilled warrior known for her lightning-fast strikes and agility. She is fiercely loyal to her friends and will stop at nothing to protect them.",update_datetime:"2022-03-15T10:30:00.000Z",player_character:!0,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gorin",pk:19,name_full:"Gorin Ironfist",description:"Gorin is a dwarf from the Iron Hills, known for his strength and unwavering determination. He has a fondness for ale and a good brawl.",update_datetime:"2022-02-23T14:15:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg","https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Lirien",pk:20,name_full:"Lirien Windrider",description:"Lirien is an elven archer, renowned for her skill with the bow. She is fiercely independent and often clashes with authority figures.",update_datetime:"2022-03-20T08:45:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}}],campaignName:"Aldrune",serverModel:void 0,canCreate:!0,canUpdate:!0,canDelete:!0}},Template=args=>({props:{...args,connectionDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionDelete"),connectionCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionCreate"),encounterDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterDelete"),encounterUpdate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterUpdate")}}),Default=Template.bind({});Default.args={};const NoPermissions=Template.bind({});NoPermissions.args={canUpdate:!1,canCreate:!1,canDelete:!1};const NoEncounters=Template.bind({});NoEncounters.args={encounters:[]};const __namedExportsOrder=["Default","NoPermissions","NoEncounters"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate')\n }\n})",...Default.parameters?.docs?.source}}},NoPermissions.parameters={...NoPermissions.parameters,docs:{...NoPermissions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate')\n }\n})",...NoPermissions.parameters?.docs?.source}}},NoEncounters.parameters={...NoEncounters.parameters,docs:{...NoEncounters.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate')\n }\n})",...NoEncounters.parameters?.docs?.source}}}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/encounter-accordion/encounter-accordion.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --bs-accordion-active-color: var(--bs-accordion);\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.panel-title .encounter-title,\n.panel-title .icon {\n transition: color 0.2s;\n color: var(--bs-white);\n}\n.panel-title:hover .encounter-title,\n.panel-title:hover .icon {\n color: var(--bs-gray);\n}\n\n.encounter-title {\n color: var(--bs-white);\n width: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/encounter/encounter.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--spacer-4);\n}\n.card__heading {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.card__text {\n margin-bottom: var(--spacer-1);\n}\n.card__connections {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n.card__edit-button {\n align-self: flex-start;\n}\n\n.connections {\n display: inline-flex;\n}\n.connections__label {\n margin-right: var(--spacer-4);\n}\n.connections__list {\n display: inline-flex;\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.connections__connection, .connections__create-form {\n margin: var(--spacer-0) var(--spacer-2) var(--spacer-2) var(--spacer-1);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-encounter-accordion-encounter-accordion-stories.c782952c.iframe.bundle.js b/design-organisms-encounter-accordion-encounter-accordion-stories.c782952c.iframe.bundle.js
deleted file mode 100644
index c05464df6..000000000
--- a/design-organisms-encounter-accordion-encounter-accordion-stories.c782952c.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[181],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/encounter-accordion/encounter-accordion.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>EncounterAccordionComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var encounter_accordion_componentngResource=__webpack_require__("./src/design/organisms/encounter-accordion/encounter-accordion.component.scss?ngResource"),encounter_accordion_componentngResource_default=__webpack_require__.n(encounter_accordion_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),encounter_component=__webpack_require__("./src/design/organisms/encounter/encounter.component.ts");let EncounterAccordionComponent=class EncounterAccordionComponent{constructor(){this.encounters=core.input.required(),this.campaignLocations=core.input.required(),this.campaignCharacters=core.input.required(),this.serverModel=(0,core.input)(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter}static{this.propDecorators={encounters:[{type:core.Input,args:[{isSignal:!0,alias:"encounters",required:!0,transform:void 0}]}],campaignLocations:[{type:core.Input,args:[{isSignal:!0,alias:"campaignLocations",required:!0,transform:void 0}]}],campaignCharacters:[{type:core.Input,args:[{isSignal:!0,alias:"campaignCharacters",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}]}}};EncounterAccordionComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-encounter-accordion",template:'\n
\n @for (encounter of encounters(); track encounter.pk) {\n
\n }\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[ng_bootstrap._f,encounter_component.L],styles:[encounter_accordion_componentngResource_default()]})],EncounterAccordionComponent)},"./src/design/organisms/encounter/encounter.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{L:()=>EncounterComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var encounter_componentngResource=__webpack_require__("./src/design/organisms/encounter/encounter.component.scss?ngResource"),encounter_componentngResource_default=__webpack_require__.n(encounter_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),array=__webpack_require__("./src/utils/array.ts"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts");let EncounterComponent=class EncounterComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.characters=core.input.required(),this.locations=core.input.required(),this.encounter=(0,core.input)(),this.serverModel=(0,core.input)(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.initialState=(0,core.input)("DISPLAY"),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter,this.encounterCreate=new core.EventEmitter,this.encounterCreateCancel=new core.EventEmitter,this.userModel=(0,core.signal)({}),this.state=(0,core.signal)("DISPLAY"),this.badgeEntries=(0,core.computed)((()=>{const encounterConnections=this.encounter()?.encounterConnections??[];return this.parseConnection(encounterConnections)})),this.campaignName=(0,core.computed)((()=>this.encounter()?.campaign_details?.name)),this.locations$=(0,rxjs_interop.br)(this.locations).pipe((0,rxjs_operators.u5)()),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"title",inputKind:"STRING"}),this.formlyService.buildOverviewSelectConfig({key:"location",label:"Encounter Location",sortProp:"name_full",campaign:this.campaignName(),options$:this.locations$.pipe((0,map.T)((locs=>(0,array.Z)(locs,"name_full")))),labelProp:"name_full",required:!1}),this.formlyService.buildEditorConfig({key:"description",required:!0})]))}ngOnInit(){const model="CREATE"===this.initialState()&&this.canCreate()?{}:void 0;this.changeState(this.initialState(),model)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onEncounterCreate(encounter){this.encounterCreate.emit({...this.encounter(),...encounter}),this.changeState("DISPLAY",encounter)}onEncounterDelete(){this.encounterDelete.emit(this.encounter()),this.changeState("DISPLAY",void 0)}onEncounterUpdate(encounter){this.encounterUpdate.emit(encounter),this.changeState("DISPLAY",void 0)}onEncounterCreateCancel(){this.encounterCreateCancel.emit(),this.changeState("DISPLAY",void 0)}onConnectionDelete(connection){this.canDelete()&&this.connectionDelete.emit(connection)}onConnectionCreate(character){const newConnection={campaign:this.encounter()?.campaign_details?.id,encounter:this.encounter()?.pk,character:character.pk};this.connectionCreate.emit(newConnection)}onToggle(toggled){if("CREATE"===this.state())return void this.encounterCreateCancel.emit();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.encounter()}:void 0;this.changeState(nextState,nextModel)}parseConnection(connections){return connections.map((con=>{const characterName=con.character_details?.name;return{text:characterName,badgeValue:con,link:this.routingService.getRoutePath("character",{name:characterName,campaign:this.campaignName()})}}))}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={characters:[{type:core.Input,args:[{isSignal:!0,alias:"characters",required:!0,transform:void 0}]}],locations:[{type:core.Input,args:[{isSignal:!0,alias:"locations",required:!0,transform:void 0}]}],encounter:[{type:core.Input,args:[{isSignal:!0,alias:"encounter",required:!1,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],initialState:[{type:core.Input,args:[{isSignal:!0,alias:"initialState",required:!1,transform:void 0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}],encounterCreate:[{type:core.Output}],encounterCreateCancel:[{type:core.Output}]}}};EncounterComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-encounter",template:'@if (encounter() || state() === "CREATE") {\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n\n @if (canUpdate()) {\n \n }\n \n\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n {{ encounter()?.title }}\n \n\n\n \x3c!-- Encounter --\x3e\n @let encounterVal = encounter();\n @if (encounterVal) {\n \n }\n\n \n\n \x3c!-- Encounter Connections --\x3e\n \n\n \x3c!-- Encounter Footer/Delete Toggle --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update "{{ encounter()?.title }}" \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canUpdate() && state() === "UPDATE") {\n \n } @else if (canUpdate() && state() === "OUTDATEDUPDATE") {\n \n }\n \n\n Create new Encounter \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canCreate() && state() === "CREATE") {\n \n }\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,separator_component.F,molecules.pn,molecules.Ts,molecules.s2,molecules.zx],styles:[encounter_componentngResource_default()]})],EncounterComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/encounter-accordion/encounter-accordion.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoEncounters:()=>NoEncounters,NoPermissions:()=>NoPermissions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_tinymce_tinymce_angular__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_modules/formly_constants.ts");__webpack_require__("./node_modules/tinymce/tinymce.js");const dummyEncounters=[{pk:1,description:"\n In this epic encounter , the adventurers find themselves facing a fearsome red dragon deep within the twisting caverns of the mountains. The air is thick with the stench of sulfur as the dragon's massive form looms before them, its scales glinting in the flickering light of the torches.
\n\n The dragon roars, its fiery breath scorching the stone walls and causing the ground to tremble beneath the adventurers' feet. But they stand firm, weapons at the ready, knowing that this is the moment they have been training for.
\n\n The battle is fierce, with the dragon lashing out with razor-sharp claws and blasting the adventurers with jets of searing flame. But they are determined to prevail, and with each blow they strike, they chip away at the dragon's armor and weaken its resolve.
\n\n Finally, with a mighty roar, the dragon falls, its lifeless body crashing to the ground in a thunderous heap. The adventurers are battered and bruised, but they emerge victorious, their spirits lifted by the knowledge that they have faced one of the greatest challenges of their lives and emerged triumphant.
\n ",encounterConnections:[{pk:1,encounter:1,encounter_details:{name:"Dragon",name_full:"Red Dragon",pk:1},character:1,character_details:{name:"Adventurer",name_full:"Adventurer One",pk:1}},{pk:2,encounter:1,encounter_details:{name:"Dragon",name_full:"Red Dragon",pk:1},character:2,character_details:{name:"Adventurer",name_full:"Adventurer Two",pk:2}},{pk:1,encounter:4,encounter_details:{name:"Goblin Ambush",name_full:"Goblin Ambush",pk:4},character:4,character_details:{name:"Warrior",name_full:"Warrior Four",pk:4}},{pk:1,encounter:5,encounter_details:{name:"Treasure Hunt",name_full:"Treasure Hunt",pk:5},character:5,character_details:{name:"Wizard",name_full:"Wizard Five",pk:5}},{pk:1,encounter:6,encounter_details:{name:"Orc Battle",name_full:"Orc Battle",pk:6},character:6,character_details:{name:"Ranger",name_full:"Ranger Six",pk:6}},{pk:1,encounter:7,encounter_details:{name:"Bandit Raid",name_full:"Bandit Raid",pk:7},character:7,character_details:{name:"Paladin",name_full:"Paladin Seven",pk:7}}],location:1,location_details:{name:"Cave",pk:1,name_full:"Cave of the Red Dragon",parent_location_name:"Mountains"},title:"The Battle of the Red Dragon's Lair",diaryentry:1,diaryentry_details:{author_name:"Dungeon Master",is_main_session:1,session_number:1},order_index:1,name:"Encounter 1",creation_datetime:"2022-04-23T12:34:56.789Z",update_datetime:"2022-04-23T12:34:56.789Z",campaign:1,campaign_details:{id:1,name:"Campaign 1"},getAbsoluteRouterUrl:()=>"/encounters/1/"},{pk:2,description:"\n A group of adventurers are hired to retrieve a stolen artifact from a well-guarded tomb. The tomb is filled with traps and monsters, but the adventurers are determined to complete the job and earn their reward.
\n ",encounterConnections:[{pk:1,encounter:2,encounter_details:{name:"Tomb",name_full:"The Tomb of the Lost Artifact",pk:2},character:1,character_details:{name:"Rogue",name_full:"Rogue One",pk:1}},{pk:2,encounter:2,encounter_details:{name:"Tomb",name_full:"The Tomb of the Lost Artifact",pk:2},character:2,character_details:{name:"Fighter",name_full:"Fighter Two",pk:2}},{pk:3,encounter:2,encounter_details:{name:"Tomb",name_full:"The Tomb of the Lost Artifact",pk:2},character:3,character_details:{name:"Cleric",name_full:"Cleric Three",pk:3}}],location:2,location_details:{name:"Tomb",pk:2,name_full:"The Tomb of the Lost Artifact",parent_location_name:"Desert"},title:"The Tomb of the Lost Artifact",diaryentry:2,diaryentry_details:{author_name:"Dungeon Master",is_main_session:1,session_number:2},order_index:2,name:"Encounter 2",creation_datetime:"2022-04-23T12:34:56.789Z",update_datetime:"2022-04-23T12:34:56.789Z",campaign:1,campaign_details:{id:1,name:"Campaign 1"},getAbsoluteRouterUrl:()=>"/encounters/2/"},{pk:2,description:"\n A peaceful meadow is disturbed by the sudden appearance of a swarm of angry bees. The buzzing grows louder as the bees form a whirlwind around the adventurers, stinging them fiercely. Despite the pain, the adventurers remain calm and work together to disperse the swarm.
\n ",encounterConnections:[{pk:3,encounter:2,encounter_details:{name:"Bee Swarm",name_full:"Angry Bee Swarm",pk:2},character:3,character_details:{name:"Bard",name_full:"Bard Three",pk:3}},{pk:4,encounter:2,encounter_details:{name:"Bee Swarm",name_full:"Angry Bee Swarm",pk:2},character:4,character_details:{name:"Warrior",name_full:"Warrior Four",pk:4}}],location:2,location_details:{name:"Meadow",pk:2,name_full:"Meadow of the Angry Bees",parent_location_name:"Forest"},title:"The Bee Swarm Attack",diaryentry:2,diaryentry_details:{author_name:"Dungeon Master",is_main_session:0,session_number:2},order_index:2,name:"Encounter 2",creation_datetime:"2022-04-23T13:34:56.789Z",update_datetime:"2022-04-23T13:34:56.789Z",campaign:1,campaign_details:{id:1,name:"Campaign 1"},getAbsoluteRouterUrl:()=>"/encounters/2/"}],__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/EncounterAccordionComponent",component:__webpack_require__("./src/design/organisms/encounter-accordion/encounter-accordion.component.ts").x,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_tinymce_tinymce_angular__WEBPACK_IMPORTED_MODULE_5__.sv,_angular_router_testing__WEBPACK_IMPORTED_MODULE_6__.c,src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__.d_]})],args:{encounters:dummyEncounters,campaignCharacters:[{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gandalf",pk:1,name_full:"Gandalf the Grey",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Frodo",pk:2,name_full:"Frodo Baggins",player_character:!0,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gimli",pk:3,name_full:"Gimli son of Glóin",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Legolas",pk:4,name_full:"Legolas Greenleaf",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Bilbo",pk:5,name_full:"Bilbo Baggins",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Aragorn",pk:6,name_full:"Aragorn son of Arathorn",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Saruman",pk:7,name_full:"Saruman the White",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Sif",pk:18,name_full:"Sif the Swift",description:"Sif is a skilled warrior known for her lightning-fast strikes and agility. She is fiercely loyal to her friends and will stop at nothing to protect them.",update_datetime:"2022-03-15T10:30:00.000Z",player_character:!0,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gorin",pk:19,name_full:"Gorin Ironfist",description:"Gorin is a dwarf from the Iron Hills, known for his strength and unwavering determination. He has a fondness for ale and a good brawl.",update_datetime:"2022-02-23T14:15:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg","https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Lirien",pk:20,name_full:"Lirien Windrider",description:"Lirien is an elven archer, renowned for her skill with the bow. She is fiercely independent and often clashes with authority figures.",update_datetime:"2022-03-20T08:45:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}}],campaignName:"Aldrune",serverModel:void 0,canCreate:!0,canUpdate:!0,canDelete:!0}},Template=args=>({props:{...args,connectionDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionDelete"),connectionCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionCreate"),encounterDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterDelete"),encounterUpdate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterUpdate")}}),Default=Template.bind({});Default.args={};const NoPermissions=Template.bind({});NoPermissions.args={canUpdate:!1,canCreate:!1,canDelete:!1};const NoEncounters=Template.bind({});NoEncounters.args={encounters:[]};const __namedExportsOrder=["Default","NoPermissions","NoEncounters"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate')\n }\n})",...Default.parameters?.docs?.source}}},NoPermissions.parameters={...NoPermissions.parameters,docs:{...NoPermissions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate')\n }\n})",...NoPermissions.parameters?.docs?.source}}},NoEncounters.parameters={...NoEncounters.parameters,docs:{...NoEncounters.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate')\n }\n})",...NoEncounters.parameters?.docs?.source}}}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/encounter-accordion/encounter-accordion.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --bs-accordion-active-color: var(--bs-accordion);\n}\n\n.panel-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.panel-title .encounter-title,\n.panel-title .icon {\n transition: color 0.2s;\n color: var(--bs-white);\n}\n.panel-title:hover .encounter-title,\n.panel-title:hover .icon {\n color: var(--bs-gray);\n}\n\n.encounter-title {\n color: var(--bs-white);\n width: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/encounter/encounter.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--spacer-4);\n}\n.card__heading {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.card__text {\n margin-bottom: var(--spacer-1);\n}\n.card__connections {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n.card__edit-button {\n align-self: flex-start;\n}\n\n.connections {\n display: inline-flex;\n}\n.connections__label {\n margin-right: var(--spacer-4);\n}\n.connections__list {\n display: inline-flex;\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.connections__connection, .connections__create-form {\n margin: var(--spacer-0) var(--spacer-2) var(--spacer-2) var(--spacer-1);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-encounter-encounter-stories.ae85c409.iframe.bundle.js b/design-organisms-encounter-encounter-stories.ae85c409.iframe.bundle.js
deleted file mode 100644
index 7c3e5de1f..000000000
--- a/design-organisms-encounter-encounter-stories.ae85c409.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2793],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/encounter/encounter.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{L:()=>EncounterComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var encounter_componentngResource=__webpack_require__("./src/design/organisms/encounter/encounter.component.scss?ngResource"),encounter_componentngResource_default=__webpack_require__.n(encounter_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),array=__webpack_require__("./src/utils/array.ts"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts");let EncounterComponent=class EncounterComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.characters=core.input.required(),this.locations=core.input.required(),this.encounter=(0,core.input)(),this.serverModel=(0,core.input)(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.initialState=(0,core.input)("DISPLAY"),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter,this.encounterCreate=new core.EventEmitter,this.encounterCreateCancel=new core.EventEmitter,this.userModel=(0,core.signal)({}),this.state=(0,core.signal)("DISPLAY"),this.badgeEntries=(0,core.computed)((()=>{const encounterConnections=this.encounter()?.encounterConnections??[];return this.parseConnection(encounterConnections)})),this.campaignName=(0,core.computed)((()=>this.encounter()?.campaign_details?.name)),this.locations$=(0,rxjs_interop.br)(this.locations).pipe((0,rxjs_operators.u5)()),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"title",inputKind:"STRING"}),this.formlyService.buildOverviewSelectConfig({key:"location",label:"Encounter Location",sortProp:"name_full",campaign:this.campaignName(),options$:this.locations$.pipe((0,map.T)((locs=>(0,array.Z)(locs,"name_full")))),labelProp:"name_full",required:!1}),this.formlyService.buildEditorConfig({key:"description",required:!0})]))}ngOnInit(){const model="CREATE"===this.initialState()&&this.canCreate()?{}:void 0;this.changeState(this.initialState(),model)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onEncounterCreate(encounter){this.encounterCreate.emit({...this.encounter(),...encounter}),this.changeState("DISPLAY",encounter)}onEncounterDelete(){this.encounterDelete.emit(this.encounter()),this.changeState("DISPLAY",void 0)}onEncounterUpdate(encounter){this.encounterUpdate.emit(encounter),this.changeState("DISPLAY",void 0)}onEncounterCreateCancel(){this.encounterCreateCancel.emit(),this.changeState("DISPLAY",void 0)}onConnectionDelete(connection){this.canDelete()&&this.connectionDelete.emit(connection)}onConnectionCreate(character){const newConnection={campaign:this.encounter()?.campaign_details?.id,encounter:this.encounter()?.pk,character:character.pk};this.connectionCreate.emit(newConnection)}onToggle(toggled){if("CREATE"===this.state())return void this.encounterCreateCancel.emit();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.encounter()}:void 0;this.changeState(nextState,nextModel)}parseConnection(connections){return connections.map((con=>{const characterName=con.character_details?.name;return{text:characterName,badgeValue:con,link:this.routingService.getRoutePath("character",{name:characterName,campaign:this.campaignName()})}}))}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={characters:[{type:core.Input,args:[{isSignal:!0,alias:"characters",required:!0,transform:void 0}]}],locations:[{type:core.Input,args:[{isSignal:!0,alias:"locations",required:!0,transform:void 0}]}],encounter:[{type:core.Input,args:[{isSignal:!0,alias:"encounter",required:!1,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],initialState:[{type:core.Input,args:[{isSignal:!0,alias:"initialState",required:!1,transform:void 0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}],encounterCreate:[{type:core.Output}],encounterCreateCancel:[{type:core.Output}]}}};EncounterComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-encounter",template:'@if (encounter() || state() === "CREATE") {\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n\n @if (canUpdate()) {\n \n }\n \n\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n {{ encounter()?.title }}\n \n\n\n \x3c!-- Encounter --\x3e\n @let encounterVal = encounter();\n @if (encounterVal) {\n \n }\n\n \n\n \x3c!-- Encounter Connections --\x3e\n \n\n \x3c!-- Encounter Footer/Delete Toggle --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update "{{ encounter()?.title }}" \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canUpdate() && state() === "UPDATE") {\n \n } @else if (canUpdate() && state() === "OUTDATEDUPDATE") {\n \n }\n \n\n Create new Encounter \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canCreate() && state() === "CREATE") {\n \n }\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,separator_component.F,molecules.pn,molecules.Ts,molecules.s2,molecules.zx],styles:[encounter_componentngResource_default()]})],EncounterComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/encounter/encounter.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,FewerConnections:()=>FewerConnections,NoEncounter:()=>NoEncounter,NoEncounterNoCreatePermission:()=>NoEncounterNoCreatePermission,NoPermissions:()=>NoPermissions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_tinymce_tinymce_angular__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_modules/formly_constants.ts");__webpack_require__("./node_modules/tinymce/tinymce.js");const dummyEncounter={pk:1,description:"\n In this epic encounter , the adventurers find themselves facing a fearsome red dragon deep within the twisting caverns of the mountains. The air is thick with the stench of sulfur as the dragon's massive form looms before them, its scales glinting in the flickering light of the torches.
\n\n The dragon roars, its fiery breath scorching the stone walls and causing the ground to tremble beneath the adventurers' feet. But they stand firm, weapons at the ready, knowing that this is the moment they have been training for.
\n\n The battle is fierce, with the dragon lashing out with razor-sharp claws and blasting the adventurers with jets of searing flame. But they are determined to prevail, and with each blow they strike, they chip away at the dragon's armor and weaken its resolve.
\n\n Finally, with a mighty roar, the dragon falls, its lifeless body crashing to the ground in a thunderous heap. The adventurers are battered and bruised, but they emerge victorious, their spirits lifted by the knowledge that they have faced one of the greatest challenges of their lives and emerged triumphant.
\n ",encounterConnections:[{pk:1,encounter:1,encounter_details:{name:"Dragon",name_full:"Red Dragon",pk:1},character:1,character_details:{name:"Adventurer",name_full:"Adventurer One",pk:1}},{pk:2,encounter:1,encounter_details:{name:"Dragon",name_full:"Red Dragon",pk:1},character:2,character_details:{name:"Adventurer",name_full:"Adventurer Two",pk:2}},{pk:1,encounter:4,encounter_details:{name:"Goblin Ambush",name_full:"Goblin Ambush",pk:4},character:4,character_details:{name:"Warrior",name_full:"Warrior Four",pk:4}},{pk:1,encounter:5,encounter_details:{name:"Treasure Hunt",name_full:"Treasure Hunt",pk:5},character:5,character_details:{name:"Wizard",name_full:"Wizard Five",pk:5}},{pk:1,encounter:6,encounter_details:{name:"Orc Battle",name_full:"Orc Battle",pk:6},character:6,character_details:{name:"Ranger",name_full:"Ranger Six",pk:6}},{pk:1,encounter:7,encounter_details:{name:"Bandit Raid",name_full:"Bandit Raid",pk:7},character:7,character_details:{name:"Paladin",name_full:"Paladin Seven",pk:7}}],location:1,location_details:{name:"Cave",pk:1,name_full:"Cave of the Red Dragon",parent_location_name:"Mountains"},title:"The Battle of the Red Dragon's Lair",diaryentry:1,diaryentry_details:{author_name:"Dungeon Master",is_main_session:1,session_number:1},order_index:1,name:"Encounter 1",creation_datetime:"2022-04-23T12:34:56.789Z",update_datetime:"2022-04-23T12:34:56.789Z",campaign:1,campaign_details:{id:1,name:"Aldrune"},getAbsoluteRouterUrl:()=>"/encounters/1/"},__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/EncounterComponent",component:__webpack_require__("./src/design/organisms/encounter/encounter.component.ts").L,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_tinymce_tinymce_angular__WEBPACK_IMPORTED_MODULE_5__.sv,_angular_router_testing__WEBPACK_IMPORTED_MODULE_6__.c,src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__.d_]})],args:{encounter:dummyEncounter,characters:[{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gandalf",pk:1,name_full:"Gandalf the Grey",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Frodo",pk:2,name_full:"Frodo Baggins",player_character:!0,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gimli",pk:3,name_full:"Gimli son of Glóin",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Legolas",pk:4,name_full:"Legolas Greenleaf",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Bilbo",pk:5,name_full:"Bilbo Baggins",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Aragorn",pk:6,name_full:"Aragorn son of Arathorn",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Saruman",pk:7,name_full:"Saruman the White",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Sif",pk:18,name_full:"Sif the Swift",description:"Sif is a skilled warrior known for her lightning-fast strikes and agility. She is fiercely loyal to her friends and will stop at nothing to protect them.",update_datetime:"2022-03-15T10:30:00.000Z",player_character:!0,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gorin",pk:19,name_full:"Gorin Ironfist",description:"Gorin is a dwarf from the Iron Hills, known for his strength and unwavering determination. He has a fondness for ale and a good brawl.",update_datetime:"2022-02-23T14:15:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg","https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Lirien",pk:20,name_full:"Lirien Windrider",description:"Lirien is an elven archer, renowned for her skill with the bow. She is fiercely independent and often clashes with authority figures.",update_datetime:"2022-03-20T08:45:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}}],serverModel:void 0,canCreate:!0,canUpdate:!0,canDelete:!0}},Template=args=>({props:{...args,connectionDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionDelete"),connectionCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionCreate"),encounterDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterDelete"),encounterUpdate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterUpdate"),encounterCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterCreate")}}),Default=Template.bind({});Default.args={};const shortConnectionList=dummyEncounter.encounterConnections?.slice(0,3),FewerConnections=Template.bind({});FewerConnections.args={encounter:{...dummyEncounter,encounterConnections:[...shortConnectionList]}};const NoPermissions=Template.bind({});NoPermissions.args={canUpdate:!1,canCreate:!1,canDelete:!1};const NoEncounter=Template.bind({});NoEncounter.args={encounter:void 0};const NoEncounterNoCreatePermission=Template.bind({});NoEncounterNoCreatePermission.args={encounter:void 0,canCreate:!1};const __namedExportsOrder=["Default","FewerConnections","NoPermissions","NoEncounter","NoEncounterNoCreatePermission"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...Default.parameters?.docs?.source}}},FewerConnections.parameters={...FewerConnections.parameters,docs:{...FewerConnections.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...FewerConnections.parameters?.docs?.source}}},NoPermissions.parameters={...NoPermissions.parameters,docs:{...NoPermissions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...NoPermissions.parameters?.docs?.source}}},NoEncounter.parameters={...NoEncounter.parameters,docs:{...NoEncounter.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...NoEncounter.parameters?.docs?.source}}},NoEncounterNoCreatePermission.parameters={...NoEncounterNoCreatePermission.parameters,docs:{...NoEncounterNoCreatePermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...NoEncounterNoCreatePermission.parameters?.docs?.source}}}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/encounter/encounter.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--spacer-4);\n}\n.card__heading {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.card__text {\n margin-bottom: var(--spacer-1);\n}\n.card__connections {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n.card__edit-button {\n align-self: flex-start;\n}\n\n.connections {\n display: inline-flex;\n}\n.connections__label {\n margin-right: var(--spacer-4);\n}\n.connections__list {\n display: inline-flex;\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.connections__connection, .connections__create-form {\n margin: var(--spacer-0) var(--spacer-2) var(--spacer-2) var(--spacer-1);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-encounter-encounter-stories.bb4452b4.iframe.bundle.js b/design-organisms-encounter-encounter-stories.bb4452b4.iframe.bundle.js
new file mode 100644
index 000000000..29b1c932f
--- /dev/null
+++ b/design-organisms-encounter-encounter-stories.bb4452b4.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2793],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/encounter/encounter.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{L:()=>EncounterComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var encounter_componentngResource=__webpack_require__("./src/design/organisms/encounter/encounter.component.scss?ngResource"),encounter_componentngResource_default=__webpack_require__.n(encounter_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),array=__webpack_require__("./src/utils/array.ts"),rxjs_operators=__webpack_require__("./src/utils/rxjs-operators.ts");let EncounterComponent=class EncounterComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.characters=core.input.required(),this.locations=core.input.required(),this.encounter=(0,core.input)(),this.serverModel=(0,core.input)(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.initialState=(0,core.input)("DISPLAY"),this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.encounterDelete=new core.EventEmitter,this.encounterUpdate=new core.EventEmitter,this.encounterCreate=new core.EventEmitter,this.encounterCreateCancel=new core.EventEmitter,this.userModel=(0,core.signal)({}),this.state=(0,core.signal)("DISPLAY"),this.badgeEntries=(0,core.computed)((()=>{const encounterConnections=this.encounter()?.encounterConnections??[];return this.parseConnection(encounterConnections)})),this.campaignName=(0,core.computed)((()=>this.encounter()?.campaign_details?.name)),this.locations$=(0,rxjs_interop.br)(this.locations).pipe((0,rxjs_operators.u5)()),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"title",inputKind:"STRING"}),this.formlyService.buildOverviewSelectConfig({key:"location",label:"Encounter Location",sortProp:"name_full",campaign:this.campaignName(),options$:this.locations$.pipe((0,map.T)((locs=>(0,array.Z)(locs,"name_full")))),labelProp:"name_full",required:!1}),this.formlyService.buildEditorConfig({key:"description",required:!0})]))}ngOnInit(){const model="CREATE"===this.initialState()&&this.canCreate()?{}:void 0;this.changeState(this.initialState(),model)}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onEncounterCreate(encounter){this.encounterCreate.emit({...this.encounter(),...encounter}),this.changeState("DISPLAY",encounter)}onEncounterDelete(){this.encounterDelete.emit(this.encounter()),this.changeState("DISPLAY",void 0)}onEncounterUpdate(encounter){this.encounterUpdate.emit(encounter),this.changeState("DISPLAY",void 0)}onEncounterCreateCancel(){this.encounterCreateCancel.emit(),this.changeState("DISPLAY",void 0)}onConnectionDelete(connection){this.canDelete()&&this.connectionDelete.emit(connection)}onConnectionCreate(character){const newConnection={campaign:this.encounter()?.campaign_details?.id,encounter:this.encounter()?.pk,character:character.pk};this.connectionCreate.emit(newConnection)}onToggle(toggled){if("CREATE"===this.state())return void this.encounterCreateCancel.emit();const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.encounter()}:void 0;this.changeState(nextState,nextModel)}parseConnection(connections){return connections.map((con=>{const characterName=con.character_details?.name;return{text:characterName,badgeValue:con,link:this.routingService.getRoutePath("character",{name:characterName,campaign:this.campaignName()})}}))}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={characters:[{type:core.Input,args:[{isSignal:!0,alias:"characters",required:!0,transform:void 0}]}],locations:[{type:core.Input,args:[{isSignal:!0,alias:"locations",required:!0,transform:void 0}]}],encounter:[{type:core.Input,args:[{isSignal:!0,alias:"encounter",required:!1,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],initialState:[{type:core.Input,args:[{isSignal:!0,alias:"initialState",required:!1,transform:void 0}]}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],encounterDelete:[{type:core.Output}],encounterUpdate:[{type:core.Output}],encounterCreate:[{type:core.Output}],encounterCreateCancel:[{type:core.Output}]}}};EncounterComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-encounter",template:'@if (encounter() || state() === "CREATE") {\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n\n @if (canUpdate()) {\n \n }\n \n\n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("OUTDATEDUPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n }\n}\n\n\n {{ encounter()?.title }}\n \n\n\n \x3c!-- Encounter --\x3e\n @let encounterVal = encounter();\n @if (encounterVal) {\n \n }\n\n \n\n \x3c!-- Encounter Connections --\x3e\n \n\n \x3c!-- Encounter Footer/Delete Toggle --\x3e\n @if (canDelete()) {\n \n }\n \n\n Update "{{ encounter()?.title }}" \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canUpdate() && state() === "UPDATE") {\n \n } @else if (canUpdate() && state() === "OUTDATEDUPDATE") {\n \n }\n \n\n Create new Encounter \n\n\x3c!-- Form to Update Encounters --\x3e\n\n @if (canCreate() && state() === "CREATE") {\n \n }\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,html_text_component.m,separator_component.F,molecules.pn,molecules.Ts,molecules.s2,molecules.zx],styles:[encounter_componentngResource_default()]})],EncounterComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/encounter/encounter.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,FewerConnections:()=>FewerConnections,NoEncounter:()=>NoEncounter,NoEncounterNoCreatePermission:()=>NoEncounterNoCreatePermission,NoPermissions:()=>NoPermissions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_tinymce_tinymce_angular__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_modules/formly_constants.ts");__webpack_require__("./node_modules/tinymce/tinymce.js");const dummyEncounter={pk:1,description:"\n In this epic encounter , the adventurers find themselves facing a fearsome red dragon deep within the twisting caverns of the mountains. The air is thick with the stench of sulfur as the dragon's massive form looms before them, its scales glinting in the flickering light of the torches.
\n\n The dragon roars, its fiery breath scorching the stone walls and causing the ground to tremble beneath the adventurers' feet. But they stand firm, weapons at the ready, knowing that this is the moment they have been training for.
\n\n The battle is fierce, with the dragon lashing out with razor-sharp claws and blasting the adventurers with jets of searing flame. But they are determined to prevail, and with each blow they strike, they chip away at the dragon's armor and weaken its resolve.
\n\n Finally, with a mighty roar, the dragon falls, its lifeless body crashing to the ground in a thunderous heap. The adventurers are battered and bruised, but they emerge victorious, their spirits lifted by the knowledge that they have faced one of the greatest challenges of their lives and emerged triumphant.
\n ",encounterConnections:[{pk:1,encounter:1,encounter_details:{name:"Dragon",name_full:"Red Dragon",pk:1},character:1,character_details:{name:"Adventurer",name_full:"Adventurer One",pk:1}},{pk:2,encounter:1,encounter_details:{name:"Dragon",name_full:"Red Dragon",pk:1},character:2,character_details:{name:"Adventurer",name_full:"Adventurer Two",pk:2}},{pk:1,encounter:4,encounter_details:{name:"Goblin Ambush",name_full:"Goblin Ambush",pk:4},character:4,character_details:{name:"Warrior",name_full:"Warrior Four",pk:4}},{pk:1,encounter:5,encounter_details:{name:"Treasure Hunt",name_full:"Treasure Hunt",pk:5},character:5,character_details:{name:"Wizard",name_full:"Wizard Five",pk:5}},{pk:1,encounter:6,encounter_details:{name:"Orc Battle",name_full:"Orc Battle",pk:6},character:6,character_details:{name:"Ranger",name_full:"Ranger Six",pk:6}},{pk:1,encounter:7,encounter_details:{name:"Bandit Raid",name_full:"Bandit Raid",pk:7},character:7,character_details:{name:"Paladin",name_full:"Paladin Seven",pk:7}}],location:1,location_details:{name:"Cave",pk:1,name_full:"Cave of the Red Dragon",parent_location_name:"Mountains"},title:"The Battle of the Red Dragon's Lair",diaryentry:1,diaryentry_details:{author_name:"Dungeon Master",is_main_session:1,session_number:1},order_index:1,name:"Encounter 1",creation_datetime:"2022-04-23T12:34:56.789Z",update_datetime:"2022-04-23T12:34:56.789Z",campaign:1,campaign_details:{id:1,name:"Aldrune"},getAbsoluteRouterUrl:()=>"/encounters/1/"},__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/EncounterComponent",component:__webpack_require__("./src/design/organisms/encounter/encounter.component.ts").L,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_tinymce_tinymce_angular__WEBPACK_IMPORTED_MODULE_5__.sv,_angular_router_testing__WEBPACK_IMPORTED_MODULE_6__.c,src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__.d_]})],args:{encounter:dummyEncounter,characters:[{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gandalf",pk:1,name_full:"Gandalf the Grey",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Frodo",pk:2,name_full:"Frodo Baggins",player_character:!0,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gimli",pk:3,name_full:"Gimli son of Glóin",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Legolas",pk:4,name_full:"Legolas Greenleaf",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Bilbo",pk:5,name_full:"Bilbo Baggins",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Aragorn",pk:6,name_full:"Aragorn son of Arathorn",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Saruman",pk:7,name_full:"Saruman the White",player_character:!1,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Sif",pk:18,name_full:"Sif the Swift",description:"Sif is a skilled warrior known for her lightning-fast strikes and agility. She is fiercely loyal to her friends and will stop at nothing to protect them.",update_datetime:"2022-03-15T10:30:00.000Z",player_character:!0,images:[],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gorin",pk:19,name_full:"Gorin Ironfist",description:"Gorin is a dwarf from the Iron Hills, known for his strength and unwavering determination. He has a fondness for ale and a good brawl.",update_datetime:"2022-02-23T14:15:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg","https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Lirien",pk:20,name_full:"Lirien Windrider",description:"Lirien is an elven archer, renowned for her skill with the bow. She is fiercely independent and often clashes with authority figures.",update_datetime:"2022-03-20T08:45:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{id:1,name:"Aldrune"}}],serverModel:void 0,canCreate:!0,canUpdate:!0,canDelete:!0}},Template=args=>({props:{...args,connectionDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionDelete"),connectionCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionCreate"),encounterDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterDelete"),encounterUpdate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterUpdate"),encounterCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("encounterCreate")}}),Default=Template.bind({});Default.args={};const shortConnectionList=dummyEncounter.encounterConnections?.slice(0,3),FewerConnections=Template.bind({});FewerConnections.args={encounter:{...dummyEncounter,encounterConnections:[...shortConnectionList]}};const NoPermissions=Template.bind({});NoPermissions.args={canUpdate:!1,canCreate:!1,canDelete:!1};const NoEncounter=Template.bind({});NoEncounter.args={encounter:void 0};const NoEncounterNoCreatePermission=Template.bind({});NoEncounterNoCreatePermission.args={encounter:void 0,canCreate:!1};const __namedExportsOrder=["Default","FewerConnections","NoPermissions","NoEncounter","NoEncounterNoCreatePermission"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...Default.parameters?.docs?.source}}},FewerConnections.parameters={...FewerConnections.parameters,docs:{...FewerConnections.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...FewerConnections.parameters?.docs?.source}}},NoPermissions.parameters={...NoPermissions.parameters,docs:{...NoPermissions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...NoPermissions.parameters?.docs?.source}}},NoEncounter.parameters={...NoEncounter.parameters,docs:{...NoEncounter.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...NoEncounter.parameters?.docs?.source}}},NoEncounterNoCreatePermission.parameters={...NoEncounterNoCreatePermission.parameters,docs:{...NoEncounterNoCreatePermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate'),\n encounterDelete: action('encounterDelete'),\n encounterUpdate: action('encounterUpdate'),\n encounterCreate: action('encounterCreate')\n }\n})",...NoEncounterNoCreatePermission.parameters?.docs?.source}}}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/encounter/encounter.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--spacer-4);\n}\n.card__heading {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.card__text {\n margin-bottom: var(--spacer-1);\n}\n.card__connections {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n.card__edit-button {\n align-self: flex-start;\n}\n\n.connections {\n display: inline-flex;\n}\n.connections__label {\n margin-right: var(--spacer-4);\n}\n.connections__list {\n display: inline-flex;\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.connections__connection, .connections__create-form {\n margin: var(--spacer-0) var(--spacer-2) var(--spacer-2) var(--spacer-1);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-formly-datepicker-field-formly-datepicker-field-stories.7dbadbfb.iframe.bundle.js b/design-organisms-formly-datepicker-field-formly-datepicker-field-stories.7dbadbfb.iframe.bundle.js
new file mode 100644
index 000000000..064667338
--- /dev/null
+++ b/design-organisms-formly-datepicker-field-formly-datepicker-field-stories.7dbadbfb.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6009],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{FE:()=>FormlyDatepickerFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_datepicker_field_componentngResource=__webpack_require__("./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.scss?ngResource"),formly_datepicker_field_componentngResource_default=__webpack_require__.n(formly_datepicker_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let CustomAdapter=class CustomAdapter extends ng_bootstrap.dn{constructor(){super(...arguments),this.DELIMITER="-"}fromModel(value){if(value){let date=value.split(this.DELIMITER);return{day:parseInt(date[2],10),month:parseInt(date[1],10),year:parseInt(date[0],10)}}return null}toModel(date){if(null==date)return"";const dayString=`${date.day}`.padStart(2,"0"),monthString=`${date.month}`.padStart(2,"0");return`${`${date.year}`.padStart(4,"0")}${this.DELIMITER}${monthString}${this.DELIMITER}${dayString}`}};CustomAdapter=(0,tslib_es6.Cg)([(0,core.Injectable)()],CustomAdapter);let CustomDateParserFormatter=class CustomDateParserFormatter extends ng_bootstrap.tN{constructor(){super(...arguments),this.DELIMITER="/"}parse(value){if(null==value)return null;let date=value.split(this.DELIMITER);return{day:parseInt(date[2],10),month:parseInt(date[1],10),year:parseInt(date[0],10)}}format(date){if(null==date)return"";const dayString=`${date.day}`.padStart(2,"0"),monthString=`${date.month}`.padStart(2,"0");return`${`${date.year}`.padStart(4,"0")}${this.DELIMITER}${monthString}${this.DELIMITER}${dayString}`}};CustomDateParserFormatter=(0,tslib_es6.Cg)([(0,core.Injectable)()],CustomDateParserFormatter);let FormlyDatepickerFieldComponent=class FormlyDatepickerFieldComponent extends ngx_formly_core.PU{constructor(ngbCalendar,dateAdapter){super(),this.ngbCalendar=ngbCalendar,this.dateAdapter=dateAdapter}get today(){return this.dateAdapter.toModel(this.ngbCalendar.getToday())}static{this.ctorParameters=()=>[{type:ng_bootstrap.iF},{type:ng_bootstrap.dn}]}};FormlyDatepickerFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-datepicker",template:'\n
\n \n {{ to.label }}\n @if (to.required) {\n *\n }\n \n \n\n
\n
\n\n\n \n \n',providers:[{provide:ng_bootstrap.dn,useClass:CustomAdapter},{provide:ng_bootstrap.tN,useClass:CustomDateParserFormatter}],standalone:!0,imports:[fesm2022_forms.X1,button_component.Q,ngx_formly_core.qy,ng_bootstrap.IQ,icon_component.R],styles:[formly_datepicker_field_componentngResource_default()]})],FormlyDatepickerFieldComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>isObservable});var _Observable__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_isFunction__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");function isObservable(obj){return!!obj&&(obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__.c||(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.lift)&&(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.subscribe))}},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_forms__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),_ngx_formly_bootstrap__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs"),_ngx_formly_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_formly_datepicker_field_component__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/FormlyDatepickerFieldComponent",component:_formly_datepicker_field_component__WEBPACK_IMPORTED_MODULE_1__.FE,args:{form:new _angular_forms__WEBPACK_IMPORTED_MODULE_2__.gE({}),model:{},options:{},fields:[{key:"date",type:"datepicker"}]},decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_forms__WEBPACK_IMPORTED_MODULE_2__.X1,_ngx_formly_bootstrap__WEBPACK_IMPORTED_MODULE_3__.u,_ngx_formly_core__WEBPACK_IMPORTED_MODULE_4__.qy.forRoot({types:[{name:"datepicker",component:_formly_datepicker_field_component__WEBPACK_IMPORTED_MODULE_1__.FE}]})]}),(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.componentWrapperDecorator)((()=>'\n \n '))]},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.disabled {\n cursor: not-allowed;\n}\n\n.btn-outline-light {\n border-color: var(--bs-white);\n color: var(--bs-white);\n display: flex;\n align-items: center;\n}\n\ndiv.datepicker-day {\n background-color: var(--wiki-bg-solid);\n color: var(--bs-white);\n text-align: center;\n transition: background-color 0.2s ease-in-out;\n transition: color 0.2s ease-in-out;\n}\ndiv.datepicker-day:hover {\n color: var(--bs-black);\n background-color: grey;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-formly-datepicker-field-formly-datepicker-field-stories.de8e8e92.iframe.bundle.js b/design-organisms-formly-datepicker-field-formly-datepicker-field-stories.de8e8e92.iframe.bundle.js
deleted file mode 100644
index 1934be4f0..000000000
--- a/design-organisms-formly-datepicker-field-formly-datepicker-field-stories.de8e8e92.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6009],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{FE:()=>FormlyDatepickerFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_datepicker_field_componentngResource=__webpack_require__("./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.scss?ngResource"),formly_datepicker_field_componentngResource_default=__webpack_require__.n(formly_datepicker_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let CustomAdapter=class CustomAdapter extends ng_bootstrap.dn{constructor(){super(...arguments),this.DELIMITER="-"}fromModel(value){if(value){let date=value.split(this.DELIMITER);return{day:parseInt(date[2],10),month:parseInt(date[1],10),year:parseInt(date[0],10)}}return null}toModel(date){if(null==date)return"";const dayString=`${date.day}`.padStart(2,"0"),monthString=`${date.month}`.padStart(2,"0");return`${`${date.year}`.padStart(4,"0")}${this.DELIMITER}${monthString}${this.DELIMITER}${dayString}`}};CustomAdapter=(0,tslib_es6.Cg)([(0,core.Injectable)()],CustomAdapter);let CustomDateParserFormatter=class CustomDateParserFormatter extends ng_bootstrap.tN{constructor(){super(...arguments),this.DELIMITER="/"}parse(value){if(null==value)return null;let date=value.split(this.DELIMITER);return{day:parseInt(date[2],10),month:parseInt(date[1],10),year:parseInt(date[0],10)}}format(date){if(null==date)return"";const dayString=`${date.day}`.padStart(2,"0"),monthString=`${date.month}`.padStart(2,"0");return`${`${date.year}`.padStart(4,"0")}${this.DELIMITER}${monthString}${this.DELIMITER}${dayString}`}};CustomDateParserFormatter=(0,tslib_es6.Cg)([(0,core.Injectable)()],CustomDateParserFormatter);let FormlyDatepickerFieldComponent=class FormlyDatepickerFieldComponent extends ngx_formly_core.PU{constructor(ngbCalendar,dateAdapter){super(),this.ngbCalendar=ngbCalendar,this.dateAdapter=dateAdapter}get today(){return this.dateAdapter.toModel(this.ngbCalendar.getToday())}static{this.ctorParameters=()=>[{type:ng_bootstrap.iF},{type:ng_bootstrap.dn}]}};FormlyDatepickerFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-datepicker",template:'\n
\n \n {{ to.label }}\n @if (to.required) {\n *\n }\n \n \n\n
\n
\n\n\n \n \n',providers:[{provide:ng_bootstrap.dn,useClass:CustomAdapter},{provide:ng_bootstrap.tN,useClass:CustomDateParserFormatter}],standalone:!0,imports:[fesm2022_forms.X1,button_component.Q,ngx_formly_core.qy,ng_bootstrap.IQ,icon_component.R],styles:[formly_datepicker_field_componentngResource_default()]})],FormlyDatepickerFieldComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>isObservable});var _Observable__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_isFunction__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");function isObservable(obj){return!!obj&&(obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__.c||(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.lift)&&(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.subscribe))}},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_forms__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),_ngx_formly_bootstrap__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs"),_ngx_formly_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),_formly_datepicker_field_component__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/FormlyDatepickerFieldComponent",component:_formly_datepicker_field_component__WEBPACK_IMPORTED_MODULE_1__.FE,args:{form:new _angular_forms__WEBPACK_IMPORTED_MODULE_2__.gE({}),model:{},options:{},fields:[{key:"date",type:"datepicker"}]},decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_forms__WEBPACK_IMPORTED_MODULE_2__.X1,_ngx_formly_bootstrap__WEBPACK_IMPORTED_MODULE_3__.u,_ngx_formly_core__WEBPACK_IMPORTED_MODULE_4__.qy.forRoot({types:[{name:"datepicker",component:_formly_datepicker_field_component__WEBPACK_IMPORTED_MODULE_1__.FE}]})]}),(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.componentWrapperDecorator)((()=>'\n \n '))]},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-datepicker-field/formly-datepicker-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.disabled {\n cursor: not-allowed;\n}\n\n.btn-outline-light {\n border-color: var(--bs-white);\n color: var(--bs-white);\n display: flex;\n align-items: center;\n}\n\ndiv.datepicker-day {\n background-color: var(--wiki-bg-solid);\n color: var(--bs-white);\n text-align: center;\n transition: background-color 0.2s ease-in-out;\n transition: color 0.2s ease-in-out;\n}\ndiv.datepicker-day:hover {\n color: var(--bs-black);\n background-color: grey;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-formly-select-disable-formly-select-disable-field-stories.8089d3f1.iframe.bundle.js b/design-organisms-formly-select-disable-formly-select-disable-field-stories.8089d3f1.iframe.bundle.js
new file mode 100644
index 000000000..ecf51da2b
--- /dev/null
+++ b/design-organisms-formly-select-disable-formly-select-disable-field-stories.8089d3f1.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8630],{"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,iR:()=>numberValidator,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,tu:()=>notNumberMesage,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},notNumberMesage={name:"notNumber",message:"Your input is not a number."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const numberValidator={name:"notNumber",validation:function isNumberValidation(control){const isNumberType="number"==typeof control.value,isNumberString="string"==typeof control.value&&!isNaN(control.value),isNumber=isNumberType||isNumberString;return isNumber?null:{notNumber:!isNumber}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>isObservable});var _Observable__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_isFunction__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");function isObservable(obj){return!!obj&&(obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__.c||(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.lift)&&(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.subscribe))}},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/organisms/formly-select-disable/formly-select-disable-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,Loading:()=>Loading,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_forms__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),_ngx_formly_core__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/app/_services/formly/validators.ts"),_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts");const dummyConfig={key:"username",type:"select-disable",props:{label:"User",labelProp:"username",valueProp:"username",options:(0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)([{username:"john_doe",password:"password123",email:"john_doe@example.com",is_active:!0},{username:"jane_doe",password:"jane_password",email:"jane_doe@example.com",is_active:!0,groups:[1,2]},{username:"admin",password:"admin_password",email:"admin@example.com",is_active:!0,is_staff:!0,is_superuser:!0},{username:"bob_smith",password:"bob_password",email:"bob_smith@example.com",is_active:!1},{username:"sara_smith",password:"sara_password",email:"sara_smith@example.com",is_active:!0,api_permissions:["read","write"]},{username:"jim_brown",password:"jim_password",email:"jim_brown@example.com",is_active:!0,group_details:[{name:"Group A",pk:1},{name:"Group B",pk:2}]},{username:"lisa_green",password:"lisa_password",email:"lisa_green@example.com",is_active:!0,pk:123},{username:"jessica_jones",password:"jessica_password",email:"jessica_jones@example.com",is_active:!1,groups:[2,3]},{username:"peter_parker",password:"spidey_password",email:"peter_parker@example.com",is_active:!0},{username:"mary_jane",password:"mary_password",email:"mary_jane@example.com",is_active:!0,is_staff:!0},{username:"clark_kent",password:"superman_password",email:"clark_kent@example.com",is_active:!0,is_superuser:!0},{username:"bruce_wayne",password:"batman_password",email:"bruce_wayne@example.com",is_active:!1,group_details:[{name:"Justice League",pk:10}]},{username:"diana_prince",password:"wonder_woman_password",email:"diana_prince@example.com",is_active:!0,api_permissions:["read"]},{username:"thor_odinson",password:"hammer_password",email:"thor_odinson@example.com",is_active:!0,groups:[5]},{username:"steve_rogers",password:"cap_password",email:"steve_rogers@example.com",is_active:!1},{username:"tony_stark",password:"ironman_password",email:"tony_stark@example.com",is_active:!0},{username:"natasha_romanoff",password:"black_widow_password",email:"natasha_romanoff@example.com",is_active:!0,groups:[4]},{username:"vision",password:"mindstone_password",email:"vision@example.com",is_active:!0},{username:"wanda_maximoff",password:"scarlet_witch_password",email:"wanda_maximoff@example.com",is_active:!0,group_details:[{name:"Avengers",pk:11}]},{username:"sam_wilson",password:"falcon_password",email:"sam_wilson@example.com",is_active:!1},{username:"bucky_barnes",password:"winter_soldier_password",email:"bucky_barnes@example.com",is_active:!0},{username:"stephen_strange",password:"dr_strange_password",email:"stephen_strange@example.com",is_active:!0},{username:"pietro_maximoff",password:"quicksilver_password",email:"pietro_maximoff@example.com",is_active:!1},{username:"groot",email:"groot@example.com",is_active:!0},{username:"rocket",password:"rocket_password",email:"rocket@example.com",is_active:!0},{username:"drax",password:"drax_password",email:"drax@example.com",is_active:!0,groups:[5]},{username:"gamora",password:"gamora_password",email:"gamora@example.com",is_active:!1},{username:"nebula",password:"nebula_password",email:"nebula@example.com",is_active:!0},{username:"mantis",email:"mantis@example.com",is_active:!0},{username:"okoye",password:"okoye_password",email:"okoye@example.com",is_active:!0,group_details:[{name:"Dora Milaje",pk:12}]},{username:"shuri",email:"shuri@example.com",is_active:!1},{username:"nakia",password:"nakia_password",email:"nakia@example.com",is_active:!0},{username:"ramonda",email:"ramonda@example.com",is_active:!0},{username:"mbaku",password:"mbaku_password",email:"mbaku@example.com",is_active:!0,groups:[4]},{username:"erik_killmonger",password:"killmonger_password",email:"erik_killmonger@example.com",is_active:!1},{username:"hank_pym",password:"antman_password",email:"hank_pym@example.com",is_active:!0,group_details:[{name:"Ant-Man and the Wasp",pk:13}]}]),warningMessage:"The user you selected is already member of this campaign",additionalProperties:{disabledExpression:selectOption=>isInGroup(selectOption,"group a"),tooltipMessage:"Members typically represent the individual player characters + the GM(s)",showWrapperLabel:!0}}},isInGroup=(selectOption,groupName)=>{const groupsOfUser=selectOption.group_details;if(!(null!=groupsOfUser))return!1;return groupsOfUser.some((group=>group.name.toLowerCase()===groupName))},__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/FormlySelectDisableFieldComponent",component:_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_2__.D,args:{form:new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.gE({}),model:{},options:{},fields:[dummyConfig]},decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_forms__WEBPACK_IMPORTED_MODULE_4__.X1,_angular_forms__WEBPACK_IMPORTED_MODULE_4__.YN,_ngx_formly_core__WEBPACK_IMPORTED_MODULE_5__.qy.forRoot({types:[{name:"select-disable",component:_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_2__.D}],validationMessages:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_1__.h9],validators:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_1__.yt]})],providers:[{provide:_angular_forms__WEBPACK_IMPORTED_MODULE_4__.kq,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.forwardRef)((()=>_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_2__.D)),multi:!0}]}),(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.componentWrapperDecorator)((()=>'\n \n '))]},Default=(args=>({props:{...args,fields:[dummyConfig]}})).bind({});Default.args={};const Loading=(args=>({props:{...args,fields:[{...dummyConfig,props:{...dummyConfig.props,options:(0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(null)}}]}})).bind({});Loading.args={};const __namedExportsOrder=["Default","Loading"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n fields: [dummyConfig]\n }\n})",...Default.parameters?.docs?.source}}},Loading.parameters={...Loading.parameters,docs:{...Loading.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n fields: [{\n ...dummyConfig,\n props: {\n ...dummyConfig.props,\n options: of(null)\n }\n }]\n }\n})",...Loading.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-formly-select-disable-formly-select-disable-field-stories.eac70668.iframe.bundle.js b/design-organisms-formly-select-disable-formly-select-disable-field-stories.eac70668.iframe.bundle.js
deleted file mode 100644
index 68a6c5d25..000000000
--- a/design-organisms-formly-select-disable-formly-select-disable-field-stories.eac70668.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8630],{"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/isObservable.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>isObservable});var _Observable__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_isFunction__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/isFunction.js");function isObservable(obj){return!!obj&&(obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__.c||(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.lift)&&(0,_isFunction__WEBPACK_IMPORTED_MODULE_1__.T)(obj.subscribe))}},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/organisms/formly-select-disable/formly-select-disable-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,Loading:()=>Loading,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_forms__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),_ngx_formly_core__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/app/_services/formly/validators.ts"),_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts");const dummyConfig={key:"username",type:"select-disable",props:{label:"User",labelProp:"username",valueProp:"username",options:(0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)([{username:"john_doe",password:"password123",email:"john_doe@example.com",is_active:!0},{username:"jane_doe",password:"jane_password",email:"jane_doe@example.com",is_active:!0,groups:[1,2]},{username:"admin",password:"admin_password",email:"admin@example.com",is_active:!0,is_staff:!0,is_superuser:!0},{username:"bob_smith",password:"bob_password",email:"bob_smith@example.com",is_active:!1},{username:"sara_smith",password:"sara_password",email:"sara_smith@example.com",is_active:!0,api_permissions:["read","write"]},{username:"jim_brown",password:"jim_password",email:"jim_brown@example.com",is_active:!0,group_details:[{name:"Group A",pk:1},{name:"Group B",pk:2}]},{username:"lisa_green",password:"lisa_password",email:"lisa_green@example.com",is_active:!0,pk:123},{username:"jessica_jones",password:"jessica_password",email:"jessica_jones@example.com",is_active:!1,groups:[2,3]},{username:"peter_parker",password:"spidey_password",email:"peter_parker@example.com",is_active:!0},{username:"mary_jane",password:"mary_password",email:"mary_jane@example.com",is_active:!0,is_staff:!0},{username:"clark_kent",password:"superman_password",email:"clark_kent@example.com",is_active:!0,is_superuser:!0},{username:"bruce_wayne",password:"batman_password",email:"bruce_wayne@example.com",is_active:!1,group_details:[{name:"Justice League",pk:10}]},{username:"diana_prince",password:"wonder_woman_password",email:"diana_prince@example.com",is_active:!0,api_permissions:["read"]},{username:"thor_odinson",password:"hammer_password",email:"thor_odinson@example.com",is_active:!0,groups:[5]},{username:"steve_rogers",password:"cap_password",email:"steve_rogers@example.com",is_active:!1},{username:"tony_stark",password:"ironman_password",email:"tony_stark@example.com",is_active:!0},{username:"natasha_romanoff",password:"black_widow_password",email:"natasha_romanoff@example.com",is_active:!0,groups:[4]},{username:"vision",password:"mindstone_password",email:"vision@example.com",is_active:!0},{username:"wanda_maximoff",password:"scarlet_witch_password",email:"wanda_maximoff@example.com",is_active:!0,group_details:[{name:"Avengers",pk:11}]},{username:"sam_wilson",password:"falcon_password",email:"sam_wilson@example.com",is_active:!1},{username:"bucky_barnes",password:"winter_soldier_password",email:"bucky_barnes@example.com",is_active:!0},{username:"stephen_strange",password:"dr_strange_password",email:"stephen_strange@example.com",is_active:!0},{username:"pietro_maximoff",password:"quicksilver_password",email:"pietro_maximoff@example.com",is_active:!1},{username:"groot",email:"groot@example.com",is_active:!0},{username:"rocket",password:"rocket_password",email:"rocket@example.com",is_active:!0},{username:"drax",password:"drax_password",email:"drax@example.com",is_active:!0,groups:[5]},{username:"gamora",password:"gamora_password",email:"gamora@example.com",is_active:!1},{username:"nebula",password:"nebula_password",email:"nebula@example.com",is_active:!0},{username:"mantis",email:"mantis@example.com",is_active:!0},{username:"okoye",password:"okoye_password",email:"okoye@example.com",is_active:!0,group_details:[{name:"Dora Milaje",pk:12}]},{username:"shuri",email:"shuri@example.com",is_active:!1},{username:"nakia",password:"nakia_password",email:"nakia@example.com",is_active:!0},{username:"ramonda",email:"ramonda@example.com",is_active:!0},{username:"mbaku",password:"mbaku_password",email:"mbaku@example.com",is_active:!0,groups:[4]},{username:"erik_killmonger",password:"killmonger_password",email:"erik_killmonger@example.com",is_active:!1},{username:"hank_pym",password:"antman_password",email:"hank_pym@example.com",is_active:!0,group_details:[{name:"Ant-Man and the Wasp",pk:13}]}]),warningMessage:"The user you selected is already member of this campaign",additionalProperties:{disabledExpression:selectOption=>isInGroup(selectOption,"group a"),tooltipMessage:"Members typically represent the individual player characters + the GM(s)",showWrapperLabel:!0}}},isInGroup=(selectOption,groupName)=>{const groupsOfUser=selectOption.group_details;if(!(null!=groupsOfUser))return!1;return groupsOfUser.some((group=>group.name.toLowerCase()===groupName))},__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/FormlySelectDisableFieldComponent",component:_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_2__.D,args:{form:new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.gE({}),model:{},options:{},fields:[dummyConfig]},decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_forms__WEBPACK_IMPORTED_MODULE_4__.X1,_angular_forms__WEBPACK_IMPORTED_MODULE_4__.YN,_ngx_formly_core__WEBPACK_IMPORTED_MODULE_5__.qy.forRoot({types:[{name:"select-disable",component:_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_2__.D}],validationMessages:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_1__.h9],validators:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_1__.yt]})],providers:[{provide:_angular_forms__WEBPACK_IMPORTED_MODULE_4__.kq,useExisting:(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.forwardRef)((()=>_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_2__.D)),multi:!0}]}),(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.componentWrapperDecorator)((()=>'\n \n '))]},Default=(args=>({props:{...args,fields:[dummyConfig]}})).bind({});Default.args={};const Loading=(args=>({props:{...args,fields:[{...dummyConfig,props:{...dummyConfig.props,options:(0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(null)}}]}})).bind({});Loading.args={};const __namedExportsOrder=["Default","Loading"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n fields: [dummyConfig]\n }\n})",...Default.parameters?.docs?.source}}},Loading.parameters={...Loading.parameters,docs:{...Loading.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n fields: [{\n ...dummyConfig,\n props: {\n ...dummyConfig.props,\n options: of(null)\n }\n }]\n }\n})",...Loading.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-image-carousel-image-carousel-stories.75dd7557.iframe.bundle.js b/design-organisms-image-carousel-image-carousel-stories.75dd7557.iframe.bundle.js
deleted file mode 100644
index 029ddd5a1..000000000
--- a/design-organisms-image-carousel-image-carousel-stories.75dd7557.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[1379],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/image-carousel/image-carousel.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{H:()=>ImageCarouselComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_carousel_componentngResource=__webpack_require__("./src/design/organisms/image-carousel/image-carousel.component.scss?ngResource"),image_carousel_componentngResource_default=__webpack_require__.n(image_carousel_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ImageCarouselComponent=class ImageCarouselComponent{constructor(){this.images=core.input.required(),this.serverUrl=core.input.required(),this.canDelete=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canUpdate=(0,core.input)(!1),this.currentSlideIndex=core.input.required(),this.deleteImage=new core.EventEmitter,this.createImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.slide=new core.EventEmitter,this.slideEnd=new core.EventEmitter}onSlide(event){const slideIndexStr=event.current.split("-").pop();if(null==slideIndexStr)throw`ImageCarousel - Image with id '${event.current}' does not match the expected pattern of 'imageIndex-'!`;const nextSlideIndex=parseInt(slideIndexStr);this.slide.emit({event,index:nextSlideIndex})}onSlideEnd(event){this.slide.emit({event,index:this.currentSlideIndex()})}onImageCreate(){this.canCreate()&&this.createImage.emit()}onImageUpdate(){if(!this.canUpdate())return;const image=this.images()[this.currentSlideIndex()];this.updateImage.emit(image)}onImageDelete(){if(!this.canDelete())return;const image=this.images()[this.currentSlideIndex()];this.deleteImage.emit(image)}static{this.propDecorators={images:[{type:core.Input,args:[{isSignal:!0,alias:"images",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],currentSlideIndex:[{type:core.Input,args:[{isSignal:!0,alias:"currentSlideIndex",required:!0,transform:void 0}]}],deleteImage:[{type:core.Output}],createImage:[{type:core.Output}],updateImage:[{type:core.Output}],slide:[{type:core.Output}],slideEnd:[{type:core.Output}]}}};ImageCarouselComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-carousel",template:'@if (images() && images().length > 0) {\n 1"\n [showNavigationIndicators]="images().length > 1"\n [activeId]="\'imageIndex-\' + currentSlideIndex()"\n (slide)="onSlide($event)"\n (slid)="onSlideEnd($event)"\n >\n @for (image of images(); track image.pk) {\n \n \n
\n
\n \n }\n \n} @else {\n \n}\n\n\x3c!-- Image Edit/Delete/Create Buttons --\x3e\n\n \x3c!-- Create Image Button --\x3e\n @if (canCreate()) {\n \n }\n\n \x3c!-- Update Image button --\x3e\n @if (images().length > 0 && canUpdate()) {\n \n }\n\n \x3c!-- Delete Image Button --\x3e\n @if (images().length > 1 && canDelete()) {\n \n }\n
\n\n\n \n \n \n
\n
\n
This article doesn\'t have an image yet
\n
\n
\n \n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[ng_bootstrap.wA,button_component.Q,common.NgTemplateOutlet],styles:[image_carousel_componentngResource_default()]})],ImageCarouselComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/organisms/image-carousel/image-carousel.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoImages:()=>NoImages,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs");const dummyImages=[{pk:1,image:"/breeds/germanshepherd/IMG_20200801_005830_387.jpg",name:"Image 1",character_article:1,creature_article:void 0,encounter_article:void 0,item_article:void 0,location_article:void 0,organization_article:void 0,article_type:"Type A"},{pk:2,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Image 2",character_article:void 0,creature_article:3,encounter_article:void 0,item_article:void 0,location_article:void 0,organization_article:void 0,article_type:"Type B"},{pk:3,image:"/breeds/malinois/n02105162_1572.jpg",name:"Image 3",character_article:void 0,creature_article:void 0,encounter_article:5,item_article:void 0,location_article:void 0,organization_article:void 0,article_type:"Type C"},{pk:4,image:"/breeds/ridgeback-rhodesian/n02087394_1352.jpg",name:"Image 4",character_article:void 0,creature_article:void 0,encounter_article:void 0,item_article:7,location_article:void 0,organization_article:void 0,article_type:"Type D"}],__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/ImageCarouselComponent",component:__webpack_require__("./src/design/organisms/image-carousel/image-carousel.component.ts").H,args:{images:dummyImages,serverUrl:"https://images.dog.ceo",canCreate:!0,canUpdate:!0,canDelete:!0,currentSlideIndex:0}},Template=args=>({props:{...args,deleteImage:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("deleteImage"),createImage:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("createImage"),updateImage:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("updateImage"),slide:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("slide"),slideEnd:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("slideEnd")}}),Default=Template.bind({});Default.args={};const NoImages=Template.bind({});NoImages.args={images:[]};const __namedExportsOrder=["Default","NoImages"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n deleteImage: action('deleteImage'),\n createImage: action('createImage'),\n updateImage: action('updateImage'),\n slide: action('slide'),\n slideEnd: action('slideEnd')\n }\n})",...Default.parameters?.docs?.source}}},NoImages.parameters={...NoImages.parameters,docs:{...NoImages.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n deleteImage: action('deleteImage'),\n createImage: action('createImage'),\n updateImage: action('updateImage'),\n slide: action('slide'),\n slideEnd: action('slideEnd')\n }\n})",...NoImages.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/image-carousel/image-carousel.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".image-container img {\n object-fit: contain;\n width: 100%;\n max-height: 10rem;\n}\n@media (min-width: 768px) {\n .image-container img {\n max-height: 18rem;\n }\n}\n\n.image-caption {\n position: absolute;\n background: var(--wiki-bg-transparent);\n width: 50%;\n text-align: center;\n bottom: 20%;\n margin-left: auto;\n margin-right: auto;\n left: 0;\n right: 0;\n}\n.image-caption p {\n margin: 0;\n}\n\n.edit-image-buttons {\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: center;\n transition: opacity 0.2s;\n margin-top: var(--spacer-2);\n}\n\n.defaultImage {\n position: relative;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-image-carousel-image-carousel-stories.e78e5357.iframe.bundle.js b/design-organisms-image-carousel-image-carousel-stories.e78e5357.iframe.bundle.js
new file mode 100644
index 000000000..e71fd821c
--- /dev/null
+++ b/design-organisms-image-carousel-image-carousel-stories.e78e5357.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[1379],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/image-carousel/image-carousel.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{H:()=>ImageCarouselComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_carousel_componentngResource=__webpack_require__("./src/design/organisms/image-carousel/image-carousel.component.scss?ngResource"),image_carousel_componentngResource_default=__webpack_require__.n(image_carousel_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ImageCarouselComponent=class ImageCarouselComponent{constructor(){this.images=core.input.required(),this.serverUrl=core.input.required(),this.canDelete=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canUpdate=(0,core.input)(!1),this.currentSlideIndex=core.input.required(),this.deleteImage=new core.EventEmitter,this.createImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.slide=new core.EventEmitter,this.slideEnd=new core.EventEmitter}onSlide(event){const slideIndexStr=event.current.split("-").pop();if(null==slideIndexStr)throw`ImageCarousel - Image with id '${event.current}' does not match the expected pattern of 'imageIndex-'!`;const nextSlideIndex=parseInt(slideIndexStr);this.slide.emit({event,index:nextSlideIndex})}onSlideEnd(event){this.slide.emit({event,index:this.currentSlideIndex()})}onImageCreate(){this.canCreate()&&this.createImage.emit()}onImageUpdate(){if(!this.canUpdate())return;const image=this.images()[this.currentSlideIndex()];this.updateImage.emit(image)}onImageDelete(){if(!this.canDelete())return;const image=this.images()[this.currentSlideIndex()];this.deleteImage.emit(image)}static{this.propDecorators={images:[{type:core.Input,args:[{isSignal:!0,alias:"images",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],currentSlideIndex:[{type:core.Input,args:[{isSignal:!0,alias:"currentSlideIndex",required:!0,transform:void 0}]}],deleteImage:[{type:core.Output}],createImage:[{type:core.Output}],updateImage:[{type:core.Output}],slide:[{type:core.Output}],slideEnd:[{type:core.Output}]}}};ImageCarouselComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-carousel",template:'@if (images() && images().length > 0) {\n 1"\n [showNavigationIndicators]="images().length > 1"\n [activeId]="\'imageIndex-\' + currentSlideIndex()"\n (slide)="onSlide($event)"\n (slid)="onSlideEnd($event)"\n >\n @for (image of images(); track image.pk) {\n \n \n
\n
\n \n }\n \n} @else {\n \n}\n\n\x3c!-- Image Edit/Delete/Create Buttons --\x3e\n\n \x3c!-- Create Image Button --\x3e\n @if (canCreate()) {\n \n }\n\n \x3c!-- Update Image button --\x3e\n @if (images().length > 0 && canUpdate()) {\n \n }\n\n \x3c!-- Delete Image Button --\x3e\n @if (images().length > 1 && canDelete()) {\n \n }\n
\n\n\n \n \n \n
\n
\n
This article doesn\'t have an image yet
\n
\n
\n \n \n \n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[ng_bootstrap.wA,button_component.Q,common.NgTemplateOutlet],styles:[image_carousel_componentngResource_default()]})],ImageCarouselComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/organisms/image-carousel/image-carousel.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoImages:()=>NoImages,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs");const dummyImages=[{pk:1,image:"/breeds/germanshepherd/IMG_20200801_005830_387.jpg",name:"Image 1",character_article:1,creature_article:void 0,encounter_article:void 0,item_article:void 0,location_article:void 0,organization_article:void 0,article_type:"Type A"},{pk:2,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Image 2",character_article:void 0,creature_article:3,encounter_article:void 0,item_article:void 0,location_article:void 0,organization_article:void 0,article_type:"Type B"},{pk:3,image:"/breeds/malinois/n02105162_1572.jpg",name:"Image 3",character_article:void 0,creature_article:void 0,encounter_article:5,item_article:void 0,location_article:void 0,organization_article:void 0,article_type:"Type C"},{pk:4,image:"/breeds/ridgeback-rhodesian/n02087394_1352.jpg",name:"Image 4",character_article:void 0,creature_article:void 0,encounter_article:void 0,item_article:7,location_article:void 0,organization_article:void 0,article_type:"Type D"}],__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/ImageCarouselComponent",component:__webpack_require__("./src/design/organisms/image-carousel/image-carousel.component.ts").H,args:{images:dummyImages,serverUrl:"https://images.dog.ceo",canCreate:!0,canUpdate:!0,canDelete:!0,currentSlideIndex:0}},Template=args=>({props:{...args,deleteImage:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("deleteImage"),createImage:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("createImage"),updateImage:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("updateImage"),slide:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("slide"),slideEnd:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("slideEnd")}}),Default=Template.bind({});Default.args={};const NoImages=Template.bind({});NoImages.args={images:[]};const __namedExportsOrder=["Default","NoImages"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n deleteImage: action('deleteImage'),\n createImage: action('createImage'),\n updateImage: action('updateImage'),\n slide: action('slide'),\n slideEnd: action('slideEnd')\n }\n})",...Default.parameters?.docs?.source}}},NoImages.parameters={...NoImages.parameters,docs:{...NoImages.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n deleteImage: action('deleteImage'),\n createImage: action('createImage'),\n updateImage: action('updateImage'),\n slide: action('slide'),\n slideEnd: action('slideEnd')\n }\n})",...NoImages.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/image-carousel/image-carousel.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".image-container img {\n object-fit: contain;\n width: 100%;\n max-height: 10rem;\n}\n@media (min-width: 768px) {\n .image-container img {\n max-height: 18rem;\n }\n}\n\n.image-caption {\n position: absolute;\n background: var(--wiki-bg-transparent);\n width: 50%;\n text-align: center;\n bottom: 20%;\n margin-left: auto;\n margin-right: auto;\n left: 0;\n right: 0;\n}\n.image-caption p {\n margin: 0;\n}\n\n.edit-image-buttons {\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: center;\n transition: opacity 0.2s;\n margin-top: var(--spacer-2);\n}\n\n.defaultImage {\n position: relative;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-ngx-leaflet-map-ngx-leaflet-map-stories.07902107.iframe.bundle.js b/design-organisms-ngx-leaflet-map-ngx-leaflet-map-stories.07902107.iframe.bundle.js
new file mode 100644
index 000000000..d5ad13331
--- /dev/null
+++ b/design-organisms-ngx-leaflet-map-ngx-leaflet-map-stories.07902107.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[9133],{"./src/app/_services/article/map.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>dummyMaps,r:()=>dummyMap});const dummyMap={getAbsoluteRouterUrl:()=>"/map/url",pk:2,name:"The World",image:"/media/Aldrune_World_1.jpg",icon:"/media/globe",update_datetime:"2021-06-26T17:10:35.352119Z",campaign:1,campaign_details:{name:"Aldrune",id:1},markers:__webpack_require__("./src/app/_services/article/marker.service.mock.ts").a},dummyMaps=[{getAbsoluteRouterUrl:()=>"/map/url1",article_type:"map",description:"A map of East Academy Year 2 Dorms ",pk:13,name_full:"East Academy Year 2 Dorms ",name:"East Academy Year 2 Dorms ",campaign_details:{name:"Empress-City",id:3},update_datetime:"2024-08-25T20:44:28.629572Z",icon:void 0},{getAbsoluteRouterUrl:()=>"/map/url2",article_type:"map",description:"A map of Forgian",pk:12,name_full:"Forgian",name:"Forgian",campaign_details:{name:"Empress-City",id:4},update_datetime:"2024-08-23T21:58:05.094772Z",icon:void 0}]},"./src/app/_services/article/marker.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{a:()=>dummyMarkers});const dummyMarkers=[{getAbsoluteRouterUrl:()=>"/marker1/url",pk:106,color:void 0,icon:void 0,longitude:532,latitude:553,map:2,map_details:{name:"The World"},location:50,location_details:{name:"Galway",description:"The New Capital of Fen's High Kingdom
\n
\nGalway City Breakdown
\nEastern Lakeway - 15 Buildings Western Lakeway - 40 Buildings Myria Island - 7 Buildings River District - 46 Buildings, several temporary Refugee Shelters Forest District - 85 Buildings Hill District - 149 Buildings Galway Proper - 60 Buildings
\nTotal - 402 Civilian Buildings in Galway
\nEstimated Population: 4000+
",parent_location_name:"none",sublocations:[]},type:11,type_details:{name:"Settlement",icon:"home",is_text_marker:!1,fontawesome_type:"fa",color:"lightgreen",id:11,update_datetime:"2021-07-27T15:28:05.887185Z",creation_datetime:"2021-07-03T17:56:33.339291Z"},campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/marker2/url",pk:137,color:void 0,icon:void 0,longitude:752,latitude:579,map:2,map_details:{name:"The World"},location:206,location_details:{name:"Eastern sea",description:"The ocean east of Aldrune, now accessible through the path carved by the world serpent.
",parent_location_name:"none",sublocations:["Lighthouse"]},type:23,type_details:{name:"Sea/Ocean",icon:"water",is_text_marker:!0,fontawesome_type:"fa",color:"gray",id:23,update_datetime:"2021-07-27T15:28:05.887185Z",creation_datetime:"2021-07-03T17:56:33.339291Z"},campaign_details:{name:"Aldrune",id:1}}]},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>NgxLeafletMapComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var ngx_leaflet_map_componentngResource=__webpack_require__("./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.component.scss?ngResource"),ngx_leaflet_map_componentngResource_default=__webpack_require__.n(ngx_leaflet_map_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),asymmetrik_ngx_leaflet=__webpack_require__("./node_modules/@asymmetrik/ngx-leaflet/fesm2022/asymmetrik-ngx-leaflet.mjs"),leaflet_src=__webpack_require__("./node_modules/leaflet/dist/leaflet-src.js"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let NgxLeafletMapComponent=class NgxLeafletMapComponent{constructor(routingService){this.routingService=routingService,this.BRIGHT_BG_COLORS=["beige","lightgreen"],this.MAP_BOUNDS=[[200,140],[800,1160]],this.mapData=core.input.required(),this.serverUrl=core.input.required(),this.options={minZoom:-1,maxZoom:2,crs:leaflet_src.CRS.Simple},this.layers=(0,core.computed)((()=>this.initLayers(this.serverUrl(),this.mapData()))),this.layersControl=(0,core.computed)((()=>({baseLayers:{},overlays:{...this.markerLayers()},options:{collapsed:!1}}))),this.markerLayers=(0,core.computed)((()=>this.toMarkerLayers(this.mapData()))),this.hideCoordinatesState=!0}onMapReady(map){this.leafletMap=map,this.leafletMap.fitBounds(this.MAP_BOUNDS);for(const layerName in this.markerLayers())this.markerLayers()[layerName].addTo(this.leafletMap)}initLayers(serverUrl,map){const mapImageUrl=serverUrl+map.image;return[(0,leaflet_src.imageOverlay)(mapImageUrl,this.MAP_BOUNDS)]}toMarkerLayers(map){const layers={};if(!(map.markers&&map.markers.length>0))return layers;for(const mapMarker of map.markers??[]){const layerName=mapMarker.type_details?.name,layer=layerName&&layers.hasOwnProperty(layerName)?layers[layerName]:(0,leaflet_src.layerGroup)();layers[layerName]=layer;(mapMarker.type_details?.is_text_marker?this.createTextMarker(mapMarker):this.createAwesomeMarker(mapMarker)).addTo(layer)}return layers}onMouseMove(event){this.mouseLatitude=event.latlng.lat,this.mouseLongitude=event.latlng.lng}onMapClick(event){const latitude=event.latlng.lat,longitude=event.latlng.lng,popupContentHTML=this.makeFreePopupContentHTML(longitude,latitude);(0,leaflet_src.popup)().setLatLng([latitude,longitude]).setContent(popupContentHTML).openOn(this.leafletMap)}createTextMarker(mapMarker){const markerColor=this.getMarkerColor(mapMarker),textColor=this.getTextColor(markerColor),locationName=mapMarker.location_details?.name;return(0,leaflet_src.marker)([mapMarker.latitude,mapMarker.longitude],{icon:(0,leaflet_src.divIcon)({html:`\n \n ${locationName} \n
\n `})}).bindPopup(this.getPopupText(mapMarker)).bindTooltip(locationName)}createAwesomeMarker(mapMarker){const locationName=mapMarker.location_details?.name;return(0,leaflet_src.marker)([mapMarker.latitude,mapMarker.longitude],{icon:this.createDivIcon(mapMarker)}).bindPopup(this.getPopupText(mapMarker)).bindTooltip(locationName)}getMarkerColor(marker){return marker.color?marker.color:marker.type_details?.color?marker.type_details.color:"grey"}getPopupText(marker){return`${this.makeLocationHeading(marker)} ${this.makeLocationDescription(marker)} ${this.makeSublocationList(marker)}`}makeLocationHeading(marker){return` ${marker.location_details?.name} `}makeLocationDescription(marker){let description=marker.location_details?.description;if(null==description)return"";if(description.split(" ").length>=35){return`${description.split(" ").slice(0,35)} ...`}return description}makeSublocationList(marker){const location=marker.location_details;if(!(location?.sublocations&&location.sublocations.length>0))return"";let sublocationList=" ";for(let sublocationName of location.sublocations){sublocationList+=` ${sublocationName} `}return sublocationList+=" ",` ${sublocationList}`}getTextColor(color){return this.BRIGHT_BG_COLORS.includes(color)?"black":"white"}createDivIcon(mapMarker){const typeIcon=mapMarker.type_details?.icon,iconKind=(0,icon.bS)(typeIcon),typeColor=mapMarker.type_details?.color,customColor=mapMarker.color,color=customColor||typeColor;return(0,leaflet_src.divIcon)({className:"custom-div-icon",html:`\n
\n `,iconSize:[30,42],iconAnchor:[15,42]})}makeFreePopupContentHTML(longitude,latitude){const popUpElement=document.createElement("div");return popUpElement.innerHTML='\n \n \n Add Marker\n \n
\n ',popUpElement.querySelector("#add-marker")?.addEventListener("click",(()=>this.routingService.routeToPath("marker-map-create",{latitude,longitude,map_name:this.mapData().name,campaign:this.mapData().campaign_details?.name}))),popUpElement}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={mapData:[{type:core.Input,args:[{isSignal:!0,alias:"mapData",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}]}}};NgxLeafletMapComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-ngx-leaflet-map",template:'\x3c!-- Leaflet Map --\x3e\n@if (options && layersControl() && layers()) {\n
\n}\n',standalone:!0,imports:[asymmetrik_ngx_leaflet.gI],styles:[ngx_leaflet_map_componentngResource_default()]})],NgxLeafletMapComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _asymmetrik_ngx_leaflet__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@asymmetrik/ngx-leaflet/fesm2022/asymmetrik-ngx-leaflet.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_services_article_map_service_mock__WEBPACK_IMPORTED_MODULE_2__=(__webpack_require__("./node_modules/leaflet/dist/leaflet-src.js"),__webpack_require__("./src/app/_services/article/map.service.mock.ts"));const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/NgxLeafletMapComponent",component:__webpack_require__("./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.component.ts").I,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_asymmetrik_ngx_leaflet__WEBPACK_IMPORTED_MODULE_4__.gI],declarations:[]})],args:{mapData:src_app_services_article_map_service_mock__WEBPACK_IMPORTED_MODULE_2__.r,serverUrl:"https://www.aldrune.com"}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --map-height: 400px;\n}\n@media (min-width: 768px) {\n :host {\n --map-height: 600px;\n }\n}\n\n.map-frame {\n border: 2px solid black;\n height: var(--map-height);\n width: 100%;\n margin: 0 auto 2rem auto;\n}\n\n#leafletMapDiv {\n height: var(--map-height);\n width: 100%;\n margin: 0 auto;\n}\n\n.w-15 {\n width: 15%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-ngx-leaflet-map-ngx-leaflet-map-stories.ee35902a.iframe.bundle.js b/design-organisms-ngx-leaflet-map-ngx-leaflet-map-stories.ee35902a.iframe.bundle.js
deleted file mode 100644
index eacea609e..000000000
--- a/design-organisms-ngx-leaflet-map-ngx-leaflet-map-stories.ee35902a.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[9133],{"./src/app/_services/article/map.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>dummyMaps,r:()=>dummyMap});const dummyMap={getAbsoluteRouterUrl:()=>"/map/url",pk:2,name:"The World",image:"/media/Aldrune_World_1.jpg",icon:"/media/globe",update_datetime:"2021-06-26T17:10:35.352119Z",campaign:1,campaign_details:{name:"Aldrune",id:1},markers:__webpack_require__("./src/app/_services/article/marker.service.mock.ts").a},dummyMaps=[{getAbsoluteRouterUrl:()=>"/map/url1",article_type:"map",description:"A map of East Academy Year 2 Dorms ",pk:13,name_full:"East Academy Year 2 Dorms ",name:"East Academy Year 2 Dorms ",campaign_details:{name:"Empress-City",id:3},update_datetime:"2024-08-25T20:44:28.629572Z",icon:void 0},{getAbsoluteRouterUrl:()=>"/map/url2",article_type:"map",description:"A map of Forgian",pk:12,name_full:"Forgian",name:"Forgian",campaign_details:{name:"Empress-City",id:4},update_datetime:"2024-08-23T21:58:05.094772Z",icon:void 0}]},"./src/app/_services/article/marker.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{a:()=>dummyMarkers});const dummyMarkers=[{getAbsoluteRouterUrl:()=>"/marker1/url",pk:106,color:void 0,icon:void 0,longitude:532,latitude:553,map:2,map_details:{name:"The World"},location:50,location_details:{name:"Galway",description:"The New Capital of Fen's High Kingdom
\n
\nGalway City Breakdown
\nEastern Lakeway - 15 Buildings Western Lakeway - 40 Buildings Myria Island - 7 Buildings River District - 46 Buildings, several temporary Refugee Shelters Forest District - 85 Buildings Hill District - 149 Buildings Galway Proper - 60 Buildings
\nTotal - 402 Civilian Buildings in Galway
\nEstimated Population: 4000+
",parent_location_name:"none",sublocations:[]},type:11,type_details:{name:"Settlement",icon:"home",is_text_marker:!1,fontawesome_type:"fa",color:"lightgreen",id:11,update_datetime:"2021-07-27T15:28:05.887185Z",creation_datetime:"2021-07-03T17:56:33.339291Z"},campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/marker2/url",pk:137,color:void 0,icon:void 0,longitude:752,latitude:579,map:2,map_details:{name:"The World"},location:206,location_details:{name:"Eastern sea",description:"The ocean east of Aldrune, now accessible through the path carved by the world serpent.
",parent_location_name:"none",sublocations:["Lighthouse"]},type:23,type_details:{name:"Sea/Ocean",icon:"water",is_text_marker:!0,fontawesome_type:"fa",color:"gray",id:23,update_datetime:"2021-07-27T15:28:05.887185Z",creation_datetime:"2021-07-03T17:56:33.339291Z"},campaign_details:{name:"Aldrune",id:1}}]},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>NgxLeafletMapComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var ngx_leaflet_map_componentngResource=__webpack_require__("./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.component.scss?ngResource"),ngx_leaflet_map_componentngResource_default=__webpack_require__.n(ngx_leaflet_map_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),asymmetrik_ngx_leaflet=__webpack_require__("./node_modules/@asymmetrik/ngx-leaflet/fesm2022/asymmetrik-ngx-leaflet.mjs"),leaflet_src=__webpack_require__("./node_modules/leaflet/dist/leaflet-src.js"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let NgxLeafletMapComponent=class NgxLeafletMapComponent{constructor(routingService){this.routingService=routingService,this.BRIGHT_BG_COLORS=["beige","lightgreen"],this.MAP_BOUNDS=[[200,140],[800,1160]],this.mapData=core.input.required(),this.serverUrl=core.input.required(),this.options={minZoom:-1,maxZoom:2,crs:leaflet_src.CRS.Simple},this.layers=(0,core.computed)((()=>this.initLayers(this.serverUrl(),this.mapData()))),this.layersControl=(0,core.computed)((()=>({baseLayers:{},overlays:{...this.markerLayers()},options:{collapsed:!1}}))),this.markerLayers=(0,core.computed)((()=>this.toMarkerLayers(this.mapData()))),this.hideCoordinatesState=!0}onMapReady(map){this.leafletMap=map,this.leafletMap.fitBounds(this.MAP_BOUNDS);for(const layerName in this.markerLayers())this.markerLayers()[layerName].addTo(this.leafletMap)}initLayers(serverUrl,map){const mapImageUrl=serverUrl+map.image;return[(0,leaflet_src.imageOverlay)(mapImageUrl,this.MAP_BOUNDS)]}toMarkerLayers(map){const layers={};if(!(map.markers&&map.markers.length>0))return layers;for(const mapMarker of map.markers??[]){const layerName=mapMarker.type_details?.name,layer=layerName&&layers.hasOwnProperty(layerName)?layers[layerName]:(0,leaflet_src.layerGroup)();layers[layerName]=layer;(mapMarker.type_details?.is_text_marker?this.createTextMarker(mapMarker):this.createAwesomeMarker(mapMarker)).addTo(layer)}return layers}onMouseMove(event){this.mouseLatitude=event.latlng.lat,this.mouseLongitude=event.latlng.lng}onMapClick(event){const latitude=event.latlng.lat,longitude=event.latlng.lng,popupContentHTML=this.makeFreePopupContentHTML(longitude,latitude);(0,leaflet_src.popup)().setLatLng([latitude,longitude]).setContent(popupContentHTML).openOn(this.leafletMap)}createTextMarker(mapMarker){const markerColor=this.getMarkerColor(mapMarker),textColor=this.getTextColor(markerColor),locationName=mapMarker.location_details?.name;return(0,leaflet_src.marker)([mapMarker.latitude,mapMarker.longitude],{icon:(0,leaflet_src.divIcon)({html:`\n \n ${locationName} \n
\n `})}).bindPopup(this.getPopupText(mapMarker)).bindTooltip(locationName)}createAwesomeMarker(mapMarker){const locationName=mapMarker.location_details?.name;return(0,leaflet_src.marker)([mapMarker.latitude,mapMarker.longitude],{icon:this.createDivIcon(mapMarker)}).bindPopup(this.getPopupText(mapMarker)).bindTooltip(locationName)}getMarkerColor(marker){return marker.color?marker.color:marker.type_details?.color?marker.type_details.color:"grey"}getPopupText(marker){return`${this.makeLocationHeading(marker)} ${this.makeLocationDescription(marker)} ${this.makeSublocationList(marker)}`}makeLocationHeading(marker){return` ${marker.location_details?.name} `}makeLocationDescription(marker){let description=marker.location_details?.description;if(null==description)return"";if(description.split(" ").length>=35){return`${description.split(" ").slice(0,35)} ...`}return description}makeSublocationList(marker){const location=marker.location_details;if(!(location?.sublocations&&location.sublocations.length>0))return"";let sublocationList=" ";for(let sublocationName of location.sublocations){sublocationList+=` ${sublocationName} `}return sublocationList+=" ",` ${sublocationList}`}getTextColor(color){return this.BRIGHT_BG_COLORS.includes(color)?"black":"white"}createDivIcon(mapMarker){const typeIcon=mapMarker.type_details?.icon,iconKind=(0,icon.bS)(typeIcon),typeColor=mapMarker.type_details?.color,customColor=mapMarker.color,color=customColor||typeColor;return(0,leaflet_src.divIcon)({className:"custom-div-icon",html:`\n
\n `,iconSize:[30,42],iconAnchor:[15,42]})}makeFreePopupContentHTML(longitude,latitude){const popUpElement=document.createElement("div");return popUpElement.innerHTML='\n \n \n Add Marker\n \n
\n ',popUpElement.querySelector("#add-marker")?.addEventListener("click",(()=>this.routingService.routeToPath("marker-map-create",{latitude,longitude,map_name:this.mapData().name,campaign:this.mapData().campaign_details?.name}))),popUpElement}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={mapData:[{type:core.Input,args:[{isSignal:!0,alias:"mapData",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}]}}};NgxLeafletMapComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-ngx-leaflet-map",template:'\x3c!-- Leaflet Map --\x3e\n@if (options && layersControl() && layers()) {\n
\n}\n',standalone:!0,imports:[asymmetrik_ngx_leaflet.gI],styles:[ngx_leaflet_map_componentngResource_default()]})],NgxLeafletMapComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _asymmetrik_ngx_leaflet__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@asymmetrik/ngx-leaflet/fesm2022/asymmetrik-ngx-leaflet.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_services_article_map_service_mock__WEBPACK_IMPORTED_MODULE_2__=(__webpack_require__("./node_modules/leaflet/dist/leaflet-src.js"),__webpack_require__("./src/app/_services/article/map.service.mock.ts"));const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/NgxLeafletMapComponent",component:__webpack_require__("./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.component.ts").I,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_asymmetrik_ngx_leaflet__WEBPACK_IMPORTED_MODULE_4__.gI],declarations:[]})],args:{mapData:src_app_services_article_map_service_mock__WEBPACK_IMPORTED_MODULE_2__.r,serverUrl:"https://www.aldrune.com"}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/organisms/ngx-leaflet-map/ngx-leaflet-map.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --map-height: 400px;\n}\n@media (min-width: 768px) {\n :host {\n --map-height: 600px;\n }\n}\n\n.map-frame {\n border: 2px solid black;\n height: var(--map-height);\n width: 100%;\n margin: 0 auto 2rem auto;\n}\n\n#leafletMapDiv {\n height: var(--map-height);\n width: 100%;\n margin: 0 auto;\n}\n\n.w-15 {\n width: 15%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-quest-table-quest-stories.0f97f71b.iframe.bundle.js b/design-organisms-quest-table-quest-stories.0f97f71b.iframe.bundle.js
deleted file mode 100644
index be3eb7f54..000000000
--- a/design-organisms-quest-table-quest-stories.0f97f71b.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2394],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/organisms/quest-table/quest-table.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{w:()=>QuestTableComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var quest_table_componentngResource=__webpack_require__("./src/design/organisms/quest-table/quest-table.component.scss?ngResource"),quest_table_componentngResource_default=__webpack_require__.n(quest_table_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let QuestTableComponent=class QuestTableComponent{constructor(){this.DISPLAY_STATES=["Default","All","Completed","Failed","On hold","In progress"],this.STATE_ICON_MAPPING={Completed:"square-check","On Hold":"hourglass-half",Failed:"times","In progress":"spinner"},this.STATE_TABLE_TYPE_MAPPING={Completed:"success","On Hold":"warning",Failed:"danger","In progress":""},this.state="Default"}ngOnInit(){this.filterQuests()}ngOnChanges(){this.filterQuests()}filterQuests(){this.displayQuests=this.quests.filter((quest=>this.shouldDisplayQuest(quest)))}shouldDisplayQuest(quest){if("all"===this.state.toLowerCase())return!0;if(this.state.toLowerCase()===quest.status?.toLowerCase())return!0;const isDefaultState="Default"===this.state,isMatchingDefault=["in progress","on hold"].includes(quest.status?.toLowerCase());return isDefaultState&&isMatchingDefault}static{this.propDecorators={questTaker:[{type:core.Input}],quests:[{type:core.Input}]}}};QuestTableComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-quest-table",template:'\n
\n \x3c!-- Outer Table Heading --\x3e\n
{{ questTaker }}\'s Quests \n\n \x3c!-- Filterselect --\x3e\n \n @for (state of DISPLAY_STATES; track state) {\n \n {{ state }}\n \n }\n \n \n\n
\n
\n \x3c!-- Inner Table Heading --\x3e\n \n \n Name \n \n Description\n \n Status \n \n \n\n \x3c!-- Table Body --\x3e\n \n @for (quest of displayQuests; track $index) {\n \n \x3c!-- Quest Name Column --\x3e\n \n \n {{ quest.name }} \n \n \n\n \x3c!-- Quest Abstract --\x3e\n \n {{ quest.abstract }}\n \n\n \x3c!-- Quest Status --\x3e\n @if (quest.status) {\n \n \n \n } @else {\n \n }\n \n }\n \n
\n
\n
\n\n\n \n \n',standalone:!0,imports:[fesm2022_forms.YN,router.Wk,icon_component.R,common.NgTemplateOutlet],styles:[quest_table_componentngResource_default()]})],QuestTableComponent)},"./src/design/organisms/quest-table/quest.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoQuests:()=>NoQuests,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/QuestTableComponent",component:__webpack_require__("./src/design/organisms/quest-table/quest-table.component.ts").w,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_2__.c],declarations:[]})],args:{questTaker:"Potato",quests:Array(5).fill({article_type:"quest",name:"The Black Knight",status:"In progress",abstract:"A black knight that does things",name_full:"The Black Knight - A quest to defeat a powerful undead warrior",description:"The players are hired to find and defeat the Black Knight, a powerful undead warrior who is terrorizing the countryside",update_datetime:"2022-05-10",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/345",pk:345})}},Template=args=>({props:{...args}}),Default=Template.bind({});Default.args={};const NoQuests=Template.bind({});NoQuests.args={quests:[]};const __namedExportsOrder=["Default","NoQuests"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"(args: QuestTableComponent) => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}},NoQuests.parameters={...NoQuests.parameters,docs:{...NoQuests.parameters?.docs,source:{originalSource:"(args: QuestTableComponent) => ({\n props: {\n ...args\n }\n})",...NoQuests.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/quest-table/quest-table.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --table-bg: var(--bs-gray-dark);\n --table-striped-bg: #3a3a3a;\n --warning-bg-color: rgba(255, 200, 36, 0.3);\n --success-bg-color: rgba(147, 196, 125, 0.3);\n --danger-bg-color: rgba(206, 10, 10, 0.3);\n}\n\n.heading {\n margin-bottom: var(--spacer-3);\n}\n.heading__text {\n margin-top: auto;\n margin-bottom: auto;\n padding-left: var(--spacer-0) !important;\n padding-right: var(--spacer-0) !important;\n}\n.heading__select {\n background-color: var(--table-striped-bg);\n height: 2rem;\n border: 1px solid var(--table-bg);\n border-radius: var(--bs-border-radius);\n color: var(--bs-white);\n}\n\n.table {\n padding-bottom: var(--spacer-2);\n}\n.table__element {\n padding: var(--spacer-3) var(--spacer-2) !important;\n}\n.table__element :hover {\n color: var(--bs-link-hover-color);\n}\n.table__element--desktop-only {\n display: none;\n}\n@media (min-width: 768px) {\n .table__element--desktop-only {\n display: table-cell;\n }\n}\n.table__element--status {\n text-align: center;\n width: var(--spacer-0);\n padding-left: var(--spacer-1);\n padding-right: var(--spacer-1);\n}\n.table-warning {\n --bs-table-bg: var(--warning-bg-color) !important;\n --bs-table-accent-bg: var(--warning-bg-color) !important;\n --bs-table-striped-bg: var(--warning-bg-color) !important;\n color: var(--bs-white) !important;\n}\n.table-success {\n --bs-table-bg: var(--success-bg-color) !important;\n --bs-table-accent-bg: var(--success-bg-color) !important;\n --bs-table-striped-bg: var(--success-bg-color) !important;\n color: var(--bs-white) !important;\n}\n.table-danger {\n --bs-table-bg: var(--danger-bg-color) !important;\n --bs-table-accent-bg: var(--danger-bg-color) !important;\n --bs-table-striped-bg: var(--danger-bg-color) !important;\n color: var(--bs-white) !important;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-quest-table-quest-stories.3381e5be.iframe.bundle.js b/design-organisms-quest-table-quest-stories.3381e5be.iframe.bundle.js
new file mode 100644
index 000000000..8c1d31fa6
--- /dev/null
+++ b/design-organisms-quest-table-quest-stories.3381e5be.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2394],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/organisms/quest-table/quest-table.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{w:()=>QuestTableComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var quest_table_componentngResource=__webpack_require__("./src/design/organisms/quest-table/quest-table.component.scss?ngResource"),quest_table_componentngResource_default=__webpack_require__.n(quest_table_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let QuestTableComponent=class QuestTableComponent{constructor(){this.DISPLAY_STATES=["Default","All","Completed","Failed","On hold","In progress"],this.STATE_ICON_MAPPING={Completed:"square-check","On Hold":"hourglass-half",Failed:"times","In progress":"spinner"},this.STATE_TABLE_TYPE_MAPPING={Completed:"success","On Hold":"warning",Failed:"danger","In progress":""},this.state="Default"}ngOnInit(){this.filterQuests()}ngOnChanges(){this.filterQuests()}filterQuests(){this.displayQuests=this.quests.filter((quest=>this.shouldDisplayQuest(quest)))}shouldDisplayQuest(quest){if("all"===this.state.toLowerCase())return!0;if(this.state.toLowerCase()===quest.status?.toLowerCase())return!0;const isDefaultState="Default"===this.state,isMatchingDefault=["in progress","on hold"].includes(quest.status?.toLowerCase());return isDefaultState&&isMatchingDefault}static{this.propDecorators={questTaker:[{type:core.Input}],quests:[{type:core.Input}]}}};QuestTableComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-quest-table",template:'\n
\n \x3c!-- Outer Table Heading --\x3e\n
{{ questTaker }}\'s Quests \n\n \x3c!-- Filterselect --\x3e\n \n @for (state of DISPLAY_STATES; track state) {\n \n {{ state }}\n \n }\n \n \n\n
\n
\n \x3c!-- Inner Table Heading --\x3e\n \n \n Name \n \n Description\n \n Status \n \n \n\n \x3c!-- Table Body --\x3e\n \n @for (quest of displayQuests; track $index) {\n \n \x3c!-- Quest Name Column --\x3e\n \n \n {{ quest.name }} \n \n \n\n \x3c!-- Quest Abstract --\x3e\n \n {{ quest.abstract }}\n \n\n \x3c!-- Quest Status --\x3e\n @if (quest.status) {\n \n \n \n } @else {\n \n }\n \n }\n \n
\n
\n
\n\n\n \n \n',standalone:!0,imports:[fesm2022_forms.YN,router.Wk,icon_component.R,common.NgTemplateOutlet],styles:[quest_table_componentngResource_default()]})],QuestTableComponent)},"./src/design/organisms/quest-table/quest.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoQuests:()=>NoQuests,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/QuestTableComponent",component:__webpack_require__("./src/design/organisms/quest-table/quest-table.component.ts").w,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_2__.c],declarations:[]})],args:{questTaker:"Potato",quests:Array(5).fill({article_type:"quest",name:"The Black Knight",status:"In progress",abstract:"A black knight that does things",name_full:"The Black Knight - A quest to defeat a powerful undead warrior",description:"The players are hired to find and defeat the Black Knight, a powerful undead warrior who is terrorizing the countryside",update_datetime:"2022-05-10",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/345",pk:345})}},Template=args=>({props:{...args}}),Default=Template.bind({});Default.args={};const NoQuests=Template.bind({});NoQuests.args={quests:[]};const __namedExportsOrder=["Default","NoQuests"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"(args: QuestTableComponent) => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}},NoQuests.parameters={...NoQuests.parameters,docs:{...NoQuests.parameters?.docs,source:{originalSource:"(args: QuestTableComponent) => ({\n props: {\n ...args\n }\n})",...NoQuests.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/quest-table/quest-table.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --table-bg: var(--bs-gray-dark);\n --table-striped-bg: #3a3a3a;\n --warning-bg-color: rgba(255, 200, 36, 0.3);\n --success-bg-color: rgba(147, 196, 125, 0.3);\n --danger-bg-color: rgba(206, 10, 10, 0.3);\n}\n\n.heading {\n margin-bottom: var(--spacer-3);\n}\n.heading__text {\n margin-top: auto;\n margin-bottom: auto;\n padding-left: var(--spacer-0) !important;\n padding-right: var(--spacer-0) !important;\n}\n.heading__select {\n background-color: var(--table-striped-bg);\n height: 2rem;\n border: 1px solid var(--table-bg);\n border-radius: var(--bs-border-radius);\n color: var(--bs-white);\n}\n\n.table {\n padding-bottom: var(--spacer-2);\n}\n.table__element {\n padding: var(--spacer-3) var(--spacer-2) !important;\n}\n.table__element :hover {\n color: var(--bs-link-hover-color);\n}\n.table__element--desktop-only {\n display: none;\n}\n@media (min-width: 768px) {\n .table__element--desktop-only {\n display: table-cell;\n }\n}\n.table__element--status {\n text-align: center;\n width: var(--spacer-0);\n padding-left: var(--spacer-1);\n padding-right: var(--spacer-1);\n}\n.table-warning {\n --bs-table-bg: var(--warning-bg-color) !important;\n --bs-table-accent-bg: var(--warning-bg-color) !important;\n --bs-table-striped-bg: var(--warning-bg-color) !important;\n color: var(--bs-white) !important;\n}\n.table-success {\n --bs-table-bg: var(--success-bg-color) !important;\n --bs-table-accent-bg: var(--success-bg-color) !important;\n --bs-table-striped-bg: var(--success-bg-color) !important;\n color: var(--bs-white) !important;\n}\n.table-danger {\n --bs-table-bg: var(--danger-bg-color) !important;\n --bs-table-accent-bg: var(--danger-bg-color) !important;\n --bs-table-striped-bg: var(--danger-bg-color) !important;\n color: var(--bs-white) !important;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-quote-field-quote-field-stories.01dcb1b3.iframe.bundle.js b/design-organisms-quote-field-quote-field-stories.01dcb1b3.iframe.bundle.js
deleted file mode 100644
index c57e641c9..000000000
--- a/design-organisms-quote-field-quote-field-stories.01dcb1b3.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5601],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/organisms/quote-field/quote-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{k:()=>QuoteFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var quote_field_componentngResource=__webpack_require__("./src/design/organisms/quote-field/quote-field.component.scss?ngResource"),quote_field_componentngResource_default=__webpack_require__.n(quote_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),take=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/take.js"),http=__webpack_require__("./node_modules/@angular/common/fesm2022/http.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),environment=__webpack_require__("./src/environments/environment.ts");let ArticleService=class ArticleService{constructor(routingService,http){this.routingService=routingService,this.http=http,this.apiUrl=environment.c.apiUrl,this.recentlyUpdatedUrl=`${this.apiUrl}/recentupdates`,this.searchUrl=`${this.apiUrl}/search`}getRecentlyUpdatedArticle(campaign,pageNumber){return null==pageNumber&&(pageNumber=0),this.http.get(`${this.recentlyUpdatedUrl}/${campaign}/${pageNumber}`).pipe((0,map.T)((entries=>entries.map((entry=>this.parseOverviewEntity(entry))))))}getGlobalSearchArticle(searchString){return this.http.get(`${this.searchUrl}/${searchString}`).pipe((0,map.T)((searchResponse=>{const searchArticleObjects=searchResponse.articles.map((item=>this.parseOverviewEntity(item)));return searchResponse.articles=searchArticleObjects,searchResponse})))}getCampaignSearchArticle(campaign,searchString){return this.http.get(`${this.searchUrl}/${campaign}/${searchString}`).pipe((0,map.T)((searchResponse=>{const searchArticleObjects=searchResponse.articles.map((item=>this.parseOverviewEntity(item)));return searchResponse.articles=searchArticleObjects,searchResponse})))}searchArticlesKind(campaign,searchTerm,articleKind){return this.http.get(`${this.searchUrl}/${campaign}/${articleKind}/${searchTerm}`).pipe((0,map.T)((response=>response.map((item=>this.parseOverviewEntity(item))))))}readArticle(articleId,articleKind){return this.http.get(`${this.searchUrl}/single/${articleKind}/${articleId}`).pipe((0,map.T)((resp=>this.parseOverviewEntity(resp))))}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const articleType=data.article_type,params={campaign:data.campaign_details.name};let routeName="";switch(articleType){case"character":params.name=data.name,routeName="character";break;case"creature":params.name=data.name,routeName="creature";break;case"diaryentry":params.session_number=data.session_details.session_number,params.isMainSession=data.session_details.is_main_session_int,params.authorName=data.author_details.name,routeName="diaryentry";break;case"encounter":params.session_number=data.diaryentry_details.session_number,params.isMainSession=data.diaryentry_details.is_main_session,params.authorName=data.diaryentry_details.author_name,params.encounterTitle=data.title,routeName="diaryentry-encounter";break;case"item":params.name=data.name,routeName="item";break;case"location":params.name=data.name,params.parent_name=data.parent_location_details.name,routeName="location";break;case"organization":params.name=data.name,routeName="organization";break;case"quest":params.name=data.name,routeName="quest";break;case"sessionaudio":params.isMainSession=data.session_details.is_main_session_int,params.sessionNumber=data.session_details.session_number,routeName="sessionaudio";break;case"session":routeName="sessions";break;case"map":case"mapmarker":params.name=data.name,routeName="map";break;case"timestamp":routeName="default-map";break;case"spell":params.name=data.name,routeName="spell";break;case"rules":params.name=data.name,routeName="rule"}return()=>this.routingService.getRoutePath(routeName,params)}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};ArticleService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],ArticleService);var button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),quote_component=__webpack_require__("./src/design/organisms/quote/quote.component.ts");let QuoteFieldComponent=class QuoteFieldComponent{constructor(routingService,formlyService,articleService){this.routingService=routingService,this.formlyService=formlyService,this.articleService=articleService,this.quote=core.input.required(),this.character=core.input.required(),this.campaignCharacters=core.input.required(),this.serverModel=core.input.required(),this.canCreate=(0,core.input)(!1),this.canUpdate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.encounters=core.input.required(),this.sessions=core.input.required(),this.quoteControlsBlacklist=(0,core.input)([]),this.quoteDelete=new core.EventEmitter,this.quoteCreate=new core.EventEmitter,this.quoteUpdate=new core.EventEmitter,this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.refreshQuote=new core.EventEmitter,this.sessions$=(0,rxjs_interop.br)(this.sessions).pipe((0,take.s)(1)),this.encounters$=(0,rxjs_interop.br)(this.encounters).pipe((0,take.s)(1)),this.state=(0,core.signal)("DISPLAY"),this.badgeEntries=(0,core.computed)((()=>this.parseConnection(this.quote()?.connections??[]))),this.campaignName=(0,core.computed)((()=>this.character().campaign_details?.name)),this.isLoadingQuote=(0,core.signal)(!1),this.quoteOverviewUrl=(0,core.computed)((()=>this.routingService.getRoutePath("quote-overview",{name:this.character().name,campaign:this.campaignName}))),this.userModel=(0,core.signal)({}),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"description",required:!0,inputKind:"STRING"}),this.formlyService.buildOverviewSelectConfig({key:"session",required:!0,campaign:this.campaignName(),options$:this.sessions$,labelProp:"name_full",valueProp:"pk"}),this.formlyService.buildAutocompleteConfig({key:"encounter",required:!1,loadOptions:searchTerm=>this.articleService.searchArticlesKind(this.campaignName(),searchTerm,"encounter"),optionKeyProp:"pk",optionLabelProp:"name",optionValueProp:"pk",initialValue$:this.quote()?.encounter?this.articleService.readArticle(this.quote()?.encounter,"encounter"):void 0}),this.formlyService.buildEditorConfig({key:"quote",required:!0})])),(0,rxjs_interop.br)(this.quote).pipe((0,rxjs_interop.pQ)()).subscribe((()=>this.isLoadingQuote.set(!1)))}onSubmit(event){switch(this.state()){case"UPDATE":case"UPDATE_OUTDATED":this.quoteUpdate.emit(event);break;case"CREATE":this.quoteCreate.emit(event);break;default:throw new Error(`QuoteField - Submitted form while in state '${this.state()}', which is not possible.`)}this.changeState("DISPLAY",{})}onDelete(){this.quoteDelete.emit(this.quote()),this.changeState("DISPLAY",{})}onCancel(){this.changeState("DISPLAY",{})}onConnectionDelete(connection){this.canDelete()&&this.connectionDelete.emit(connection)}onConnectionCreate(character){if(!this.canCreate()||!this.quote)return;const newConnection={quote:this.quote()?.pk,character:character.pk};this.connectionCreate.emit(newConnection)}getNextRandomQuote(){this.isLoadingQuote.set(!0),this.refreshQuote.emit()}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}parseConnection(connections){return connections.map((con=>{const characterName=con.character_details?.name;return{text:characterName,badgeValue:con,link:this.routingService.getRoutePath("character",{name:characterName,campaign:this.campaignName})}}))}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$},{type:ArticleService}]}static{this.propDecorators={quote:[{type:core.Input,args:[{isSignal:!0,alias:"quote",required:!0,transform:void 0}]}],character:[{type:core.Input,args:[{isSignal:!0,alias:"character",required:!0,transform:void 0}]}],campaignCharacters:[{type:core.Input,args:[{isSignal:!0,alias:"campaignCharacters",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],encounters:[{type:core.Input,args:[{isSignal:!0,alias:"encounters",required:!0,transform:void 0}]}],sessions:[{type:core.Input,args:[{isSignal:!0,alias:"sessions",required:!0,transform:void 0}]}],quoteControlsBlacklist:[{type:core.Input,args:[{isSignal:!0,alias:"quoteControlsBlacklist",required:!1,transform:void 0}]}],quoteDelete:[{type:core.Output}],quoteCreate:[{type:core.Output}],quoteUpdate:[{type:core.Output}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],refreshQuote:[{type:core.Output}]}}};QuoteFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-quote-field",template:'@switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("DELETE") {\n \n }\n}\n\n\n \n \n\n\x3c!-- Quote Create/Edit Form --\x3e\n\n \n \x3c!-- Heading --\x3e\n \n\n @if (canUpdate() && state() === "UPDATE") {\n \n }\n\n @if (state() === "UPDATE_OUTDATED") {\n \n }\n \n \n\n\x3c!-- Quote Create/Edit Form --\x3e\n\n \n \x3c!-- Heading --\x3e\n \n\n \x3c!-- Form --\x3e\n \n \n \n\n\x3c!-- Quote Delete "Form" --\x3e\n\n \n \n\n \n \n\n \n @if (quote()?.description) {\n
\n }\n\n @if (!quote()?.description) {\n - {{ character().name }}\n }\n
\n \n\n \n \n \n
\n \n \n',standalone:!0,imports:[common.NgTemplateOutlet,quote_component.w,card_component.i,molecules.s2,molecules.zx,html_text_component.m,button_component.Q],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[quote_field_componentngResource_default()]})],QuoteFieldComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/quote-field/quote-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermission:()=>NoPermission,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_modules/formly_constants.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/QuoteFieldComponent",component:__webpack_require__("./src/design/organisms/quote-field/quote-field.component.ts").k,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_4__.c,src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__.d_]})],args:{quote:{quote:"In the darkest of times, the light within us shines the brightest.",description:"Said by a wise old wizard to a young hero about to embark on a perilous quest.",pk:1,session:3,creation_datetime:"2023-04-22T12:00:00.000Z",update_datetime:"2023-04-23T12:00:00.000Z",session_details:{pk:3,is_main_session:!0,is_main_session_int:1,session_number:3,session_date:"2023-04-20",start_day:1,end_day:5,name:"The Quest for the Sacred Amulet",title:"The Quest"},encounter:2,connections:[{character:1,character_details:{pk:1,name:"Gandalf",name_full:"Gandalf the Grey"},quote:2,pk:2},{character:2,character_details:{pk:2,name:"Frodo",name_full:"Frodo Baggins"},quote:3,pk:3}]},character:{getAbsoluteRouterUrl:()=>"/dummy/url",player_character:!1,alive:!0,name:"Gandalf",title:"Gandalf the Grey",gender:"Male",race:"Maia",description:"A wise and powerful wizard, Gandalf the Grey is a member of the Fellowship of the Ring and a key figure in the fight against the Dark Lord Sauron.",organizations:[{pk:1,name:"The White Council",organization_id:1,role:"Member"},{pk:2,name:"The Fellowship of the Ring",organization_id:2,role:"Member"}],current_location:3,current_location_details:{pk:3,name_full:"Moria",parent_location:"Middle-earth"},items:[{pk:1,name:"Glamdring"},{pk:2,name:"Staff"}],encounters:[{name:"The Council of Elrond",creation_datetime:"2023-04-22T12:00:00.000Z",update_datetime:"2023-04-23T12:00:00.000Z",title:"Council of Elrond",diaryentry:50,order_index:20,encounterConnections:[{pk:1,encounter:2,character:3},{pk:2,encounter:3,character:4}],description:"At the Council of Elrond, Gandalf reveals the true nature of the One Ring and urges the Fellowship to destroy it in the fires of Mount Doom.",pk:1,campaign_details:{name:"Aldrune",id:1}},{name:"The Battle of Helm's Deep",title:"The Battle of Helm's Deep",diaryentry:20,order_index:30,creation_datetime:"2023-04-23T12:00:00.000Z",update_datetime:"2023-04-24T12:00:00.000Z",encounterConnections:[{pk:324,encounter:223,encounter_details:{name:"Main Session 6 - A new job",name_full:"Main Session 6 - A new job",pk:223},character:43,character_details:{name:"Aliana Sterent",name_full:"Aliana Sterent",pk:43}},{pk:325,encounter:223,encounter_details:{name:"Main Session 6 - A new job",name_full:"Main Session 6 - A new job",pk:223},character:29,character_details:{name:"Ateula",name_full:"Ateula",pk:29}}],description:"Gandalf arrives at Helm's Deep with reinforcements and turns the tide of the battle against Saruman's forces.",pk:2,campaign_details:{name:"Aldrune",id:1}}],images:[],player_class_connections:[{pk:1,player_class:8,character:5,player_class_details:{update_datetime:"2023-04-24T12:00:00.000Z",name:"Paladin",pk:8}}],campaign:1,campaign_details:{id:1,name:"The War of the Ring"}},canCreate:!0,canUpdate:!0,canDelete:!0,campaignCharacters:[{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gandalf",pk:1,name_full:"Gandalf the Grey",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Frodo",pk:2,name_full:"Frodo Baggins",player_character:!0,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gimli",pk:3,name_full:"Gimli son of Glóin",player_character:!1,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Legolas",pk:4,name_full:"Legolas Greenleaf",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Bilbo",pk:5,name_full:"Bilbo Baggins",player_character:!1,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Aragorn",pk:6,name_full:"Aragorn son of Arathorn",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Saruman",pk:7,name_full:"Saruman the White",player_character:!1,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Sif",pk:18,name_full:"Sif the Swift",description:"Sif is a skilled warrior known for her lightning-fast strikes and agility. She is fiercely loyal to her friends and will stop at nothing to protect them.",update_datetime:"2022-03-15T10:30:00.000Z",player_character:!0,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gorin",pk:19,name_full:"Gorin Ironfist",description:"Gorin is a dwarf from the Iron Hills, known for his strength and unwavering determination. He has a fondness for ale and a good brawl.",update_datetime:"2022-02-23T14:15:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg","https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Lirien",pk:20,name_full:"Lirien Windrider",description:"Lirien is an elven archer, renowned for her skill with the bow. She is fiercely independent and often clashes with authority figures.",update_datetime:"2022-03-20T08:45:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}}]}},Template=args=>({props:{...args,quoteDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("quoteDelete"),quoteCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("quoteCreate"),quoteUpdate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("quoteUpdate"),refreshQuote:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("refreshQuote"),connectionDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionDelete"),connectionCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionCreate")}}),Default=Template.bind({});Default.args={};const NoPermission=Template.bind({});NoPermission.args={canCreate:!1,canUpdate:!1,canDelete:!1};const __namedExportsOrder=["Default","NoPermission"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n quoteDelete: action('quoteDelete'),\n quoteCreate: action('quoteCreate'),\n quoteUpdate: action('quoteUpdate'),\n refreshQuote: action('refreshQuote'),\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate')\n }\n})",...Default.parameters?.docs?.source}}},NoPermission.parameters={...NoPermission.parameters,docs:{...NoPermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n quoteDelete: action('quoteDelete'),\n quoteCreate: action('quoteCreate'),\n quoteUpdate: action('quoteUpdate'),\n refreshQuote: action('refreshQuote'),\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate')\n }\n})",...NoPermission.parameters?.docs?.source}}}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/quote-field/quote-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".form-card {\n padding: var(--spacer-4);\n margin: var(--spacer-2);\n}\n.form-card__heading {\n text-align: center;\n}\n.form-card__form {\n margin-top: var(--spacer-3);\n display: block;\n}\n.form-card__quote {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n\n.confirmation__button {\n margin-left: var(--spacer-2);\n margin-right: var(--spacer-2);\n}\n\n.quote__description {\n margin: var(--spacer-3) var(--spacer-0) var(--spacer-3) var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-quote-field-quote-field-stories.357b4567.iframe.bundle.js b/design-organisms-quote-field-quote-field-stories.357b4567.iframe.bundle.js
new file mode 100644
index 000000000..28f491798
--- /dev/null
+++ b/design-organisms-quote-field-quote-field-stories.357b4567.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5601],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/organisms/quote-field/quote-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{k:()=>QuoteFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var quote_field_componentngResource=__webpack_require__("./src/design/organisms/quote-field/quote-field.component.scss?ngResource"),quote_field_componentngResource_default=__webpack_require__.n(quote_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),take=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/take.js"),http=__webpack_require__("./node_modules/@angular/common/fesm2022/http.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),environment=__webpack_require__("./src/environments/environment.ts");let ArticleService=class ArticleService{constructor(routingService,http){this.routingService=routingService,this.http=http,this.apiUrl=environment.c.apiUrl,this.recentlyUpdatedUrl=`${this.apiUrl}/recentupdates`,this.searchUrl=`${this.apiUrl}/search`}getRecentlyUpdatedArticle(campaign,pageNumber){return null==pageNumber&&(pageNumber=0),this.http.get(`${this.recentlyUpdatedUrl}/${campaign}/${pageNumber}`).pipe((0,map.T)((entries=>entries.map((entry=>this.parseOverviewEntity(entry))))))}getGlobalSearchArticle(searchString){return this.http.get(`${this.searchUrl}/${searchString}`).pipe((0,map.T)((searchResponse=>{const searchArticleObjects=searchResponse.articles.map((item=>this.parseOverviewEntity(item)));return searchResponse.articles=searchArticleObjects,searchResponse})))}getCampaignSearchArticle(campaign,searchString){return this.http.get(`${this.searchUrl}/${campaign}/${searchString}`).pipe((0,map.T)((searchResponse=>{const searchArticleObjects=searchResponse.articles.map((item=>this.parseOverviewEntity(item)));return searchResponse.articles=searchArticleObjects,searchResponse})))}searchArticlesKind(campaign,searchTerm,articleKind){return this.http.get(`${this.searchUrl}/${campaign}/${articleKind}/${searchTerm}`).pipe((0,map.T)((response=>response.map((item=>this.parseOverviewEntity(item))))))}readArticle(articleId,articleKind){return this.http.get(`${this.searchUrl}/single/${articleKind}/${articleId}`).pipe((0,map.T)((resp=>this.parseOverviewEntity(resp))))}parseOverviewEntity(data){return{...data,getAbsoluteRouterUrl:this.generateUrlCallback(data)}}generateUrlCallback(data){const articleType=data.article_type,params={campaign:data.campaign_details.name};let routeName="";switch(articleType){case"character":params.name=data.name,routeName="character";break;case"creature":params.name=data.name,routeName="creature";break;case"diaryentry":params.session_number=data.session_details.session_number,params.isMainSession=data.session_details.is_main_session_int,params.authorName=data.author_details.name,routeName="diaryentry";break;case"encounter":params.session_number=data.diaryentry_details.session_number,params.isMainSession=data.diaryentry_details.is_main_session,params.authorName=data.diaryentry_details.author_name,params.encounterTitle=data.title,routeName="diaryentry-encounter";break;case"item":params.name=data.name,routeName="item";break;case"location":params.name=data.name,params.parent_name=data.parent_location_details.name,routeName="location";break;case"organization":params.name=data.name,routeName="organization";break;case"quest":params.name=data.name,routeName="quest";break;case"sessionaudio":params.isMainSession=data.session_details.is_main_session_int,params.sessionNumber=data.session_details.session_number,routeName="sessionaudio";break;case"session":routeName="sessions";break;case"map":case"mapmarker":params.name=data.name,routeName="map";break;case"timestamp":routeName="default-map";break;case"spell":params.name=data.name,routeName="spell";break;case"rules":params.name=data.name,routeName="rule"}return()=>this.routingService.getRoutePath(routeName,params)}static{this.ctorParameters=()=>[{type:routing_service.O},{type:http.Qq}]}};ArticleService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],ArticleService);var button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),quote_component=__webpack_require__("./src/design/organisms/quote/quote.component.ts");let QuoteFieldComponent=class QuoteFieldComponent{constructor(routingService,formlyService,articleService){this.routingService=routingService,this.formlyService=formlyService,this.articleService=articleService,this.quote=core.input.required(),this.character=core.input.required(),this.campaignCharacters=core.input.required(),this.serverModel=core.input.required(),this.canCreate=(0,core.input)(!1),this.canUpdate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.encounters=core.input.required(),this.sessions=core.input.required(),this.quoteControlsBlacklist=(0,core.input)([]),this.quoteDelete=new core.EventEmitter,this.quoteCreate=new core.EventEmitter,this.quoteUpdate=new core.EventEmitter,this.connectionDelete=new core.EventEmitter,this.connectionCreate=new core.EventEmitter,this.refreshQuote=new core.EventEmitter,this.sessions$=(0,rxjs_interop.br)(this.sessions).pipe((0,take.s)(1)),this.encounters$=(0,rxjs_interop.br)(this.encounters).pipe((0,take.s)(1)),this.state=(0,core.signal)("DISPLAY"),this.badgeEntries=(0,core.computed)((()=>this.parseConnection(this.quote()?.connections??[]))),this.campaignName=(0,core.computed)((()=>this.character().campaign_details?.name)),this.isLoadingQuote=(0,core.signal)(!1),this.quoteOverviewUrl=(0,core.computed)((()=>this.routingService.getRoutePath("quote-overview",{name:this.character().name,campaign:this.campaignName}))),this.userModel=(0,core.signal)({}),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"description",required:!0,inputKind:"STRING"}),this.formlyService.buildOverviewSelectConfig({key:"session",required:!0,campaign:this.campaignName(),options$:this.sessions$,labelProp:"name_full",valueProp:"pk"}),this.formlyService.buildAutocompleteConfig({key:"encounter",required:!1,loadOptions:searchTerm=>this.articleService.searchArticlesKind(this.campaignName(),searchTerm,"encounter"),optionKeyProp:"pk",optionLabelProp:"name",optionValueProp:"pk",initialValue$:this.quote()?.encounter?this.articleService.readArticle(this.quote()?.encounter,"encounter"):void 0}),this.formlyService.buildEditorConfig({key:"quote",required:!0})])),(0,rxjs_interop.br)(this.quote).pipe((0,rxjs_interop.pQ)()).subscribe((()=>this.isLoadingQuote.set(!1)))}onSubmit(event){switch(this.state()){case"UPDATE":case"UPDATE_OUTDATED":this.quoteUpdate.emit(event);break;case"CREATE":this.quoteCreate.emit(event);break;default:throw new Error(`QuoteField - Submitted form while in state '${this.state()}', which is not possible.`)}this.changeState("DISPLAY",{})}onDelete(){this.quoteDelete.emit(this.quote()),this.changeState("DISPLAY",{})}onCancel(){this.changeState("DISPLAY",{})}onConnectionDelete(connection){this.canDelete()&&this.connectionDelete.emit(connection)}onConnectionCreate(character){if(!this.canCreate()||!this.quote)return;const newConnection={quote:this.quote()?.pk,character:character.pk};this.connectionCreate.emit(newConnection)}getNextRandomQuote(){this.isLoadingQuote.set(!0),this.refreshQuote.emit()}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}parseConnection(connections){return connections.map((con=>{const characterName=con.character_details?.name;return{text:characterName,badgeValue:con,link:this.routingService.getRoutePath("character",{name:characterName,campaign:this.campaignName})}}))}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$},{type:ArticleService}]}static{this.propDecorators={quote:[{type:core.Input,args:[{isSignal:!0,alias:"quote",required:!0,transform:void 0}]}],character:[{type:core.Input,args:[{isSignal:!0,alias:"character",required:!0,transform:void 0}]}],campaignCharacters:[{type:core.Input,args:[{isSignal:!0,alias:"campaignCharacters",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],encounters:[{type:core.Input,args:[{isSignal:!0,alias:"encounters",required:!0,transform:void 0}]}],sessions:[{type:core.Input,args:[{isSignal:!0,alias:"sessions",required:!0,transform:void 0}]}],quoteControlsBlacklist:[{type:core.Input,args:[{isSignal:!0,alias:"quoteControlsBlacklist",required:!1,transform:void 0}]}],quoteDelete:[{type:core.Output}],quoteCreate:[{type:core.Output}],quoteUpdate:[{type:core.Output}],connectionDelete:[{type:core.Output}],connectionCreate:[{type:core.Output}],refreshQuote:[{type:core.Output}]}}};QuoteFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-quote-field",template:'@switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("DELETE") {\n \n }\n}\n\n\n \n \n\n\x3c!-- Quote Create/Edit Form --\x3e\n\n \n \x3c!-- Heading --\x3e\n \n\n @if (canUpdate() && state() === "UPDATE") {\n \n }\n\n @if (state() === "UPDATE_OUTDATED") {\n \n }\n \n \n\n\x3c!-- Quote Create/Edit Form --\x3e\n\n \n \x3c!-- Heading --\x3e\n \n\n \x3c!-- Form --\x3e\n \n \n \n\n\x3c!-- Quote Delete "Form" --\x3e\n\n \n \n\n \n \n\n \n @if (quote()?.description) {\n
\n }\n\n @if (!quote()?.description) {\n - {{ character().name }}\n }\n
\n \n\n \n \n \n
\n \n \n',standalone:!0,imports:[common.NgTemplateOutlet,quote_component.w,card_component.i,molecules.s2,molecules.zx,html_text_component.m,button_component.Q],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[quote_field_componentngResource_default()]})],QuoteFieldComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/quote-field/quote-field.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermission:()=>NoPermission,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_modules/formly_constants.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/QuoteFieldComponent",component:__webpack_require__("./src/design/organisms/quote-field/quote-field.component.ts").k,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_4__.c,src_app_modules_formly_constants__WEBPACK_IMPORTED_MODULE_2__.d_]})],args:{quote:{quote:"In the darkest of times, the light within us shines the brightest.",description:"Said by a wise old wizard to a young hero about to embark on a perilous quest.",pk:1,session:3,creation_datetime:"2023-04-22T12:00:00.000Z",update_datetime:"2023-04-23T12:00:00.000Z",session_details:{pk:3,is_main_session:!0,is_main_session_int:1,session_number:3,session_date:"2023-04-20",start_day:1,end_day:5,name:"The Quest for the Sacred Amulet",title:"The Quest"},encounter:2,connections:[{character:1,character_details:{pk:1,name:"Gandalf",name_full:"Gandalf the Grey"},quote:2,pk:2},{character:2,character_details:{pk:2,name:"Frodo",name_full:"Frodo Baggins"},quote:3,pk:3}]},character:{getAbsoluteRouterUrl:()=>"/dummy/url",player_character:!1,alive:!0,name:"Gandalf",title:"Gandalf the Grey",gender:"Male",race:"Maia",description:"A wise and powerful wizard, Gandalf the Grey is a member of the Fellowship of the Ring and a key figure in the fight against the Dark Lord Sauron.",organizations:[{pk:1,name:"The White Council",organization_id:1,role:"Member"},{pk:2,name:"The Fellowship of the Ring",organization_id:2,role:"Member"}],current_location:3,current_location_details:{pk:3,name_full:"Moria",parent_location:"Middle-earth"},items:[{pk:1,name:"Glamdring"},{pk:2,name:"Staff"}],encounters:[{name:"The Council of Elrond",creation_datetime:"2023-04-22T12:00:00.000Z",update_datetime:"2023-04-23T12:00:00.000Z",title:"Council of Elrond",diaryentry:50,order_index:20,encounterConnections:[{pk:1,encounter:2,character:3},{pk:2,encounter:3,character:4}],description:"At the Council of Elrond, Gandalf reveals the true nature of the One Ring and urges the Fellowship to destroy it in the fires of Mount Doom.",pk:1,campaign_details:{name:"Aldrune",id:1}},{name:"The Battle of Helm's Deep",title:"The Battle of Helm's Deep",diaryentry:20,order_index:30,creation_datetime:"2023-04-23T12:00:00.000Z",update_datetime:"2023-04-24T12:00:00.000Z",encounterConnections:[{pk:324,encounter:223,encounter_details:{name:"Main Session 6 - A new job",name_full:"Main Session 6 - A new job",pk:223},character:43,character_details:{name:"Aliana Sterent",name_full:"Aliana Sterent",pk:43}},{pk:325,encounter:223,encounter_details:{name:"Main Session 6 - A new job",name_full:"Main Session 6 - A new job",pk:223},character:29,character_details:{name:"Ateula",name_full:"Ateula",pk:29}}],description:"Gandalf arrives at Helm's Deep with reinforcements and turns the tide of the battle against Saruman's forces.",pk:2,campaign_details:{name:"Aldrune",id:1}}],images:[],player_class_connections:[{pk:1,player_class:8,character:5,player_class_details:{update_datetime:"2023-04-24T12:00:00.000Z",name:"Paladin",pk:8}}],campaign:1,campaign_details:{id:1,name:"The War of the Ring"}},canCreate:!0,canUpdate:!0,canDelete:!0,campaignCharacters:[{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gandalf",pk:1,name_full:"Gandalf the Grey",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Frodo",pk:2,name_full:"Frodo Baggins",player_character:!0,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gimli",pk:3,name_full:"Gimli son of Glóin",player_character:!1,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Legolas",pk:4,name_full:"Legolas Greenleaf",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Bilbo",pk:5,name_full:"Bilbo Baggins",player_character:!1,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Aragorn",pk:6,name_full:"Aragorn son of Arathorn",player_character:!1,images:["https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Saruman",pk:7,name_full:"Saruman the White",player_character:!1,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Sif",pk:18,name_full:"Sif the Swift",description:"Sif is a skilled warrior known for her lightning-fast strikes and agility. She is fiercely loyal to her friends and will stop at nothing to protect them.",update_datetime:"2022-03-15T10:30:00.000Z",player_character:!0,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gorin",pk:19,name_full:"Gorin Ironfist",description:"Gorin is a dwarf from the Iron Hills, known for his strength and unwavering determination. He has a fondness for ale and a good brawl.",update_datetime:"2022-02-23T14:15:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg","https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Lirien",pk:20,name_full:"Lirien Windrider",description:"Lirien is an elven archer, renowned for her skill with the bow. She is fiercely independent and often clashes with authority figures.",update_datetime:"2022-03-20T08:45:00.000Z",player_character:!0,images:["https://example.com/images/lirien1.jpg"],campaign_details:{name:"Aldrune",id:1}}]}},Template=args=>({props:{...args,quoteDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("quoteDelete"),quoteCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("quoteCreate"),quoteUpdate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("quoteUpdate"),refreshQuote:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("refreshQuote"),connectionDelete:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionDelete"),connectionCreate:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("connectionCreate")}}),Default=Template.bind({});Default.args={};const NoPermission=Template.bind({});NoPermission.args={canCreate:!1,canUpdate:!1,canDelete:!1};const __namedExportsOrder=["Default","NoPermission"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n quoteDelete: action('quoteDelete'),\n quoteCreate: action('quoteCreate'),\n quoteUpdate: action('quoteUpdate'),\n refreshQuote: action('refreshQuote'),\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate')\n }\n})",...Default.parameters?.docs?.source}}},NoPermission.parameters={...NoPermission.parameters,docs:{...NoPermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n quoteDelete: action('quoteDelete'),\n quoteCreate: action('quoteCreate'),\n quoteUpdate: action('quoteUpdate'),\n refreshQuote: action('refreshQuote'),\n connectionDelete: action('connectionDelete'),\n connectionCreate: action('connectionCreate')\n }\n})",...NoPermission.parameters?.docs?.source}}}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/quote-field/quote-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".form-card {\n padding: var(--spacer-4);\n margin: var(--spacer-2);\n}\n.form-card__heading {\n text-align: center;\n}\n.form-card__form {\n margin-top: var(--spacer-3);\n display: block;\n}\n.form-card__quote {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n\n.confirmation__button {\n margin-left: var(--spacer-2);\n margin-right: var(--spacer-2);\n}\n\n.quote__description {\n margin: var(--spacer-3) var(--spacer-0) var(--spacer-3) var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-session-session-stories.1b7e4a70.iframe.bundle.js b/design-organisms-session-session-stories.1b7e4a70.iframe.bundle.js
new file mode 100644
index 000000000..1b8d05947
--- /dev/null
+++ b/design-organisms-session-session-stories.1b7e4a70.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5369],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/session/session.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermission:()=>NoPermission,NoSession:()=>NoSession,NoSessionNoCreate:()=>NoSessionNoCreate,__namedExportsOrder:()=>__namedExportsOrder,default:()=>session_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var session_componentngResource=__webpack_require__("./src/design/organisms/session/session.component.scss?ngResource"),session_componentngResource_default=__webpack_require__.n(session_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");let SessionComponent=class SessionComponent{constructor(formlyService,routingService){this.formlyService=formlyService,this.routingService=routingService,this.session=core.input.required(),this.canUpdate=core.input.required(),this.canDelete=core.input.required(),this.canCreate=core.input.required(),this.serverModel=core.input.required(),this.sessionDelete=new core.EventEmitter,this.sessionCreate=new core.EventEmitter,this.sessionUpdate=new core.EventEmitter,this.sessionCreateCancel=(0,core.output)(),this.state=(0,core.signal)("DISPLAY"),this.sessionAudioUrl=(0,core.computed)((()=>this.routingService.getRoutePath("sessionaudio",{campaign:this.session()?.campaign_details?.name,isMainSession:this.session()?.is_main_session_int,sessionNumber:this.session()?.session_number}))),this.userModel=(0,core.signal)(void 0),this.diaryEntries=(0,core.computed)((()=>(this.session()?.diaryentries??[]).map((entry=>({name:entry.name,author_name:entry.author_name,link:this.toDiaryEntryUrl(entry)}))))),this.formlyFields=[this.formlyService.buildCheckboxConfig({key:"is_main_session",defaultValue:!0,label:"Main Session?"}),this.formlyService.buildInputConfig({key:"session_number",label:"Session Number",required:!0,inputKind:"NUMBER"}),this.formlyService.buildDatepickerConfig({key:"session_date",label:"Date of the Session (YYYY/MM/DD)",required:!0}),this.formlyService.buildInputConfig({key:"start_day",label:"Start Day",required:!1,inputKind:"NUMBER"}),this.formlyService.buildInputConfig({key:"end_day",label:"End Day",required:!1,inputKind:"NUMBER"})]}ngOnInit(){null==this.session()?.pk&&this.canCreate()&&this.changeState("CREATE",{})}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onSessionDelete(){this.state.set("DISPLAY"),this.sessionDelete.emit(this.session())}onCreateCancel(){this.changeState("DISPLAY",void 0),this.sessionCreateCancel.emit()}onSubmit(){switch(this.state()){case"CREATE":this.sessionCreate.emit(this.userModel());break;case"UPDATE":case"OUTDATED_UPDATE":this.sessionUpdate.emit(this.userModel())}this.changeState("DISPLAY",void 0)}onToggle(toggled){const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.session()}:void 0;this.changeState(nextState,nextModel)}toDiaryEntryUrl(entry){return this.routingService.getRoutePath("diaryentry",{sessionNumber:this.session()?.session_number,isMainSession:this.session()?.is_main_session_int,authorName:entry.author_name,campaign:this.session()?.campaign_details?.name})}static{this.ctorParameters=()=>[{type:formly_service_service.$},{type:routing_service.O}]}static{this.propDecorators={session:[{type:core.Input,args:[{isSignal:!0,alias:"session",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],sessionDelete:[{type:core.Output}],sessionCreate:[{type:core.Output}],sessionUpdate:[{type:core.Output}],sessionCreateCancel:[{type:core.Output,args:["sessionCreateCancel"]}]}}};SessionComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-session",template:'\x3c!-- Heading --\x3e\n\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n }\n \n\n \x3c!-- Edit Toggler --\x3e\n @if (canUpdate()) {\n \n }\n \n\n@switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n}\n\n\n {{ session().name }}\n\n @if (session() && session().start_day != null && session().end_day != null) {\n \n (Days {{ session().start_day }}-{{ session().end_day }})\n \n }\n \n\n\n \x3c!-- Body --\x3e\n \n @if (diaryEntries().length > 0) {\n
\n
\n \n Diaryentries\n \n\n
\n @for (diaryEntry of diaryEntries(); track diaryEntry.link) {\n \n \n {{ diaryEntry.author_name }} - {{ diaryEntry.name }}\n \n \n }\n \n
\n }\n\n @if (session() && session().has_recording) {\n
\n }\n
\n \x3c!-- Delete Toggler --\x3e\n @if (canDelete()) {\n \n }\n \n\x3c!-- Sessions Panel Content --\x3e\n\n Updating \'{{ session().name }}\'\' \n\n\n \x3c!-- Form --\x3e\n \n \n\n Create new Session \n\n\n \x3c!-- Form --\x3e\n \n \n\n\n \n \n',standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,icon_component.R,router.Wk,molecules.Ts,molecules.s2,molecules.zx],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[session_componentngResource_default()]})],SessionComponent);const session_stories={title:"DesignSystem/Organisms/SessionComponent",component:SessionComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,formly_constants.d_]})],args:{session:{pk:1,is_main_session:!0,is_main_session_int:1,session_number:10,session_date:"2023-04-20",start_day:1,end_day:2,name:"The Dragon's Lair",title:"Dungeons and Dragons Session",has_recording:!0,diaryentries:[{author_name:"John",name:"The party met in a tavern and decided to take on the quest to slay the dragon."},{author_name:"Sarah",name:"The party encountered some goblins on their way to the dragon's lair."},{author_name:"Bob",name:"The party defeated the dragon and claimed its treasure hoard."}],campaign:2,campaign_details:{pk:2,name:"Dungeons and Dragons Campaign"}},canCreate:!0,canUpdate:!0,canDelete:!0}},Template=args=>({props:{...args,sessionDelete:(0,dist.XI)("sessionDelete"),sessionCreate:(0,dist.XI)("sessionCreate"),sessionUpdate:(0,dist.XI)("sessionUpdate")}}),Default=Template.bind({});Default.args={};const NoPermission=Template.bind({});NoPermission.args={canCreate:!1,canUpdate:!1,canDelete:!1};const NoSession=Template.bind({});NoSession.args={session:void 0};const NoSessionNoCreate=Template.bind({});NoSessionNoCreate.args={session:void 0,canCreate:!1};const __namedExportsOrder=["Default","NoPermission","NoSession","NoSessionNoCreate"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sessionDelete: action('sessionDelete'),\n sessionCreate: action('sessionCreate'),\n sessionUpdate: action('sessionUpdate')\n }\n})",...Default.parameters?.docs?.source}}},NoPermission.parameters={...NoPermission.parameters,docs:{...NoPermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sessionDelete: action('sessionDelete'),\n sessionCreate: action('sessionCreate'),\n sessionUpdate: action('sessionUpdate')\n }\n})",...NoPermission.parameters?.docs?.source}}},NoSession.parameters={...NoSession.parameters,docs:{...NoSession.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sessionDelete: action('sessionDelete'),\n sessionCreate: action('sessionCreate'),\n sessionUpdate: action('sessionUpdate')\n }\n})",...NoSession.parameters?.docs?.source}}},NoSessionNoCreate.parameters={...NoSessionNoCreate.parameters,docs:{...NoSessionNoCreate.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sessionDelete: action('sessionDelete'),\n sessionCreate: action('sessionCreate'),\n sessionUpdate: action('sessionUpdate')\n }\n})",...NoSessionNoCreate.parameters?.docs?.source}}}},"./src/design/organisms/session/session.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card__heading {\n display: flex;\n justify-content: space-between;\n margin-bottom: var(--spacer-3);\n}\n.card__body {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n\n.heading__subtext {\n --bs-text-opacity: 1;\n color: #9b9a9a;\n}\n\n.body {\n margin-bottom: var(--spacer-4);\n}\n.body__entry {\n margin-bottom: var(--spacer-4);\n}\n.body__subheading {\n margin-bottom: var(--spacer-1);\n}\n.body__subbody {\n display: flex;\n flex-direction: column;\n margin-left: var(--spacer-4);\n}\n.body__subbody--list {\n margin-left: var(--spacer-2);\n}\n.body__link {\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-session-session-stories.7409cc59.iframe.bundle.js b/design-organisms-session-session-stories.7409cc59.iframe.bundle.js
deleted file mode 100644
index 94e8464d9..000000000
--- a/design-organisms-session-session-stories.7409cc59.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5369],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/session/session.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermission:()=>NoPermission,NoSession:()=>NoSession,NoSessionNoCreate:()=>NoSessionNoCreate,__namedExportsOrder:()=>__namedExportsOrder,default:()=>session_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var session_componentngResource=__webpack_require__("./src/design/organisms/session/session.component.scss?ngResource"),session_componentngResource_default=__webpack_require__.n(session_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");let SessionComponent=class SessionComponent{constructor(formlyService,routingService){this.formlyService=formlyService,this.routingService=routingService,this.session=core.input.required(),this.canUpdate=core.input.required(),this.canDelete=core.input.required(),this.canCreate=core.input.required(),this.serverModel=core.input.required(),this.sessionDelete=new core.EventEmitter,this.sessionCreate=new core.EventEmitter,this.sessionUpdate=new core.EventEmitter,this.sessionCreateCancel=(0,core.output)(),this.state=(0,core.signal)("DISPLAY"),this.sessionAudioUrl=(0,core.computed)((()=>this.routingService.getRoutePath("sessionaudio",{campaign:this.session()?.campaign_details?.name,isMainSession:this.session()?.is_main_session_int,sessionNumber:this.session()?.session_number}))),this.userModel=(0,core.signal)(void 0),this.diaryEntries=(0,core.computed)((()=>(this.session()?.diaryentries??[]).map((entry=>({name:entry.name,author_name:entry.author_name,link:this.toDiaryEntryUrl(entry)}))))),this.formlyFields=[this.formlyService.buildCheckboxConfig({key:"is_main_session",defaultValue:!0,label:"Main Session?"}),this.formlyService.buildInputConfig({key:"session_number",label:"Session Number",required:!0,inputKind:"NUMBER"}),this.formlyService.buildDatepickerConfig({key:"session_date",label:"Date of the Session (YYYY/MM/DD)",required:!0}),this.formlyService.buildInputConfig({key:"start_day",label:"Start Day",required:!1,inputKind:"NUMBER"}),this.formlyService.buildInputConfig({key:"end_day",label:"End Day",required:!1,inputKind:"NUMBER"})]}ngOnInit(){null==this.session()?.pk&&this.canCreate()&&this.changeState("CREATE",{})}changeState(newState,newModel){this.state.set(newState),this.userModel.set({...newModel})}onSessionDelete(){this.state.set("DISPLAY"),this.sessionDelete.emit(this.session())}onCreateCancel(){this.changeState("DISPLAY",void 0),this.sessionCreateCancel.emit()}onSubmit(){switch(this.state()){case"CREATE":this.sessionCreate.emit(this.userModel());break;case"UPDATE":case"OUTDATED_UPDATE":this.sessionUpdate.emit(this.userModel())}this.changeState("DISPLAY",void 0)}onToggle(toggled){const nextState="DISPLAY"===this.state()?"UPDATE":"DISPLAY",nextModel=toggled?{...this.session()}:void 0;this.changeState(nextState,nextModel)}toDiaryEntryUrl(entry){return this.routingService.getRoutePath("diaryentry",{sessionNumber:this.session()?.session_number,isMainSession:this.session()?.is_main_session_int,authorName:entry.author_name,campaign:this.session()?.campaign_details?.name})}static{this.ctorParameters=()=>[{type:formly_service_service.$},{type:routing_service.O}]}static{this.propDecorators={session:[{type:core.Input,args:[{isSignal:!0,alias:"session",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],sessionDelete:[{type:core.Output}],sessionCreate:[{type:core.Output}],sessionUpdate:[{type:core.Output}],sessionCreateCancel:[{type:core.Output,args:["sessionCreateCancel"]}]}}};SessionComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-session",template:'\x3c!-- Heading --\x3e\n\n \n @switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n }\n \n\n \x3c!-- Edit Toggler --\x3e\n @if (canUpdate()) {\n \n }\n \n\n@switch (state()) {\n @case ("DISPLAY") {\n \n }\n @case ("UPDATE") {\n \n }\n @case ("CREATE") {\n \n }\n @case ("OUTDATED_UPDATE") {\n \n }\n}\n\n\n {{ session().name }}\n\n @if (session() && session().start_day != null && session().end_day != null) {\n \n (Days {{ session().start_day }}-{{ session().end_day }})\n \n }\n \n\n\n \x3c!-- Body --\x3e\n \n @if (diaryEntries().length > 0) {\n
\n
\n \n Diaryentries\n \n\n
\n @for (diaryEntry of diaryEntries(); track diaryEntry.link) {\n \n \n {{ diaryEntry.author_name }} - {{ diaryEntry.name }}\n \n \n }\n \n
\n }\n\n @if (session() && session().has_recording) {\n
\n }\n
\n \x3c!-- Delete Toggler --\x3e\n @if (canDelete()) {\n \n }\n \n\x3c!-- Sessions Panel Content --\x3e\n\n Updating \'{{ session().name }}\'\' \n\n\n \x3c!-- Form --\x3e\n \n \n\n Create new Session \n\n\n \x3c!-- Form --\x3e\n \n \n\n\n \n \n',standalone:!0,imports:[common.NgTemplateOutlet,molecules.aU,icon_component.R,router.Wk,molecules.Ts,molecules.s2,molecules.zx],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[session_componentngResource_default()]})],SessionComponent);const session_stories={title:"DesignSystem/Organisms/SessionComponent",component:SessionComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,formly_constants.d_]})],args:{session:{pk:1,is_main_session:!0,is_main_session_int:1,session_number:10,session_date:"2023-04-20",start_day:1,end_day:2,name:"The Dragon's Lair",title:"Dungeons and Dragons Session",has_recording:!0,diaryentries:[{author_name:"John",name:"The party met in a tavern and decided to take on the quest to slay the dragon."},{author_name:"Sarah",name:"The party encountered some goblins on their way to the dragon's lair."},{author_name:"Bob",name:"The party defeated the dragon and claimed its treasure hoard."}],campaign:2,campaign_details:{pk:2,name:"Dungeons and Dragons Campaign"}},canCreate:!0,canUpdate:!0,canDelete:!0}},Template=args=>({props:{...args,sessionDelete:(0,dist.XI)("sessionDelete"),sessionCreate:(0,dist.XI)("sessionCreate"),sessionUpdate:(0,dist.XI)("sessionUpdate")}}),Default=Template.bind({});Default.args={};const NoPermission=Template.bind({});NoPermission.args={canCreate:!1,canUpdate:!1,canDelete:!1};const NoSession=Template.bind({});NoSession.args={session:void 0};const NoSessionNoCreate=Template.bind({});NoSessionNoCreate.args={session:void 0,canCreate:!1};const __namedExportsOrder=["Default","NoPermission","NoSession","NoSessionNoCreate"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sessionDelete: action('sessionDelete'),\n sessionCreate: action('sessionCreate'),\n sessionUpdate: action('sessionUpdate')\n }\n})",...Default.parameters?.docs?.source}}},NoPermission.parameters={...NoPermission.parameters,docs:{...NoPermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sessionDelete: action('sessionDelete'),\n sessionCreate: action('sessionCreate'),\n sessionUpdate: action('sessionUpdate')\n }\n})",...NoPermission.parameters?.docs?.source}}},NoSession.parameters={...NoSession.parameters,docs:{...NoSession.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sessionDelete: action('sessionDelete'),\n sessionCreate: action('sessionCreate'),\n sessionUpdate: action('sessionUpdate')\n }\n})",...NoSession.parameters?.docs?.source}}},NoSessionNoCreate.parameters={...NoSessionNoCreate.parameters,docs:{...NoSessionNoCreate.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n sessionDelete: action('sessionDelete'),\n sessionCreate: action('sessionCreate'),\n sessionUpdate: action('sessionUpdate')\n }\n})",...NoSessionNoCreate.parameters?.docs?.source}}}},"./src/design/organisms/session/session.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".card__heading {\n display: flex;\n justify-content: space-between;\n margin-bottom: var(--spacer-3);\n}\n.card__body {\n margin-bottom: var(--spacer-3);\n}\n.card__delete-confirmer {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n display: flex;\n justify-content: flex-end;\n width: 100%;\n --confirmation-bg-color: var(--bs-dark);\n}\n\n.heading__subtext {\n --bs-text-opacity: 1;\n color: #9b9a9a;\n}\n\n.body {\n margin-bottom: var(--spacer-4);\n}\n.body__entry {\n margin-bottom: var(--spacer-4);\n}\n.body__subheading {\n margin-bottom: var(--spacer-1);\n}\n.body__subbody {\n display: flex;\n flex-direction: column;\n margin-left: var(--spacer-4);\n}\n.body__subbody--list {\n margin-left: var(--spacer-2);\n}\n.body__link {\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-sessionaudio-player-sessionaudio-player-stories.84133493.iframe.bundle.js b/design-organisms-sessionaudio-player-sessionaudio-player-stories.84133493.iframe.bundle.js
deleted file mode 100644
index c68877f91..000000000
--- a/design-organisms-sessionaudio-player-sessionaudio-player-stories.84133493.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6637],{"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./src/design/organisms/sessionaudio-player/sessionaudio-player.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _ngx_formly_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_services/formly/validators.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/SessionaudioPlayerComponent",component:__webpack_require__("./src/design/organisms/sessionaudio-player/sessionaudio-player.component.ts").X,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_ngx_formly_core__WEBPACK_IMPORTED_MODULE_4__.qy.forRoot({validationMessages:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.h9,src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.zG,src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.wh],validators:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.yt,src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.jp,src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.EC]})]})],args:{audioSource:"/tech/piano2-CoolEdit.mp3",downloadSource:"https://www.potato.testurl.com",canDelete:!0,canCreate:!0,timestamps:[{pk:1,name:"Timestamp 1",time:1.5,encounter:"Encounter 1",session_audio:123},{pk:2,name:"Timestamp 2",time:2.3,encounter:"Encounter 1",session_audio:123},{pk:3,name:"Timestamp 3",time:3.2,encounter:"Encounter 2",session_audio:456},{pk:4,name:"Timestdsfa fasdfdas fsdafsdamp 4",time:4.1,encounter:"Encounter 2",session_audio:456},{pk:5,name:"Timestamp 5",time:4.8,session_audio:789}],serverUrl:"https://www.kozco.com"}},Default=(args=>({props:{...args,deleteTimestamp:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("deleteTimestamp"),createTimestamp:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("createTimestamp")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n deleteTimestamp: action('deleteTimestamp'),\n createTimestamp: action('createTimestamp')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-sessionaudio-player-sessionaudio-player-stories.ce7e8f1b.iframe.bundle.js b/design-organisms-sessionaudio-player-sessionaudio-player-stories.ce7e8f1b.iframe.bundle.js
new file mode 100644
index 000000000..d4240225b
--- /dev/null
+++ b/design-organisms-sessionaudio-player-sessionaudio-player-stories.ce7e8f1b.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6637],{"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,iR:()=>numberValidator,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,tu:()=>notNumberMesage,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},notNumberMesage={name:"notNumber",message:"Your input is not a number."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const numberValidator={name:"notNumber",validation:function isNumberValidation(control){const isNumberType="number"==typeof control.value,isNumberString="string"==typeof control.value&&!isNaN(control.value),isNumber=isNumberType||isNumberString;return isNumber?null:{notNumber:!isNumber}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./src/design/organisms/sessionaudio-player/sessionaudio-player.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _ngx_formly_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_services/formly/validators.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/SessionaudioPlayerComponent",component:__webpack_require__("./src/design/organisms/sessionaudio-player/sessionaudio-player.component.ts").X,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_ngx_formly_core__WEBPACK_IMPORTED_MODULE_4__.qy.forRoot({validationMessages:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.h9,src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.zG,src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.wh],validators:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.yt,src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.jp,src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_2__.EC]})]})],args:{audioSource:"/tech/piano2-CoolEdit.mp3",downloadSource:"https://www.potato.testurl.com",canDelete:!0,canCreate:!0,timestamps:[{pk:1,name:"Timestamp 1",time:1.5,encounter:"Encounter 1",session_audio:123},{pk:2,name:"Timestamp 2",time:2.3,encounter:"Encounter 1",session_audio:123},{pk:3,name:"Timestamp 3",time:3.2,encounter:"Encounter 2",session_audio:456},{pk:4,name:"Timestdsfa fasdfdas fsdafsdamp 4",time:4.1,encounter:"Encounter 2",session_audio:456},{pk:5,name:"Timestamp 5",time:4.8,session_audio:789}],serverUrl:"https://www.kozco.com"}},Default=(args=>({props:{...args,deleteTimestamp:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("deleteTimestamp"),createTimestamp:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("createTimestamp")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n deleteTimestamp: action('deleteTimestamp'),\n createTimestamp: action('createTimestamp')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-sidebar-sidebar-stories.0089c095.iframe.bundle.js b/design-organisms-sidebar-sidebar-stories.0089c095.iframe.bundle.js
new file mode 100644
index 000000000..9341f9db2
--- /dev/null
+++ b/design-organisms-sidebar-sidebar-stories.0089c095.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8201],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./src/design/organisms/sidebar/sidebar.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_services_utils_campaign_mock_service__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/SidebarComponent",component:__webpack_require__("./src/design/organisms/sidebar/sidebar.component.ts").k,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_3__.c],declarations:[]})],args:{campaign:src_app_services_utils_campaign_mock_service__WEBPACK_IMPORTED_MODULE_1__.jr}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-sidebar-sidebar-stories.95bae297.iframe.bundle.js b/design-organisms-sidebar-sidebar-stories.95bae297.iframe.bundle.js
deleted file mode 100644
index 120d30916..000000000
--- a/design-organisms-sidebar-sidebar-stories.95bae297.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8201],{"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./src/design/organisms/sidebar/sidebar.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_services_utils_campaign_mock_service__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/SidebarComponent",component:__webpack_require__("./src/design/organisms/sidebar/sidebar.component.ts").k,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_3__.c],declarations:[]})],args:{campaign:src_app_services_utils_campaign_mock_service__WEBPACK_IMPORTED_MODULE_1__.jr}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-toast-overlay-toast-overlay-stories.14e01a61.iframe.bundle.js b/design-organisms-toast-overlay-toast-overlay-stories.14e01a61.iframe.bundle.js
new file mode 100644
index 000000000..51954e42d
--- /dev/null
+++ b/design-organisms-toast-overlay-toast-overlay-stories.14e01a61.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3941],{"./src/design/animations/slideDown.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{V4:()=>slideOutFromBottom,sb:()=>slideUpFromBottom,st:()=>slideRight});var _angular_animations__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const inactiveStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({opacity:.2,transform:"translateY(50%)"}),activeStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({opacity:1,transform:"translateY(0%)"}),slideUpFromBottom=((0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-out",activeStyle)]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-in",inactiveStyle)])]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideUpFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-out",activeStyle)])])),slideOutFromBottom=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideOutFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-in",inactiveStyle)])]),inactiveSlideRightStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({transform:"translateX(100%)"}),activeSlideRightStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({transform:"translateX(0%)"}),slideRight=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideRight",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveSlideRightStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("250ms ease-in-out",activeSlideRightStyle)]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeSlideRightStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("250ms ease-in-out",inactiveSlideRightStyle)])])},"./src/design/atoms/_models/button.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C9:()=>toElementKind,bV:()=>ELEMENT_TYPES});const ELEMENT_TYPES=["PRIMARY","SECONDARY","DARK","DANGER","WARNING","LIGHT","INFO"];function toElementKind(kind){switch(kind){case"PRIMARY":case"SECONDARY":case"DARK":case"DANGER":case"WARNING":case"LIGHT":case"INFO":return kind;case"PRIMARY-OUTLINE":case"SECONDARY-OUTLINE":case"DARK-OUTLINE":case"DANGER-OUTLINE":case"WARNING-OUTLINE":case"LIGHT-OUTLINE":case"INFO-OUTLINE":return kind.replace("-OUTLINE","");case"NONE":return}}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/toast-overlay/toast-overlay.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{r:()=>ToastOverlayComponent,f:()=>ToastService});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var toast_overlay_componentngResource=__webpack_require__("./src/design/organisms/toast-overlay/toast-overlay.component.scss?ngResource"),toast_overlay_componentngResource_default=__webpack_require__.n(toast_overlay_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),slideDown=__webpack_require__("./src/design/animations/slideDown.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),logging=__webpack_require__("./src/utils/logging.ts");let ToastService=class ToastService{constructor(){this.toasts=(0,core.signal)([]),this.currentToast=(0,core.computed)((()=>this.toasts()[0]))}addToast(newToast){(0,logging.R)(this.addToast.name,newToast);const toasts=this.toasts();newToast.important?this.toasts.set([newToast,...toasts]):this.toasts.set([...toasts,newToast])}dismissToast(){const[_,...newToastList]=this.toasts();this.toasts.set(newToastList)}};ToastService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],ToastService);let ToastOverlayComponent=class ToastOverlayComponent{constructor(){this.toastService=(0,core.inject)(ToastService),this.currentToast=this.toastService.currentToast,this.icon=(0,core.computed)((()=>{const currentToast=this.currentToast();if(currentToast)return this.toHeaderIcon(currentToast.type,currentToast.header?.icon)}))}dismissCurrentToast(){const currentToast=this.currentToast();if(!currentToast)return;const onHide=currentToast.onHide;onHide&&onHide(),this.toastService.dismissToast()}toHeaderIcon(toastType,icon){if(null!=icon)return icon;switch(toastType){case"DANGER":return"triangle-exclamation";case"WARNING":return"circle-exclamation";case"INFO":return"info-circle";case"SUCCESS":return"check";default:return"info"}}};ToastOverlayComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-toast-overlay",standalone:!0,imports:[ng_bootstrap.VR,button_component.Q,icon_component.R,common.NgTemplateOutlet],animations:[slideDown.st],template:'@let toast = currentToast();\n@let onToastClick = toast?.onToastClick;\n@if (toast && onToastClick) {\n \n \n \n} @else if (toast) {\n \n}\n\n\n @if (toast) {\n @if (toast.header) {\n 0"\n [delay]="toast.dismissMs ? toast.dismissMs : 0"\n [ariaLive]="toast.important ? \'alert\' : \'polite\'"\n [animation]="true"\n (hidden)="dismissCurrentToast()"\n (shown)="toast.onShow ? toast.onShow() : undefined"\n >\n \n \n \n\n \n \n } @else {\n 0"\n [delay]="toast.dismissMs ? toast.dismissMs : 0"\n [ariaLive]="toast.important ? \'alert\' : \'polite\'"\n [animation]="true"\n (hidden)="dismissCurrentToast()"\n (shown)="toast.onShow ? toast.onShow() : undefined"\n >\n \n \n }\n }\n \n\n\n \n
\n @let bodyIcon = toast?.body?.icon;\n @if (bodyIcon) {\n \n }\n\n @if (toast?.body?.text) {\n
\n }\n \n\n
\n @let firstButton = toast?.body?.buttons?.[0];\n @if (firstButton) {\n \n }\n @let secondButton = toast?.body?.buttons?.[1];\n @if (secondButton) {\n \n }\n
\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[toast_overlay_componentngResource_default()]})],ToastOverlayComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/organisms/toast-overlay/toast-overlay.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{WithHeaderToast:()=>WithHeaderToast,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_design_atoms_models_button__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/design/atoms/_models/button.ts"),src_design_atoms_models_icon__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/design/atoms/_models/icon.ts"),_toast_overlay_component__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/design/organisms/toast-overlay/toast-overlay.component.ts");const toastService=new _toast_overlay_component__WEBPACK_IMPORTED_MODULE_2__.f,__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/ToastOverlayComponent",component:_toast_overlay_component__WEBPACK_IMPORTED_MODULE_2__.r,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.applicationConfig)({providers:[{provide:_toast_overlay_component__WEBPACK_IMPORTED_MODULE_2__.f,useValue:toastService}]})],args:{toastService,headerText:"Hello",bodyText:"World",important:!1,dismissMs:1500,hasBody:!0,hasHeader:!0},argTypes:{toastType:{control:"select",options:[...src_design_atoms_models_button__WEBPACK_IMPORTED_MODULE_3__.bV,"SUCCESS"]},headerIcon:{control:"select",options:[null,...src_design_atoms_models_icon__WEBPACK_IMPORTED_MODULE_1__.xy]},bodyIcon:{control:"select",options:[null,...src_design_atoms_models_icon__WEBPACK_IMPORTED_MODULE_1__.xy]}}},WithHeaderToast={render:args=>{const toast={type:args.toastType??"INFO",header:args.hasHeader?{text:args.headerText,icon:args.headerIcon}:void 0,body:{text:args.bodyText,icon:args.bodyIcon},onToastClick:dismiss=>dismiss()};return args.toast=toast,{props:args,template:'\n Click \n \n '}}},__namedExportsOrder=["WithHeaderToast"];WithHeaderToast.parameters={...WithHeaderToast.parameters,docs:{...WithHeaderToast.parameters?.docs,source:{originalSource:'{\n render: (args: any) => {\n const toast: ToastConfig = {\n type: args.toastType ?? \'INFO\',\n header: args.hasHeader ? {\n text: args.headerText,\n icon: args.headerIcon\n } : undefined,\n body: {\n text: args.bodyText,\n icon: args.bodyIcon\n },\n onToastClick: dismiss => dismiss()\n };\n (args as any).toast = toast;\n return {\n props: args,\n template: `\n Click \n \n `\n };\n }\n}',...WithHeaderToast.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/toast-overlay/toast-overlay.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n position: absolute;\n}\n\n.toast:focus, .toast:focus-within, .toast:hover, .toast:focus-visible {\n outline: var(--focus-outline);\n}\n\n.toast {\n position: fixed;\n bottom: 10%;\n width: 93%;\n right: 3.5%;\n --bs-light-rgb: var(--bs-white);\n --bs-toast-header-color: var(--bs-white);\n --bs-toast-color: var(--bs-white);\n --toast-padding-x: var(--bs-toast-padding-x);\n --toast-padding-y: calc(var(--bs-toast-padding-y) / 2);\n --bs-toast-border-width: 3px;\n}\n.toast--primary {\n --bs-border-color-translucent: var(--bs-primary);\n}\n.toast--secondary {\n --bs-border-color-translucent: var(--bs-secondary);\n}\n.toast--success {\n --bs-border-color-translucent: var(--bs-success);\n}\n.toast--danger {\n --bs-border-color-translucent: var(--bs-danger);\n}\n.toast--warning {\n --bs-border-color-translucent: var(--bs-warning);\n}\n.toast--info {\n --bs-border-color-translucent: var(--bs-info);\n}\n.toast--light {\n --bs-border-color-translucent: var(--bs-light);\n}\n.toast--dark {\n --bs-border-color-translucent: var(--bs-dark);\n}\n@media (min-width: 576px) {\n .toast {\n width: fit-content;\n max-width: 50%;\n bottom: 5%;\n }\n}\n\n.toast-header__text {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacer-2);\n flex: 1;\n font-weight: bold;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n}\n.body__text {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--spacer-2);\n text-align: start;\n}\n.body__text-container {\n max-height: calc(var(--bs-body-font-size) * 8);\n max-width: 100%;\n overflow: auto;\n}\n.body__button {\n width: fit-content;\n}\n.body__button-container {\n display: flex;\n flex-direction: row;\n gap: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-toast-overlay-toast-overlay-stories.d418fa9b.iframe.bundle.js b/design-organisms-toast-overlay-toast-overlay-stories.d418fa9b.iframe.bundle.js
deleted file mode 100644
index f54191eed..000000000
--- a/design-organisms-toast-overlay-toast-overlay-stories.d418fa9b.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[3941],{"./src/design/animations/slideDown.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{V4:()=>slideOutFromBottom,sb:()=>slideUpFromBottom,st:()=>slideRight});var _angular_animations__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const inactiveStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({opacity:.2,transform:"translateY(50%)"}),activeStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({opacity:1,transform:"translateY(0%)"}),slideUpFromBottom=((0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-out",activeStyle)]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-in",inactiveStyle)])]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideUpFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-out",activeStyle)])])),slideOutFromBottom=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideOutFromBottom",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("500ms ease-in",inactiveStyle)])]),inactiveSlideRightStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({transform:"translateX(100%)"}),activeSlideRightStyle=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.iF)({transform:"translateX(0%)"}),slideRight=(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.hZ)("slideRight",[(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":enter",[inactiveSlideRightStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("250ms ease-in-out",activeSlideRightStyle)]),(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.kY)(":leave",[activeSlideRightStyle,(0,_angular_animations__WEBPACK_IMPORTED_MODULE_0__.i0)("250ms ease-in-out",inactiveSlideRightStyle)])])},"./src/design/atoms/_models/button.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{C9:()=>toElementKind,bV:()=>ELEMENT_TYPES});const ELEMENT_TYPES=["PRIMARY","SECONDARY","DARK","DANGER","WARNING","LIGHT","INFO"];function toElementKind(kind){switch(kind){case"PRIMARY":case"SECONDARY":case"DARK":case"DANGER":case"WARNING":case"LIGHT":case"INFO":return kind;case"PRIMARY-OUTLINE":case"SECONDARY-OUTLINE":case"DARK-OUTLINE":case"DANGER-OUTLINE":case"WARNING-OUTLINE":case"LIGHT-OUTLINE":case"INFO-OUTLINE":return kind.replace("-OUTLINE","");case"NONE":return}}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/toast-overlay/toast-overlay.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{r:()=>ToastOverlayComponent,f:()=>ToastService});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var toast_overlay_componentngResource=__webpack_require__("./src/design/organisms/toast-overlay/toast-overlay.component.scss?ngResource"),toast_overlay_componentngResource_default=__webpack_require__.n(toast_overlay_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),slideDown=__webpack_require__("./src/design/animations/slideDown.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),logging=__webpack_require__("./src/utils/logging.ts");let ToastService=class ToastService{constructor(){this.toasts=(0,core.signal)([]),this.currentToast=(0,core.computed)((()=>this.toasts()[0]))}addToast(newToast){(0,logging.R)(this.addToast.name,newToast);const toasts=this.toasts();newToast.important?this.toasts.set([newToast,...toasts]):this.toasts.set([...toasts,newToast])}dismissToast(){const[_,...newToastList]=this.toasts();this.toasts.set(newToastList)}};ToastService=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],ToastService);let ToastOverlayComponent=class ToastOverlayComponent{constructor(){this.toastService=(0,core.inject)(ToastService),this.currentToast=this.toastService.currentToast,this.icon=(0,core.computed)((()=>{const currentToast=this.currentToast();if(currentToast)return this.toHeaderIcon(currentToast.type,currentToast.header?.icon)}))}dismissCurrentToast(){const currentToast=this.currentToast();if(!currentToast)return;const onHide=currentToast.onHide;onHide&&onHide(),this.toastService.dismissToast()}toHeaderIcon(toastType,icon){if(null!=icon)return icon;switch(toastType){case"DANGER":return"triangle-exclamation";case"WARNING":return"circle-exclamation";case"INFO":return"info-circle";case"SUCCESS":return"check";default:return"info"}}};ToastOverlayComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-toast-overlay",standalone:!0,imports:[ng_bootstrap.VR,button_component.Q,icon_component.R,common.NgTemplateOutlet],animations:[slideDown.st],template:'@let toast = currentToast();\n@let onToastClick = toast?.onToastClick;\n@if (toast && onToastClick) {\n \n \n \n} @else if (toast) {\n \n}\n\n\n @if (toast) {\n @if (toast.header) {\n 0"\n [delay]="toast.dismissMs ? toast.dismissMs : 0"\n [ariaLive]="toast.important ? \'alert\' : \'polite\'"\n [animation]="true"\n (hidden)="dismissCurrentToast()"\n (shown)="toast.onShow ? toast.onShow() : undefined"\n >\n \n \n \n\n \n \n } @else {\n 0"\n [delay]="toast.dismissMs ? toast.dismissMs : 0"\n [ariaLive]="toast.important ? \'alert\' : \'polite\'"\n [animation]="true"\n (hidden)="dismissCurrentToast()"\n (shown)="toast.onShow ? toast.onShow() : undefined"\n >\n \n \n }\n }\n \n\n\n \n
\n @let bodyIcon = toast?.body?.icon;\n @if (bodyIcon) {\n \n }\n\n @if (toast?.body?.text) {\n
\n }\n \n\n
\n @let firstButton = toast?.body?.buttons?.[0];\n @if (firstButton) {\n \n }\n @let secondButton = toast?.body?.buttons?.[1];\n @if (secondButton) {\n \n }\n
\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[toast_overlay_componentngResource_default()]})],ToastOverlayComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";module.exports=function(cssWithMappingToString){var list=[];return list.toString=function toString(){return this.map((function(item){var content="",needLayer=void 0!==item[5];return item[4]&&(content+="@supports (".concat(item[4],") {")),item[2]&&(content+="@media ".concat(item[2]," {")),needLayer&&(content+="@layer".concat(item[5].length>0?" ".concat(item[5]):""," {")),content+=cssWithMappingToString(item),needLayer&&(content+="}"),item[2]&&(content+="}"),item[4]&&(content+="}"),content})).join("")},list.i=function i(modules,media,dedupe,supports,layer){"string"==typeof modules&&(modules=[[null,modules,void 0]]);var alreadyImportedModules={};if(dedupe)for(var k=0;k0?" ".concat(item[5]):""," {").concat(item[1],"}")),item[5]=layer),media&&(item[2]?(item[1]="@media ".concat(item[2]," {").concat(item[1],"}"),item[2]=media):item[2]=media),supports&&(item[4]?(item[1]="@supports (".concat(item[4],") {").concat(item[1],"}"),item[4]=supports):item[4]="".concat(supports)),list.push(item))}},list}},"./node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";module.exports=function(i){return i[1]}},"./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>combineLatest});var _Observable__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),_util_argsArgArrayOrObject__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js"),_from__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js"),_util_identity__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js"),_util_mapOneOrManyArgs__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_createObject__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/createObject.js"),_operators_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_util_executeSchedule__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js");function combineLatest(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{x:()=>concat});var mergeAll=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js");var util_args=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),from=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/from.js");function concat(){for(var args=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>mapTo});var _map__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js");function mapTo(value){return(0,_map__WEBPACK_IMPORTED_MODULE_0__.T)((function(){return value}))}},"./node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U:()=>mergeAll});var _mergeMap__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js"),_util_identity__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/identity.js");function mergeAll(concurrent){return void 0===concurrent&&(concurrent=1/0),(0,_mergeMap__WEBPACK_IMPORTED_MODULE_0__.Z)(_util_identity__WEBPACK_IMPORTED_MODULE_1__.D,concurrent)}},"./node_modules/rxjs/dist/esm5/internal/operators/startWith.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Z:()=>startWith});var _observable_concat__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/concat.js"),_util_args__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/args.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js");function startWith(){for(var values=[],_i=0;_i{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>takeUntil});var _util_lift__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js"),_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js"),_util_noop__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/noop.js");function takeUntil(notifier){return(0,_util_lift__WEBPACK_IMPORTED_MODULE_0__.N)((function(source,subscriber){(0,_observable_innerFrom__WEBPACK_IMPORTED_MODULE_1__.Tg)(notifier).subscribe((0,_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__._)(subscriber,(function(){return subscriber.complete()}),_util_noop__WEBPACK_IMPORTED_MODULE_3__.l)),!subscriber.closed&&source.subscribe(subscriber)}))}},"./node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>argsArgArrayOrObject});var isArray=Array.isArray,getPrototypeOf=Object.getPrototypeOf,objectProto=Object.prototype,getKeys=Object.keys;function argsArgArrayOrObject(args){if(1===args.length){var first_1=args[0];if(isArray(first_1))return{args:first_1,keys:null};if(function isPOJO(obj){return obj&&"object"==typeof obj&&getPrototypeOf(obj)===objectProto}(first_1)){var keys=getKeys(first_1);return{args:keys.map((function(key){return first_1[key]})),keys}}}return{args,keys:null}}},"./node_modules/rxjs/dist/esm5/internal/util/createObject.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function createObject(keys,values){return keys.reduce((function(result,key,i){return result[key]=values[i],result}),{})}__webpack_require__.d(__webpack_exports__,{e:()=>createObject})},"./node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{I:()=>mapOneOrManyArgs});var tslib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_operators_map__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),isArray=Array.isArray;function mapOneOrManyArgs(fn){return(0,_operators_map__WEBPACK_IMPORTED_MODULE_1__.T)((function(args){return function callOrApply(fn,args){return isArray(args)?fn.apply(void 0,(0,tslib__WEBPACK_IMPORTED_MODULE_0__.fX)([],(0,tslib__WEBPACK_IMPORTED_MODULE_0__.zs)(args))):fn(args)}(fn,args)}))}},"./src/design/organisms/toast-overlay/toast-overlay.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{WithHeaderToast:()=>WithHeaderToast,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_design_atoms_models_button__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/design/atoms/_models/button.ts"),src_design_atoms_models_icon__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/design/atoms/_models/icon.ts"),_toast_overlay_component__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/design/organisms/toast-overlay/toast-overlay.component.ts");const toastService=new _toast_overlay_component__WEBPACK_IMPORTED_MODULE_2__.f,__WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/ToastOverlayComponent",component:_toast_overlay_component__WEBPACK_IMPORTED_MODULE_2__.r,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.applicationConfig)({providers:[{provide:_toast_overlay_component__WEBPACK_IMPORTED_MODULE_2__.f,useValue:toastService}]})],args:{toastService,headerText:"Hello",bodyText:"World",important:!1,dismissMs:1500,hasBody:!0,hasHeader:!0},argTypes:{toastType:{control:"select",options:[...src_design_atoms_models_button__WEBPACK_IMPORTED_MODULE_3__.bV,"SUCCESS"]},headerIcon:{control:"select",options:[null,...src_design_atoms_models_icon__WEBPACK_IMPORTED_MODULE_1__.xy]},bodyIcon:{control:"select",options:[null,...src_design_atoms_models_icon__WEBPACK_IMPORTED_MODULE_1__.xy]}}},WithHeaderToast={render:args=>{const toast={type:args.toastType??"INFO",header:args.hasHeader?{text:args.headerText,icon:args.headerIcon}:void 0,body:{text:args.bodyText,icon:args.bodyIcon},onToastClick:dismiss=>dismiss()};return args.toast=toast,{props:args,template:'\n Click \n \n '}}},__namedExportsOrder=["WithHeaderToast"];WithHeaderToast.parameters={...WithHeaderToast.parameters,docs:{...WithHeaderToast.parameters?.docs,source:{originalSource:'{\n render: (args: any) => {\n const toast: ToastConfig = {\n type: args.toastType ?? \'INFO\',\n header: args.hasHeader ? {\n text: args.headerText,\n icon: args.headerIcon\n } : undefined,\n body: {\n text: args.bodyText,\n icon: args.bodyIcon\n },\n onToastClick: dismiss => dismiss()\n };\n (args as any).toast = toast;\n return {\n props: args,\n template: `\n Click \n \n `\n };\n }\n}',...WithHeaderToast.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/toast-overlay/toast-overlay.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n position: absolute;\n}\n\n.toast:focus, .toast:focus-within, .toast:hover, .toast:focus-visible {\n outline: var(--focus-outline);\n}\n\n.toast {\n position: fixed;\n bottom: 10%;\n width: 93%;\n right: 3.5%;\n --bs-light-rgb: var(--bs-white);\n --bs-toast-header-color: var(--bs-white);\n --bs-toast-color: var(--bs-white);\n --toast-padding-x: var(--bs-toast-padding-x);\n --toast-padding-y: calc(var(--bs-toast-padding-y) / 2);\n --bs-toast-border-width: 3px;\n}\n.toast--primary {\n --bs-border-color-translucent: var(--bs-primary);\n}\n.toast--secondary {\n --bs-border-color-translucent: var(--bs-secondary);\n}\n.toast--success {\n --bs-border-color-translucent: var(--bs-success);\n}\n.toast--danger {\n --bs-border-color-translucent: var(--bs-danger);\n}\n.toast--warning {\n --bs-border-color-translucent: var(--bs-warning);\n}\n.toast--info {\n --bs-border-color-translucent: var(--bs-info);\n}\n.toast--light {\n --bs-border-color-translucent: var(--bs-light);\n}\n.toast--dark {\n --bs-border-color-translucent: var(--bs-dark);\n}\n@media (min-width: 576px) {\n .toast {\n width: fit-content;\n max-width: 50%;\n bottom: 5%;\n }\n}\n\n.toast-header__text {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacer-2);\n flex: 1;\n font-weight: bold;\n}\n\n.body {\n display: flex;\n flex-direction: column;\n}\n.body__text {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--spacer-2);\n text-align: start;\n}\n.body__text-container {\n max-height: calc(var(--bs-body-font-size) * 8);\n max-width: 100%;\n overflow: auto;\n}\n.body__button {\n width: fit-content;\n}\n.body__button-container {\n display: flex;\n flex-direction: row;\n gap: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-user-row-user-row-stories.85d5aead.iframe.bundle.js b/design-organisms-user-row-user-row-stories.85d5aead.iframe.bundle.js
deleted file mode 100644
index 88be896c6..000000000
--- a/design-organisms-user-row-user-row-stories.85d5aead.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[9623],{"./src/app/_services/article/group.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>dummyGroups});const dummyGroups=[{url:"https://example.com/group1",name:"Group 1",permissions:["read","write"],id:1},{url:"https://example.com/group2",name:"Group 2",permissions:["read","delete"],id:2},{url:"https://example.com/group3",name:"Group 3",permissions:["write","execute"],id:3},{url:"https://example.com/admin",name:"Admin",permissions:["read","write","delete","execute"],id:4},{url:"https://example.com/guest",name:"Guest",permissions:["read"],id:5},{url:"https://example.com/member",name:"Member",permissions:["read","write"],id:6}]},"./src/app/_services/article/user.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{d:()=>dummyUsers});const dummyUsers=[{username:"isofruit",pk:3,email:"philippmdoerner@web.de",is_staff:!0,is_superuser:!0,is_active:!0,groups:[3,4],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Aldrune_campaign_admin_group",pk:4}]},{username:"Rhiannon",pk:6,email:"dianaday@gmx.net",is_staff:!1,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"SamDay",pk:7,email:void 0,is_staff:!0,is_superuser:!1,is_active:!0,groups:[],group_details:[]},{username:"Murtagh",pk:8,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,6],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_guest_campaign_group",pk:6}]},{username:"Ailis",pk:9,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Caitriona",pk:10,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,7,8],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_campaign_group",pk:7},{name:"Jōzai Corporation_campaign_admin_group",pk:8}]},{username:"Fen",pk:11,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"Bathilde",pk:12,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,7],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Guest",pk:14,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Relentless",pk:15,email:"philipp3000doerner@web.de",is_staff:!0,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"Guest2",pk:16,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Mipp1",pk:17,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Spleeti",pk:18,email:"Laura.spleet@posteo.de",is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Christian",pk:19,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Norbert",pk:20,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Papa",pk:21,email:"Dr.KlemensDoerner@gmx.de",is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Tecatin",pk:22,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[7],group_details:[{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Roach",pk:23,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5,7],group_details:[{name:"Aldrune_guest_campaign_group",pk:5},{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Mav",pk:25,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Sam",pk:28,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[4],group_details:[{name:"Aldrune_campaign_admin_group",pk:4}]}]},"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/design/organisms/user-row/user-row.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>UserRowComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var user_row_componentngResource=__webpack_require__("./src/design/organisms/user-row/user-row.component.scss?ngResource"),user_row_componentngResource_default=__webpack_require__.n(user_row_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");let UserRowComponent=class UserRowComponent{constructor(){this.user=core.input.required(),this.groups=(0,core.input)(),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.addGroup=new core.EventEmitter,this.removeGroup=new core.EventEmitter,this.deleteUser=new core.EventEmitter,this.userGroupEntries=(0,core.computed)((()=>this.user().group_details?.map((group=>({badgeValue:group.pk,text:group.name})))??[]))}static{this.propDecorators={user:[{type:core.Input,args:[{isSignal:!0,alias:"user",required:!0,transform:void 0}]}],groups:[{type:core.Input,args:[{isSignal:!0,alias:"groups",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],addGroup:[{type:core.Output}],removeGroup:[{type:core.Output}],deleteUser:[{type:core.Output}]}}};UserRowComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-user-row",template:'\n
\n \n
\n {{ user().username | titlecase }}\n @if (!user().is_active) {\n
(†) \n }\n
\n \n\n
\n\n
\n
\n
{{ user().email ?? "Not Provided" }}
\n
\n\n @if (user().is_active) {\n
\n }\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,molecules.pn,common.TitleCasePipe,molecules.Ts],styles:[user_row_componentngResource_default()]})],UserRowComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/user-row/user-row.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermissions:()=>NoPermissions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_ngx_formly_core__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_services_article_group_service_mock__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_services/article/group.service.mock.ts"),src_app_services_article_user_mock_service__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/app/_services/article/user.mock.service.ts"),src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/app/_services/formly/validators.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/UserRowComponent",component:__webpack_require__("./src/design/organisms/user-row/user-row.component.ts").D,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_6__.c,_ngx_formly_core__WEBPACK_IMPORTED_MODULE_7__.qy.forRoot({validationMessages:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_4__.h9],validators:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_4__.yt]})]})],args:{user:src_app_services_article_user_mock_service__WEBPACK_IMPORTED_MODULE_3__.d[0],groups:src_app_services_article_group_service_mock__WEBPACK_IMPORTED_MODULE_2__.F,canDelete:!0,canCreate:!0}},Template=args=>({props:{...args,addGroup:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("addGroup"),removeGroup:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("removeGroup"),deleteUser:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("deleteUser")}}),Default=Template.bind({});Default.args={};const NoPermissions=Template.bind({});NoPermissions.args={canCreate:!1,canDelete:!1};const __namedExportsOrder=["Default","NoPermissions"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n addGroup: action('addGroup'),\n removeGroup: action('removeGroup'),\n deleteUser: action('deleteUser')\n }\n})",...Default.parameters?.docs?.source}}},NoPermissions.parameters={...NoPermissions.parameters,docs:{...NoPermissions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n addGroup: action('addGroup'),\n removeGroup: action('removeGroup'),\n deleteUser: action('deleteUser')\n }\n})",...NoPermissions.parameters?.docs?.source}}}},"./src/design/organisms/user-row/user-row.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".user-card__row {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n.user-card__row--delete {\n margin-top: var(--spacer-4);\n display: flex;\n justify-content: flex-end;\n}\n.user-card__row--heading {\n margin-top: var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-organisms-user-row-user-row-stories.bee9b4c8.iframe.bundle.js b/design-organisms-user-row-user-row-stories.bee9b4c8.iframe.bundle.js
new file mode 100644
index 000000000..d1106b70b
--- /dev/null
+++ b/design-organisms-user-row-user-row-stories.bee9b4c8.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[9623],{"./src/app/_services/article/group.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>dummyGroups});const dummyGroups=[{url:"https://example.com/group1",name:"Group 1",permissions:["read","write"],id:1},{url:"https://example.com/group2",name:"Group 2",permissions:["read","delete"],id:2},{url:"https://example.com/group3",name:"Group 3",permissions:["write","execute"],id:3},{url:"https://example.com/admin",name:"Admin",permissions:["read","write","delete","execute"],id:4},{url:"https://example.com/guest",name:"Guest",permissions:["read"],id:5},{url:"https://example.com/member",name:"Member",permissions:["read","write"],id:6}]},"./src/app/_services/article/user.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{d:()=>dummyUsers});const dummyUsers=[{username:"isofruit",pk:3,email:"philippmdoerner@web.de",is_staff:!0,is_superuser:!0,is_active:!0,groups:[3,4],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Aldrune_campaign_admin_group",pk:4}]},{username:"Rhiannon",pk:6,email:"dianaday@gmx.net",is_staff:!1,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"SamDay",pk:7,email:void 0,is_staff:!0,is_superuser:!1,is_active:!0,groups:[],group_details:[]},{username:"Murtagh",pk:8,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,6],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_guest_campaign_group",pk:6}]},{username:"Ailis",pk:9,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Caitriona",pk:10,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,7,8],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_campaign_group",pk:7},{name:"Jōzai Corporation_campaign_admin_group",pk:8}]},{username:"Fen",pk:11,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"Bathilde",pk:12,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,7],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Guest",pk:14,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Relentless",pk:15,email:"philipp3000doerner@web.de",is_staff:!0,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"Guest2",pk:16,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Mipp1",pk:17,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Spleeti",pk:18,email:"Laura.spleet@posteo.de",is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Christian",pk:19,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Norbert",pk:20,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Papa",pk:21,email:"Dr.KlemensDoerner@gmx.de",is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Tecatin",pk:22,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[7],group_details:[{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Roach",pk:23,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5,7],group_details:[{name:"Aldrune_guest_campaign_group",pk:5},{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Mav",pk:25,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Sam",pk:28,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[4],group_details:[{name:"Aldrune_campaign_admin_group",pk:4}]}]},"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,iR:()=>numberValidator,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,tu:()=>notNumberMesage,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},notNumberMesage={name:"notNumber",message:"Your input is not a number."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const numberValidator={name:"notNumber",validation:function isNumberValidation(control){const isNumberType="number"==typeof control.value,isNumberString="string"==typeof control.value&&!isNaN(control.value),isNumber=isNumberType||isNumberString;return isNumber?null:{notNumber:!isNumber}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/design/organisms/user-row/user-row.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>UserRowComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var user_row_componentngResource=__webpack_require__("./src/design/organisms/user-row/user-row.component.scss?ngResource"),user_row_componentngResource_default=__webpack_require__.n(user_row_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");let UserRowComponent=class UserRowComponent{constructor(){this.user=core.input.required(),this.groups=(0,core.input)(),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.addGroup=new core.EventEmitter,this.removeGroup=new core.EventEmitter,this.deleteUser=new core.EventEmitter,this.userGroupEntries=(0,core.computed)((()=>this.user().group_details?.map((group=>({badgeValue:group.pk,text:group.name})))??[]))}static{this.propDecorators={user:[{type:core.Input,args:[{isSignal:!0,alias:"user",required:!0,transform:void 0}]}],groups:[{type:core.Input,args:[{isSignal:!0,alias:"groups",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],addGroup:[{type:core.Output}],removeGroup:[{type:core.Output}],deleteUser:[{type:core.Output}]}}};UserRowComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-user-row",template:'\n
\n \n
\n {{ user().username | titlecase }}\n @if (!user().is_active) {\n
(†) \n }\n
\n \n\n
\n\n
\n
\n
{{ user().email ?? "Not Provided" }}
\n
\n\n @if (user().is_active) {\n
\n }\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,molecules.pn,common.TitleCasePipe,molecules.Ts],styles:[user_row_componentngResource_default()]})],UserRowComponent)},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/organisms/user-row/user-row.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermissions:()=>NoPermissions,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _angular_router_testing__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),_ngx_formly_core__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),_storybook_angular__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),src_app_services_article_group_service_mock__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./src/app/_services/article/group.service.mock.ts"),src_app_services_article_user_mock_service__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/app/_services/article/user.mock.service.ts"),src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/app/_services/formly/validators.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"DesignSystem/Organisms/UserRowComponent",component:__webpack_require__("./src/design/organisms/user-row/user-row.component.ts").D,decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_1__.moduleMetadata)({imports:[_angular_router_testing__WEBPACK_IMPORTED_MODULE_6__.c,_ngx_formly_core__WEBPACK_IMPORTED_MODULE_7__.qy.forRoot({validationMessages:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_4__.h9],validators:[src_app_services_formly_validators__WEBPACK_IMPORTED_MODULE_4__.yt]})]})],args:{user:src_app_services_article_user_mock_service__WEBPACK_IMPORTED_MODULE_3__.d[0],groups:src_app_services_article_group_service_mock__WEBPACK_IMPORTED_MODULE_2__.F,canDelete:!0,canCreate:!0}},Template=args=>({props:{...args,addGroup:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("addGroup"),removeGroup:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("removeGroup"),deleteUser:(0,_storybook_addon_actions__WEBPACK_IMPORTED_MODULE_0__.XI)("deleteUser")}}),Default=Template.bind({});Default.args={};const NoPermissions=Template.bind({});NoPermissions.args={canCreate:!1,canDelete:!1};const __namedExportsOrder=["Default","NoPermissions"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n addGroup: action('addGroup'),\n removeGroup: action('removeGroup'),\n deleteUser: action('deleteUser')\n }\n})",...Default.parameters?.docs?.source}}},NoPermissions.parameters={...NoPermissions.parameters,docs:{...NoPermissions.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n addGroup: action('addGroup'),\n removeGroup: action('removeGroup'),\n deleteUser: action('deleteUser')\n }\n})",...NoPermissions.parameters?.docs?.source}}}},"./src/design/organisms/user-row/user-row.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".user-card__row {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n.user-card__row--delete {\n margin-top: var(--spacer-4);\n display: flex;\n justify-content: flex-end;\n}\n.user-card__row--heading {\n margin-top: var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-campaign-admin-campaign-admin-stories.6a752ccb.iframe.bundle.js b/design-templates-campaign-admin-campaign-admin-stories.6a752ccb.iframe.bundle.js
deleted file mode 100644
index f64205bb8..000000000
--- a/design-templates-campaign-admin-campaign-admin-stories.6a752ccb.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5829],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/app/_services/utils/campaign.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{_B:()=>dummyCampaigns,jr:()=>dummyCampaign,mE:()=>dummyStatistics});const dummyCampaigns=[{pk:1,name:"Aldrune",subtitle:"A campaign made by Samuel Day and recorded by Philipp Dörner through the eyes of Relentless",background_image:"/media/campaign_backgrounds/bg.jpg",is_deactivated:!1,has_audio_recording_permission:!0,icon:"/media/campaign_icons/favicon-128x128.png",default_map:1,default_map_details:{icon:"map",image:"pic05_sMT2d6M.jpg",name:"Aldrune",id:1},duration:{start_date:"2020-04-07T00:00:00.000000Z",last_date:"2023-04-11T00:00:00.000000Z"}},{pk:2,name:"Jōzai Corp",subtitle:"Welcome to Jōzai Corp, please enjoy your employment.",background_image:"/media/campaign_backgrounds/shanghai_city_snlaYDd.jpg",is_deactivated:!1,has_audio_recording_permission:!1,icon:"/media/campaign_icons/icon.png",default_map:void 0,default_map_details:void 0,duration:{start_date:"2022-01-15T00:00:00.000000Z",last_date:"2022-02-19T00:00:00.000000Z"}}],dummyStatistics={character_count:265,item_count:142,location_count:229,creature_count:42,diaryentry_count:101,encounter_count:954,organization_count:46,quest_count:69,quote_count:203,session_audio_count:69,timestamp_count:1121,map_count:7,marker_count:136,spell_count:22,session_count:90,rule_count:17},dummyCampaign={name:"Aldrune",subtitle:"A campaign for testing",pk:1,background_image:"/assets/default_images/audio_pic_default.webp",icon:"https://www.aldrune.com/media/campaign_icons/favicon-128x128.png",default_map:123,default_map_details:{id:123,name:"Default Map",icon:"plus",image:"blub.jpg"},is_deactivated:!1,has_audio_recording_permission:!0,members:[{username:"isofruit",password:"password1",pk:1,api_permissions:["permission1","permission2"],groups:[1,2],group_details:[{name:"group1",pk:1},{name:"group2",pk:2}],is_staff:!0,is_superuser:!1,email:"user1@example.com",is_active:!0},{username:"user2",password:"password2",pk:2,api_permissions:["permission3","permission4"],groups:[1,3],group_details:[{name:"group1",pk:1},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user2@example.com",is_active:!0}],admins:[{username:"admin",password:"adminpassword",pk:3,api_permissions:["permission1","permission2","permission3","permission4"],groups:[1,2,3],group_details:[{name:"group1",pk:1},{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!0,is_superuser:!0,email:"admin@example.com",is_active:!0},{username:"user3",password:"password3",pk:4,api_permissions:["permission1"],groups:[1],group_details:[{name:"group1",pk:1}],is_staff:!1,is_superuser:!1,email:"user3@example.com",is_active:!0}],guests:[{username:"user4",password:"password4",pk:5,api_permissions:["permission2","permission3"],groups:[2,3],group_details:[{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user4@example.com",is_active:!0},{username:"user5",password:"password5",pk:6,api_permissions:["permission4"],groups:[3],group_details:[{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user5@example.com",is_active:!0}],member_group_name:"Members",admin_group_name:"Admins",guest_group_name:"Guests",emptySearchResponses:[{id:1,text:"Empty response 1",campaign:1},{id:2,text:"Empty response 2",campaign:1}]}},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/campaign-admin/campaign-admin.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>campaign_admin_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),campaign_mock_service=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var campaign_admin_componentngResource=__webpack_require__("./src/design/templates/campaign-admin/campaign-admin.component.scss?ngResource"),campaign_admin_componentngResource_default=__webpack_require__.n(campaign_admin_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts");let CampaignAdminComponent=class CampaignAdminComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.users=(0,core.input)(),this.removeMember=new core.EventEmitter,this.removeAdmin=new core.EventEmitter,this.removeGuest=new core.EventEmitter,this.addMember=new core.EventEmitter,this.addAdmin=new core.EventEmitter,this.addGuest=new core.EventEmitter,this.removeEmptySearchResponse=new core.EventEmitter,this.addEmptySearchResponse=new core.EventEmitter,this.deactivateCampaign=new core.EventEmitter,this.users$=(0,rxjs_interop.br)(this.users).pipe((0,map.T)((x=>x??[]))),this.showMemberAddForm=!1,this.memberTooltip='Allows creating, reading, updating and deleting articles in this campaign. Also makes the person a possible "author" for diaryentries.',this.memberFormlyFields=(0,core.computed)((()=>[this.formlyService.buildDisableSelectConfig({key:"pk",labelProp:"username",sortProp:"username",label:"User",options$:this.users$,disabledExpression:selectOptions$=>selectOptions$.pipe((0,map.T)((selectOptions=>selectOptions.map((opt=>this.isInGroup(opt,this.campaign.member_group_name)))))),tooltipMessage:"Members typically represent the individual player characters + the GM(s)",warningMessage:"The user you selected is already member of this campaign"})])),this.showAdminAddForm=!1,this.adminTooltip='Allows adding admins, members and guests to a campaign. Does not add the person to the list of possible "authors" for diaryentries.',this.adminFormlyFields=(0,core.computed)((()=>[this.formlyService.buildDisableSelectConfig({key:"pk",labelProp:"username",sortProp:"username",label:"User",options$:this.users$,disabledExpression:selectOptions$=>selectOptions$.pipe((0,map.T)((selectOptions=>selectOptions.map((opt=>this.isInGroup(opt,this.campaign.admin_group_name)))))),tooltipMessage:"Keep in mind that being an admin only represents being the one administering this campaign, not being a member of it!",warningMessage:"The user you selected is already admin of this campaign"})])),this.showGuestAddForm=!1,this.guestTooltip="Allows only reading articles in this campaign.",this.guestFormlyFields=(0,core.computed)((()=>[this.formlyService.buildDisableSelectConfig({key:"pk",labelProp:"username",sortProp:"username",label:"User",options$:this.users$,disabledExpression:selectOptions$=>selectOptions$.pipe((0,map.T)((selectOptions=>selectOptions.map((opt=>{const isAdmin=this.isInGroup(opt,this.campaign.admin_group_name),isMember=this.isInGroup(opt,this.campaign.member_group_name),isGuest=this.isInGroup(opt,this.campaign.guest_group_name);return isAdmin||isMember||isGuest}))))),tooltipMessage:"Keep in mind that there's no point in being a guest when you're already a member or admin.",warningMessage:"The user you selected is already guest of this campaign"})])),this.showResponseForm=!1,this.responseFormlyFields=[this.formlyService.buildInputConfig({key:"text",placeholder:"Text to show for empty searches",maxLength:400,inputKind:"STRING"})]}ngOnChanges(){this.setUrls()}changeState(role,showForm){switch(role){case"member":case"globalmember":this.showMemberAddForm=showForm,this.memberModel={};break;case"admin":this.showAdminAddForm=showForm,this.adminModel={};break;case"guest":case"globalguest":this.showGuestAddForm=showForm,this.guestModel={}}}onAddUser(role,model){const userPk=model.pk,user=this.users()?.find((usr=>usr.pk===userPk));switch(role){case"member":case"globalmember":this.addMember.emit(user);break;case"admin":this.addAdmin.emit(user);break;case"guest":case"globalguest":this.addGuest.emit(user)}this.changeState(role,!1)}toggleResponseAddForm(){this.showResponseForm=!this.showResponseForm,this.showResponseForm&&(this.responseModel={campaign:this.campaign.pk})}onAddResponse(model){this.addEmptySearchResponse.emit(model),this.toggleResponseAddForm()}setUrls(){this.updateUrl=this.routingService.getRoutePath("campaign-update",{campaign:this.campaign.name}),this.homeUrl=this.routingService.getRoutePath("home",{campaign:this.campaign.name})}isInGroup(selectOption,groupName){const groupsOfUser=selectOption.group_details,isMember=groupsOfUser?.some((group=>group.name.toLowerCase()===groupName));return isMember??!1}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={campaign:[{type:core.Input}],serverUrl:[{type:core.Input}],campaignStatistics:[{type:core.Input}],users:[{type:core.Input,args:[{isSignal:!0,alias:"users",required:!1,transform:void 0}]}],removeMember:[{type:core.Output}],removeAdmin:[{type:core.Output}],removeGuest:[{type:core.Output}],addMember:[{type:core.Output}],addAdmin:[{type:core.Output}],addGuest:[{type:core.Output}],removeEmptySearchResponse:[{type:core.Output}],addEmptySearchResponse:[{type:core.Output}],deactivateCampaign:[{type:core.Output}]}}};CampaignAdminComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-campaign-admin",template:'\n \n \n\n \x3c!-- Heading --\x3e\n \n
{{ campaign.name }} \n \n\n \x3c!-- Image Fields of Campaign --\x3e\n \n \n Campaign Settings\n \n\n \n \n
\n
Background \n
\n
\n\n
\n
Icon \n
\n
\n
\n\n \n
Default Map: \n
\n {{ campaign.default_map_details?.name }}\n
\n\n
Subtitle: \n
\n
\n \n\n \x3c!-- Members & Admins--\x3e\n \n \n Campaign Members\n \n\n \n
\n \n \n \n\n @for (user of campaign.admins; track user.pk) {\n \n {{ user.username }}\n\n
\n
\n }\n\n \x3c!-- Form --\x3e\n \n @if (showAdminAddForm) {\n
\n } @else {\n
\n }\n
\n \n\n
\n \n \n \n\n @for (user of campaign.members; track user.pk) {\n \n {{ user.username }}\n\n
\n
\n }\n\n \x3c!-- Form --\x3e\n \n @if (showMemberAddForm) {\n
\n } @else {\n
\n }\n
\n \n\n
\n \n \n \n\n @for (user of campaign.guests; track user.pk) {\n \n {{ user.username }}\n\n
\n
\n }\n\n \x3c!-- Form --\x3e\n \n @if (showGuestAddForm) {\n
\n } @else {\n
\n }\n
\n \n
\n\n \x3c!-- Campaign Statistics --\x3e\n \n \n Campaign Statistics\n \n\n \n @for (statistic of campaignStatistics | keyvalue; track $index) {\n
\n
{{ statistic.key }}
\n
{{ statistic.value }}
\n
\n }\n
\n\n \x3c!-- EmptySearchResponses --\x3e\n \n \n \n \n\n \n
\n
\n @for (\n emptyResponse of campaign.emptySearchResponses;\n track emptyResponse.id\n ) {\n \n {{ emptyResponse.text }}\n\n
\n
\n }\n\n \n \x3c!-- Form --\x3e\n\n @if (showResponseForm) {\n
\n } @else {\n
\n }\n
\n \n
\n
\n\n \x3c!-- Footer (Move to other Article + Delete Article) --\x3e\n \n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n',standalone:!0,imports:[page_container_component.i,button_component.Q,router.Wk,common.KeyValuePipe,icon_component.R,card_component.i,html_text_component.m,info_circle_tooltip_component.$,molecules.Ts,molecules.s2,molecules.D$,common.NgTemplateOutlet],styles:[campaign_admin_componentngResource_default()]})],CampaignAdminComponent);const campaign_admin_stories={title:"DesignSystem/Templates/CampaignAdminComponent",component:CampaignAdminComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,formly_constants.d_]})],args:{campaign:campaign_mock_service.jr,campaignStatistics:campaign_mock_service.mE,serverUrl:"https://www.aldrune.com"}},Default=(args=>({props:{...args,removeMember:(0,dist.XI)("removeMember"),addMember:(0,dist.XI)("addMember"),removeAdmin:(0,dist.XI)("removeAdmin"),addAdmin:(0,dist.XI)("addAdmin"),removeGuest:(0,dist.XI)("removeGuest"),addGuest:(0,dist.XI)("addGuest"),removeEmptySearchResponse:(0,dist.XI)("removeEmptySearchResponse"),addEmptySearchResponse:(0,dist.XI)("addEmptySearchResponse"),deactivateCampaign:(0,dist.XI)("deactivateCampaign")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n removeMember: action('removeMember'),\n addMember: action('addMember'),\n removeAdmin: action('removeAdmin'),\n addAdmin: action('addAdmin'),\n removeGuest: action('removeGuest'),\n addGuest: action('addGuest'),\n removeEmptySearchResponse: action('removeEmptySearchResponse'),\n addEmptySearchResponse: action('addEmptySearchResponse'),\n deactivateCampaign: action('deactivateCampaign')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/campaign-admin/campaign-admin.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".campaign__edit-container {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n}\n.campaign__user-group {\n height: fit-content;\n}\n\n.user-group__heading {\n text-align: center;\n}\n.user-group__user {\n display: inline-block;\n}\n.user-group__remove-button {\n --confirmation-bg-color: var(--wiki-bg-solid);\n float: right;\n}\n.user-group__add-user {\n margin-top: var(--spacer-3);\n width: 100%;\n}\n\n.settings__images {\n display: flex;\n flex-direction: column;\n}\n@media (min-width: 768px) {\n .settings__images {\n flex-direction: row;\n }\n}\n.settings__image-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n.settings__image {\n max-height: 20rem;\n max-width: 100%;\n object-fit: contain;\n}\n.settings__icon {\n max-height: 128px;\n max-width: 128px;\n object-fit: contain;\n}\n.settings__data {\n margin-top: var(--spacer-4);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-campaign-admin-campaign-admin-stories.90918dcf.iframe.bundle.js b/design-templates-campaign-admin-campaign-admin-stories.90918dcf.iframe.bundle.js
new file mode 100644
index 000000000..140acf634
--- /dev/null
+++ b/design-templates-campaign-admin-campaign-admin-stories.90918dcf.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[5829],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/app/_services/utils/campaign.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{_B:()=>dummyCampaigns,jr:()=>dummyCampaign,mE:()=>dummyStatistics});const dummyCampaigns=[{pk:1,name:"Aldrune",subtitle:"A campaign made by Samuel Day and recorded by Philipp Dörner through the eyes of Relentless",background_image:"/media/campaign_backgrounds/bg.jpg",is_deactivated:!1,has_audio_recording_permission:!0,icon:"/media/campaign_icons/favicon-128x128.png",default_map:1,default_map_details:{icon:"map",image:"pic05_sMT2d6M.jpg",name:"Aldrune",id:1},duration:{start_date:"2020-04-07T00:00:00.000000Z",last_date:"2023-04-11T00:00:00.000000Z"}},{pk:2,name:"Jōzai Corp",subtitle:"Welcome to Jōzai Corp, please enjoy your employment.",background_image:"/media/campaign_backgrounds/shanghai_city_snlaYDd.jpg",is_deactivated:!1,has_audio_recording_permission:!1,icon:"/media/campaign_icons/icon.png",default_map:void 0,default_map_details:void 0,duration:{start_date:"2022-01-15T00:00:00.000000Z",last_date:"2022-02-19T00:00:00.000000Z"}}],dummyStatistics={character_count:265,item_count:142,location_count:229,creature_count:42,diaryentry_count:101,encounter_count:954,organization_count:46,quest_count:69,quote_count:203,session_audio_count:69,timestamp_count:1121,map_count:7,marker_count:136,spell_count:22,session_count:90,rule_count:17},dummyCampaign={name:"Aldrune",subtitle:"A campaign for testing",pk:1,background_image:"/assets/default_images/audio_pic_default.webp",icon:"https://www.aldrune.com/media/campaign_icons/favicon-128x128.png",default_map:123,default_map_details:{id:123,name:"Default Map",icon:"plus",image:"blub.jpg"},is_deactivated:!1,has_audio_recording_permission:!0,members:[{username:"isofruit",password:"password1",pk:1,api_permissions:["permission1","permission2"],groups:[1,2],group_details:[{name:"group1",pk:1},{name:"group2",pk:2}],is_staff:!0,is_superuser:!1,email:"user1@example.com",is_active:!0},{username:"user2",password:"password2",pk:2,api_permissions:["permission3","permission4"],groups:[1,3],group_details:[{name:"group1",pk:1},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user2@example.com",is_active:!0}],admins:[{username:"admin",password:"adminpassword",pk:3,api_permissions:["permission1","permission2","permission3","permission4"],groups:[1,2,3],group_details:[{name:"group1",pk:1},{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!0,is_superuser:!0,email:"admin@example.com",is_active:!0},{username:"user3",password:"password3",pk:4,api_permissions:["permission1"],groups:[1],group_details:[{name:"group1",pk:1}],is_staff:!1,is_superuser:!1,email:"user3@example.com",is_active:!0}],guests:[{username:"user4",password:"password4",pk:5,api_permissions:["permission2","permission3"],groups:[2,3],group_details:[{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user4@example.com",is_active:!0},{username:"user5",password:"password5",pk:6,api_permissions:["permission4"],groups:[3],group_details:[{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user5@example.com",is_active:!0}],member_group_name:"Members",admin_group_name:"Admins",guest_group_name:"Guests",emptySearchResponses:[{id:1,text:"Empty response 1",campaign:1},{id:2,text:"Empty response 2",campaign:1}]}},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/campaign-admin/campaign-admin.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>campaign_admin_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),campaign_mock_service=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var campaign_admin_componentngResource=__webpack_require__("./src/design/templates/campaign-admin/campaign-admin.component.scss?ngResource"),campaign_admin_componentngResource_default=__webpack_require__.n(campaign_admin_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts");let CampaignAdminComponent=class CampaignAdminComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.users=(0,core.input)(),this.removeMember=new core.EventEmitter,this.removeAdmin=new core.EventEmitter,this.removeGuest=new core.EventEmitter,this.addMember=new core.EventEmitter,this.addAdmin=new core.EventEmitter,this.addGuest=new core.EventEmitter,this.removeEmptySearchResponse=new core.EventEmitter,this.addEmptySearchResponse=new core.EventEmitter,this.deactivateCampaign=new core.EventEmitter,this.users$=(0,rxjs_interop.br)(this.users).pipe((0,map.T)((x=>x??[]))),this.showMemberAddForm=!1,this.memberTooltip='Allows creating, reading, updating and deleting articles in this campaign. Also makes the person a possible "author" for diaryentries.',this.memberFormlyFields=(0,core.computed)((()=>[this.formlyService.buildDisableSelectConfig({key:"pk",labelProp:"username",sortProp:"username",label:"User",options$:this.users$,disabledExpression:selectOptions$=>selectOptions$.pipe((0,map.T)((selectOptions=>selectOptions.map((opt=>this.isInGroup(opt,this.campaign.member_group_name)))))),tooltipMessage:"Members typically represent the individual player characters + the GM(s)",warningMessage:"The user you selected is already member of this campaign"})])),this.showAdminAddForm=!1,this.adminTooltip='Allows adding admins, members and guests to a campaign. Does not add the person to the list of possible "authors" for diaryentries.',this.adminFormlyFields=(0,core.computed)((()=>[this.formlyService.buildDisableSelectConfig({key:"pk",labelProp:"username",sortProp:"username",label:"User",options$:this.users$,disabledExpression:selectOptions$=>selectOptions$.pipe((0,map.T)((selectOptions=>selectOptions.map((opt=>this.isInGroup(opt,this.campaign.admin_group_name)))))),tooltipMessage:"Keep in mind that being an admin only represents being the one administering this campaign, not being a member of it!",warningMessage:"The user you selected is already admin of this campaign"})])),this.showGuestAddForm=!1,this.guestTooltip="Allows only reading articles in this campaign.",this.guestFormlyFields=(0,core.computed)((()=>[this.formlyService.buildDisableSelectConfig({key:"pk",labelProp:"username",sortProp:"username",label:"User",options$:this.users$,disabledExpression:selectOptions$=>selectOptions$.pipe((0,map.T)((selectOptions=>selectOptions.map((opt=>{const isAdmin=this.isInGroup(opt,this.campaign.admin_group_name),isMember=this.isInGroup(opt,this.campaign.member_group_name),isGuest=this.isInGroup(opt,this.campaign.guest_group_name);return isAdmin||isMember||isGuest}))))),tooltipMessage:"Keep in mind that there's no point in being a guest when you're already a member or admin.",warningMessage:"The user you selected is already guest of this campaign"})])),this.showResponseForm=!1,this.responseFormlyFields=[this.formlyService.buildInputConfig({key:"text",placeholder:"Text to show for empty searches",maxLength:400,inputKind:"STRING"})]}ngOnChanges(){this.setUrls()}changeState(role,showForm){switch(role){case"member":case"globalmember":this.showMemberAddForm=showForm,this.memberModel={};break;case"admin":this.showAdminAddForm=showForm,this.adminModel={};break;case"guest":case"globalguest":this.showGuestAddForm=showForm,this.guestModel={}}}onAddUser(role,model){const userPk=model.pk,user=this.users()?.find((usr=>usr.pk===userPk));switch(role){case"member":case"globalmember":this.addMember.emit(user);break;case"admin":this.addAdmin.emit(user);break;case"guest":case"globalguest":this.addGuest.emit(user)}this.changeState(role,!1)}toggleResponseAddForm(){this.showResponseForm=!this.showResponseForm,this.showResponseForm&&(this.responseModel={campaign:this.campaign.pk})}onAddResponse(model){this.addEmptySearchResponse.emit(model),this.toggleResponseAddForm()}setUrls(){this.updateUrl=this.routingService.getRoutePath("campaign-update",{campaign:this.campaign.name}),this.homeUrl=this.routingService.getRoutePath("home",{campaign:this.campaign.name})}isInGroup(selectOption,groupName){const groupsOfUser=selectOption.group_details,isMember=groupsOfUser?.some((group=>group.name.toLowerCase()===groupName));return isMember??!1}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={campaign:[{type:core.Input}],serverUrl:[{type:core.Input}],campaignStatistics:[{type:core.Input}],users:[{type:core.Input,args:[{isSignal:!0,alias:"users",required:!1,transform:void 0}]}],removeMember:[{type:core.Output}],removeAdmin:[{type:core.Output}],removeGuest:[{type:core.Output}],addMember:[{type:core.Output}],addAdmin:[{type:core.Output}],addGuest:[{type:core.Output}],removeEmptySearchResponse:[{type:core.Output}],addEmptySearchResponse:[{type:core.Output}],deactivateCampaign:[{type:core.Output}]}}};CampaignAdminComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-campaign-admin",template:'\n \n \n\n \x3c!-- Heading --\x3e\n \n
{{ campaign.name }} \n \n\n \x3c!-- Image Fields of Campaign --\x3e\n \n \n Campaign Settings\n \n\n \n \n
\n
Background \n
\n
\n\n
\n
Icon \n
\n
\n
\n\n \n
Default Map: \n
\n {{ campaign.default_map_details?.name }}\n
\n\n
Subtitle: \n
\n
\n \n\n \x3c!-- Members & Admins--\x3e\n \n \n Campaign Members\n \n\n \n
\n \n \n \n\n @for (user of campaign.admins; track user.pk) {\n \n {{ user.username }}\n\n
\n
\n }\n\n \x3c!-- Form --\x3e\n \n @if (showAdminAddForm) {\n
\n } @else {\n
\n }\n
\n \n\n
\n \n \n \n\n @for (user of campaign.members; track user.pk) {\n \n {{ user.username }}\n\n
\n
\n }\n\n \x3c!-- Form --\x3e\n \n @if (showMemberAddForm) {\n
\n } @else {\n
\n }\n
\n \n\n
\n \n \n \n\n @for (user of campaign.guests; track user.pk) {\n \n {{ user.username }}\n\n
\n
\n }\n\n \x3c!-- Form --\x3e\n \n @if (showGuestAddForm) {\n
\n } @else {\n
\n }\n
\n \n
\n\n \x3c!-- Campaign Statistics --\x3e\n \n \n Campaign Statistics\n \n\n \n @for (statistic of campaignStatistics | keyvalue; track $index) {\n
\n
{{ statistic.key }}
\n
{{ statistic.value }}
\n
\n }\n
\n\n \x3c!-- EmptySearchResponses --\x3e\n \n \n \n \n\n \n
\n
\n @for (\n emptyResponse of campaign.emptySearchResponses;\n track emptyResponse.id\n ) {\n \n {{ emptyResponse.text }}\n\n
\n
\n }\n\n \n \x3c!-- Form --\x3e\n\n @if (showResponseForm) {\n
\n } @else {\n
\n }\n
\n \n
\n
\n\n \x3c!-- Footer (Move to other Article + Delete Article) --\x3e\n \n \n \n\n\n \n \n\n\n \n \n\n\n \n \n\n\n \n \n',standalone:!0,imports:[page_container_component.i,button_component.Q,router.Wk,common.KeyValuePipe,icon_component.R,card_component.i,html_text_component.m,info_circle_tooltip_component.$,molecules.Ts,molecules.s2,molecules.D$,common.NgTemplateOutlet],styles:[campaign_admin_componentngResource_default()]})],CampaignAdminComponent);const campaign_admin_stories={title:"DesignSystem/Templates/CampaignAdminComponent",component:CampaignAdminComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,formly_constants.d_]})],args:{campaign:campaign_mock_service.jr,campaignStatistics:campaign_mock_service.mE,serverUrl:"https://www.aldrune.com"}},Default=(args=>({props:{...args,removeMember:(0,dist.XI)("removeMember"),addMember:(0,dist.XI)("addMember"),removeAdmin:(0,dist.XI)("removeAdmin"),addAdmin:(0,dist.XI)("addAdmin"),removeGuest:(0,dist.XI)("removeGuest"),addGuest:(0,dist.XI)("addGuest"),removeEmptySearchResponse:(0,dist.XI)("removeEmptySearchResponse"),addEmptySearchResponse:(0,dist.XI)("addEmptySearchResponse"),deactivateCampaign:(0,dist.XI)("deactivateCampaign")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n removeMember: action('removeMember'),\n addMember: action('addMember'),\n removeAdmin: action('removeAdmin'),\n addAdmin: action('addAdmin'),\n removeGuest: action('removeGuest'),\n addGuest: action('addGuest'),\n removeEmptySearchResponse: action('removeEmptySearchResponse'),\n addEmptySearchResponse: action('addEmptySearchResponse'),\n deactivateCampaign: action('deactivateCampaign')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/campaign-admin/campaign-admin.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".campaign__edit-container {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n}\n.campaign__user-group {\n height: fit-content;\n}\n\n.user-group__heading {\n text-align: center;\n}\n.user-group__user {\n display: inline-block;\n}\n.user-group__remove-button {\n --confirmation-bg-color: var(--wiki-bg-solid);\n float: right;\n}\n.user-group__add-user {\n margin-top: var(--spacer-3);\n width: 100%;\n}\n\n.settings__images {\n display: flex;\n flex-direction: column;\n}\n@media (min-width: 768px) {\n .settings__images {\n flex-direction: row;\n }\n}\n.settings__image-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n}\n.settings__image {\n max-height: 20rem;\n max-width: 100%;\n object-fit: contain;\n}\n.settings__icon {\n max-height: 128px;\n max-width: 128px;\n object-fit: contain;\n}\n.settings__data {\n margin-top: var(--spacer-4);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-campaign-overview-campaign-overview-stories.258fddd8.iframe.bundle.js b/design-templates-campaign-overview-campaign-overview-stories.258fddd8.iframe.bundle.js
deleted file mode 100644
index a8fc6c088..000000000
--- a/design-templates-campaign-overview-campaign-overview-stories.258fddd8.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[9739],{"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/app/_services/utils/campaign.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{_B:()=>dummyCampaigns,jr:()=>dummyCampaign,mE:()=>dummyStatistics});const dummyCampaigns=[{pk:1,name:"Aldrune",subtitle:"A campaign made by Samuel Day and recorded by Philipp Dörner through the eyes of Relentless",background_image:"/media/campaign_backgrounds/bg.jpg",is_deactivated:!1,has_audio_recording_permission:!0,icon:"/media/campaign_icons/favicon-128x128.png",default_map:1,default_map_details:{icon:"map",image:"pic05_sMT2d6M.jpg",name:"Aldrune",id:1},duration:{start_date:"2020-04-07T00:00:00.000000Z",last_date:"2023-04-11T00:00:00.000000Z"}},{pk:2,name:"Jōzai Corp",subtitle:"Welcome to Jōzai Corp, please enjoy your employment.",background_image:"/media/campaign_backgrounds/shanghai_city_snlaYDd.jpg",is_deactivated:!1,has_audio_recording_permission:!1,icon:"/media/campaign_icons/icon.png",default_map:void 0,default_map_details:void 0,duration:{start_date:"2022-01-15T00:00:00.000000Z",last_date:"2022-02-19T00:00:00.000000Z"}}],dummyStatistics={character_count:265,item_count:142,location_count:229,creature_count:42,diaryentry_count:101,encounter_count:954,organization_count:46,quest_count:69,quote_count:203,session_audio_count:69,timestamp_count:1121,map_count:7,marker_count:136,spell_count:22,session_count:90,rule_count:17},dummyCampaign={name:"Aldrune",subtitle:"A campaign for testing",pk:1,background_image:"/assets/default_images/audio_pic_default.webp",icon:"https://www.aldrune.com/media/campaign_icons/favicon-128x128.png",default_map:123,default_map_details:{id:123,name:"Default Map",icon:"plus",image:"blub.jpg"},is_deactivated:!1,has_audio_recording_permission:!0,members:[{username:"isofruit",password:"password1",pk:1,api_permissions:["permission1","permission2"],groups:[1,2],group_details:[{name:"group1",pk:1},{name:"group2",pk:2}],is_staff:!0,is_superuser:!1,email:"user1@example.com",is_active:!0},{username:"user2",password:"password2",pk:2,api_permissions:["permission3","permission4"],groups:[1,3],group_details:[{name:"group1",pk:1},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user2@example.com",is_active:!0}],admins:[{username:"admin",password:"adminpassword",pk:3,api_permissions:["permission1","permission2","permission3","permission4"],groups:[1,2,3],group_details:[{name:"group1",pk:1},{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!0,is_superuser:!0,email:"admin@example.com",is_active:!0},{username:"user3",password:"password3",pk:4,api_permissions:["permission1"],groups:[1],group_details:[{name:"group1",pk:1}],is_staff:!1,is_superuser:!1,email:"user3@example.com",is_active:!0}],guests:[{username:"user4",password:"password4",pk:5,api_permissions:["permission2","permission3"],groups:[2,3],group_details:[{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user4@example.com",is_active:!0},{username:"user5",password:"password5",pk:6,api_permissions:["permission4"],groups:[3],group_details:[{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user5@example.com",is_active:!0}],member_group_name:"Members",admin_group_name:"Admins",guest_group_name:"Guests",emptySearchResponses:[{id:1,text:"Empty response 1",campaign:1},{id:2,text:"Empty response 2",campaign:1}]}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/image-grid/image-grid.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{l:()=>ImageGridComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_grid_componentngResource=__webpack_require__("./src/design/organisms/image-grid/image-grid.component.scss?ngResource"),image_grid_componentngResource_default=__webpack_require__.n(image_grid_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let ImageGridComponent=class ImageGridComponent{constructor(){this.EMPTY_IMAGE_URL="",this.entries=core.input.required(),this.serverUrl=core.input.required(),this.imageProp=core.input.required(),this.labelProp=core.input.required(),this.iconProp=(0,core.input)(),this.entryClick=new core.EventEmitter,this.columnCount=(0,core.computed)((()=>{switch(this.entries().length){case 1:return 1;case 2:case 4:return 2;default:return 3}}))}static{this.propDecorators={entries:[{type:core.Input,args:[{isSignal:!0,alias:"entries",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],imageProp:[{type:core.Input,args:[{isSignal:!0,alias:"imageProp",required:!0,transform:void 0}]}],labelProp:[{type:core.Input,args:[{isSignal:!0,alias:"labelProp",required:!0,transform:void 0}]}],iconProp:[{type:core.Input,args:[{isSignal:!0,alias:"iconProp",required:!1,transform:void 0}]}],entryClick:[{type:core.Output}]}}};ImageGridComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-grid",template:'\n @if (entries() != null) {\n @if (entries().length > 0) {\n
\n } @else {\n
\n }\n } @else {\n
\n }\n
\n\n \n\n\n \n
\n
\n
You have not yet been invited into any campaign. \n
\n Please inform your DM or the person within your group administrating the\n webserver to add you to the required permission group.\n
\n
\n
\n \n',standalone:!0,imports:[common.NgClass],styles:[image_grid_componentngResource_default()]})],ImageGridComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/campaign-overview/campaign-overview.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Admin:()=>Admin,Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>campaign_overview_stories});var animations=__webpack_require__("./node_modules/@angular/platform-browser/fesm2022/animations.mjs"),testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),campaign_mock_service=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var campaign_overview_componentngResource=__webpack_require__("./src/design/templates/campaign-overview/campaign-overview.component.scss?ngResource"),campaign_overview_componentngResource_default=__webpack_require__.n(campaign_overview_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts"),image_grid_component=__webpack_require__("./src/design/organisms/image-grid/image-grid.component.ts");let CampaignOverviewComponent=class CampaignOverviewComponent{constructor(routingService){this.routingService=routingService,this.serverUrl=core.input.required(),this.userName=core.input.required(),this.campaigns=core.input.required(),this.isGlobalAdmin=(0,core.input)(!1),this.logout=new core.EventEmitter,this.profileUrl=(0,core.computed)((()=>this.routingService.getRoutePath("direct-profile",{username:this.userName()}))),this.configTableUrl=(0,core.computed)((()=>this.routingService.getRoutePath("config-tables"))),this.generalAdminUrl=(0,core.computed)((()=>this.routingService.getRoutePath("admin"))),this.dragonFrameUrl="/assets/dragon-frame.jpg"}onCampaignClick(event){this.routingService.routeToPath("home",{campaign:event.name})}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],userName:[{type:core.Input,args:[{isSignal:!0,alias:"userName",required:!0,transform:void 0}]}],campaigns:[{type:core.Input,args:[{isSignal:!0,alias:"campaigns",required:!0,transform:void 0}]}],isGlobalAdmin:[{type:core.Input,args:[{isSignal:!0,alias:"isGlobalAdmin",required:!1,transform:void 0}]}],logout:[{type:core.Output}]}}};CampaignOverviewComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-campaign-overview",template:'\n
\n
\n\n @let campaignsVal = campaigns();\n
\n @if (campaignsVal && campaignsVal.length > 0) {\n Choose Your Campaign\n } @else if (campaignsVal && campaignsVal.length == 0) {\n \n } @else {\n \n }\n \n
\n\n
\n @if (campaignsVal != null) {\n @if (campaignsVal.length > 0) {\n
\n } @else {\n
\n }\n }\n
\n
\n\n\n \n
\n
\n
You have not yet been invited into any campaign. \n
\n Please inform your DM or the person within your group administrating the\n webserver to add you to the required permission group.\n
\n
\n
\n \n\n No Campaign available! \n',standalone:!0,imports:[common.NgTemplateOutlet,button_component.Q,router.Wk,image_grid_component.l,spinner_component.t],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[campaign_overview_componentngResource_default()]})],CampaignOverviewComponent);const campaign_overview_stories={title:"DesignSystem/Templates/CampaignOverviewComponent",component:CampaignOverviewComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,animations.BrowserAnimationsModule],declarations:[],providers:[]})],args:{isGlobalAdmin:!1,userName:"Isofruit",campaigns:campaign_mock_service._B,serverUrl:"https://www.aldrune.com"}},Template=args=>({props:{...args,logout:(0,dist.XI)("logout")}}),Default=Template.bind({});Default.args={};const Admin=Template.bind({});Admin.args={isGlobalAdmin:!0};const __namedExportsOrder=["Default","Admin"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n logout: action('logout')\n }\n})",...Default.parameters?.docs?.source}}},Admin.parameters={...Admin.parameters,docs:{...Admin.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n logout: action('logout')\n }\n})",...Admin.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/image-grid/image-grid.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --image-height: 90vh;\n}\n\n.container-fluid {\n height: var(--image-height);\n}\n\n.image-grid {\n height: 100%;\n}\n.image-grid__entry {\n cursor: pointer;\n}\n\n.entry {\n position: relative;\n text-decoration: none;\n display: flex;\n justify-content: center;\n background-size: cover;\n background-position: center;\n min-height: 30vh;\n opacity: 0.75;\n transition: opacity 0.2s ease-in-out;\n}\n.entry:hover {\n opacity: 1;\n}\n.entry:hover .entry__heading {\n color: var(--link-blue);\n transform: scale(1.3);\n transition: transform 0.2s ease-in-out;\n}\n.entry__overlay {\n position: absolute;\n background-color: var(--wiki-bg-transparent);\n z-index: 1;\n width: 100%;\n min-height: 4rem;\n line-break: anywhere;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n.entry__heading {\n margin-bottom: var(--spacer-0);\n padding-left: var(--spacer-3);\n padding-right: var(--spacer-3);\n}\n\n.heading__icon {\n height: var(--spacer-5);\n width: var(--spacer-5);\n border-radius: var(--bs-border-radius);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/campaign-overview/campaign-overview.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".container {\n width: 100vw;\n min-height: 100dvh;\n max-width: unset !important;\n padding: 0 !important;\n display: flex;\n flex-direction: column;\n background-color: var(--bs-black);\n}\n\n.campaign__heading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 10%;\n}\n\n.heading {\n background-color: var(--wiki-bg-transparent);\n display: flex;\n flex-direction: column;\n}\n.heading__button {\n margin-top: var(--spacer-1);\n margin-bottom: var(--spacer-1);\n display: inline-block;\n width: 100%;\n}\n@media (min-width: 576px) {\n .heading__button {\n width: unset;\n margin: var(--spacer-2);\n }\n}\n.heading__text {\n flex: 1;\n text-align: center;\n}\n\n.body {\n flex: 1;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.body__images {\n height: 100%;\n display: flex;\n}\n\nbutton {\n width: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-campaign-overview-campaign-overview-stories.78e264e1.iframe.bundle.js b/design-templates-campaign-overview-campaign-overview-stories.78e264e1.iframe.bundle.js
new file mode 100644
index 000000000..6ddc37d8d
--- /dev/null
+++ b/design-templates-campaign-overview-campaign-overview-stories.78e264e1.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[9739],{"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/app/_services/utils/campaign.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{_B:()=>dummyCampaigns,jr:()=>dummyCampaign,mE:()=>dummyStatistics});const dummyCampaigns=[{pk:1,name:"Aldrune",subtitle:"A campaign made by Samuel Day and recorded by Philipp Dörner through the eyes of Relentless",background_image:"/media/campaign_backgrounds/bg.jpg",is_deactivated:!1,has_audio_recording_permission:!0,icon:"/media/campaign_icons/favicon-128x128.png",default_map:1,default_map_details:{icon:"map",image:"pic05_sMT2d6M.jpg",name:"Aldrune",id:1},duration:{start_date:"2020-04-07T00:00:00.000000Z",last_date:"2023-04-11T00:00:00.000000Z"}},{pk:2,name:"Jōzai Corp",subtitle:"Welcome to Jōzai Corp, please enjoy your employment.",background_image:"/media/campaign_backgrounds/shanghai_city_snlaYDd.jpg",is_deactivated:!1,has_audio_recording_permission:!1,icon:"/media/campaign_icons/icon.png",default_map:void 0,default_map_details:void 0,duration:{start_date:"2022-01-15T00:00:00.000000Z",last_date:"2022-02-19T00:00:00.000000Z"}}],dummyStatistics={character_count:265,item_count:142,location_count:229,creature_count:42,diaryentry_count:101,encounter_count:954,organization_count:46,quest_count:69,quote_count:203,session_audio_count:69,timestamp_count:1121,map_count:7,marker_count:136,spell_count:22,session_count:90,rule_count:17},dummyCampaign={name:"Aldrune",subtitle:"A campaign for testing",pk:1,background_image:"/assets/default_images/audio_pic_default.webp",icon:"https://www.aldrune.com/media/campaign_icons/favicon-128x128.png",default_map:123,default_map_details:{id:123,name:"Default Map",icon:"plus",image:"blub.jpg"},is_deactivated:!1,has_audio_recording_permission:!0,members:[{username:"isofruit",password:"password1",pk:1,api_permissions:["permission1","permission2"],groups:[1,2],group_details:[{name:"group1",pk:1},{name:"group2",pk:2}],is_staff:!0,is_superuser:!1,email:"user1@example.com",is_active:!0},{username:"user2",password:"password2",pk:2,api_permissions:["permission3","permission4"],groups:[1,3],group_details:[{name:"group1",pk:1},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user2@example.com",is_active:!0}],admins:[{username:"admin",password:"adminpassword",pk:3,api_permissions:["permission1","permission2","permission3","permission4"],groups:[1,2,3],group_details:[{name:"group1",pk:1},{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!0,is_superuser:!0,email:"admin@example.com",is_active:!0},{username:"user3",password:"password3",pk:4,api_permissions:["permission1"],groups:[1],group_details:[{name:"group1",pk:1}],is_staff:!1,is_superuser:!1,email:"user3@example.com",is_active:!0}],guests:[{username:"user4",password:"password4",pk:5,api_permissions:["permission2","permission3"],groups:[2,3],group_details:[{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user4@example.com",is_active:!0},{username:"user5",password:"password5",pk:6,api_permissions:["permission4"],groups:[3],group_details:[{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user5@example.com",is_active:!0}],member_group_name:"Members",admin_group_name:"Admins",guest_group_name:"Guests",emptySearchResponses:[{id:1,text:"Empty response 1",campaign:1},{id:2,text:"Empty response 2",campaign:1}]}},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/image-grid/image-grid.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{l:()=>ImageGridComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_grid_componentngResource=__webpack_require__("./src/design/organisms/image-grid/image-grid.component.scss?ngResource"),image_grid_componentngResource_default=__webpack_require__.n(image_grid_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let ImageGridComponent=class ImageGridComponent{constructor(){this.EMPTY_IMAGE_URL="",this.entries=core.input.required(),this.serverUrl=core.input.required(),this.imageProp=core.input.required(),this.labelProp=core.input.required(),this.iconProp=(0,core.input)(),this.entryClick=new core.EventEmitter,this.columnCount=(0,core.computed)((()=>{switch(this.entries().length){case 1:return 1;case 2:case 4:return 2;default:return 3}}))}static{this.propDecorators={entries:[{type:core.Input,args:[{isSignal:!0,alias:"entries",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],imageProp:[{type:core.Input,args:[{isSignal:!0,alias:"imageProp",required:!0,transform:void 0}]}],labelProp:[{type:core.Input,args:[{isSignal:!0,alias:"labelProp",required:!0,transform:void 0}]}],iconProp:[{type:core.Input,args:[{isSignal:!0,alias:"iconProp",required:!1,transform:void 0}]}],entryClick:[{type:core.Output}]}}};ImageGridComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-grid",template:'\n @if (entries() != null) {\n @if (entries().length > 0) {\n
\n } @else {\n
\n }\n } @else {\n
\n }\n
\n\n \n\n\n \n
\n
\n
You have not yet been invited into any campaign. \n
\n Please inform your DM or the person within your group administrating the\n webserver to add you to the required permission group.\n
\n
\n
\n \n',standalone:!0,imports:[common.NgClass],styles:[image_grid_componentngResource_default()]})],ImageGridComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/campaign-overview/campaign-overview.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Admin:()=>Admin,Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>campaign_overview_stories});var animations=__webpack_require__("./node_modules/@angular/platform-browser/fesm2022/animations.mjs"),testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),campaign_mock_service=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var campaign_overview_componentngResource=__webpack_require__("./src/design/templates/campaign-overview/campaign-overview.component.scss?ngResource"),campaign_overview_componentngResource_default=__webpack_require__.n(campaign_overview_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts"),image_grid_component=__webpack_require__("./src/design/organisms/image-grid/image-grid.component.ts");let CampaignOverviewComponent=class CampaignOverviewComponent{constructor(routingService){this.routingService=routingService,this.serverUrl=core.input.required(),this.userName=core.input.required(),this.campaigns=core.input.required(),this.isGlobalAdmin=(0,core.input)(!1),this.logout=new core.EventEmitter,this.profileUrl=(0,core.computed)((()=>this.routingService.getRoutePath("direct-profile",{username:this.userName()}))),this.configTableUrl=(0,core.computed)((()=>this.routingService.getRoutePath("config-tables"))),this.generalAdminUrl=(0,core.computed)((()=>this.routingService.getRoutePath("admin"))),this.dragonFrameUrl="/assets/dragon-frame.jpg"}onCampaignClick(event){this.routingService.routeToPath("home",{campaign:event.name})}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],userName:[{type:core.Input,args:[{isSignal:!0,alias:"userName",required:!0,transform:void 0}]}],campaigns:[{type:core.Input,args:[{isSignal:!0,alias:"campaigns",required:!0,transform:void 0}]}],isGlobalAdmin:[{type:core.Input,args:[{isSignal:!0,alias:"isGlobalAdmin",required:!1,transform:void 0}]}],logout:[{type:core.Output}]}}};CampaignOverviewComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-campaign-overview",template:'\n
\n
\n\n @let campaignsVal = campaigns();\n
\n @if (campaignsVal && campaignsVal.length > 0) {\n Choose Your Campaign\n } @else if (campaignsVal && campaignsVal.length == 0) {\n \n } @else {\n \n }\n \n
\n\n
\n @if (campaignsVal != null) {\n @if (campaignsVal.length > 0) {\n
\n } @else {\n
\n }\n }\n
\n
\n\n\n \n
\n
\n
You have not yet been invited into any campaign. \n
\n Please inform your DM or the person within your group administrating the\n webserver to add you to the required permission group.\n
\n
\n
\n \n\n No Campaign available! \n',standalone:!0,imports:[common.NgTemplateOutlet,button_component.Q,router.Wk,image_grid_component.l,spinner_component.t],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[campaign_overview_componentngResource_default()]})],CampaignOverviewComponent);const campaign_overview_stories={title:"DesignSystem/Templates/CampaignOverviewComponent",component:CampaignOverviewComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,animations.BrowserAnimationsModule],declarations:[],providers:[]})],args:{isGlobalAdmin:!1,userName:"Isofruit",campaigns:campaign_mock_service._B,serverUrl:"https://www.aldrune.com"}},Template=args=>({props:{...args,logout:(0,dist.XI)("logout")}}),Default=Template.bind({});Default.args={};const Admin=Template.bind({});Admin.args={isGlobalAdmin:!0};const __namedExportsOrder=["Default","Admin"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n logout: action('logout')\n }\n})",...Default.parameters?.docs?.source}}},Admin.parameters={...Admin.parameters,docs:{...Admin.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n logout: action('logout')\n }\n})",...Admin.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/image-grid/image-grid.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --image-height: 90vh;\n}\n\n.container-fluid {\n height: var(--image-height);\n}\n\n.image-grid {\n height: 100%;\n}\n.image-grid__entry {\n cursor: pointer;\n}\n\n.entry {\n position: relative;\n text-decoration: none;\n display: flex;\n justify-content: center;\n background-size: cover;\n background-position: center;\n min-height: 30vh;\n opacity: 0.75;\n transition: opacity 0.2s ease-in-out;\n}\n.entry:hover {\n opacity: 1;\n}\n.entry:hover .entry__heading {\n color: var(--link-blue);\n transform: scale(1.3);\n transition: transform 0.2s ease-in-out;\n}\n.entry__overlay {\n position: absolute;\n background-color: var(--wiki-bg-transparent);\n z-index: 1;\n width: 100%;\n min-height: 4rem;\n line-break: anywhere;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n.entry__heading {\n margin-bottom: var(--spacer-0);\n padding-left: var(--spacer-3);\n padding-right: var(--spacer-3);\n}\n\n.heading__icon {\n height: var(--spacer-5);\n width: var(--spacer-5);\n border-radius: var(--bs-border-radius);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/campaign-overview/campaign-overview.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".container {\n width: 100vw;\n min-height: 100dvh;\n max-width: unset !important;\n padding: 0 !important;\n display: flex;\n flex-direction: column;\n background-color: var(--bs-black);\n}\n\n.campaign__heading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 10%;\n}\n\n.heading {\n background-color: var(--wiki-bg-transparent);\n display: flex;\n flex-direction: column;\n}\n.heading__button {\n margin-top: var(--spacer-1);\n margin-bottom: var(--spacer-1);\n display: inline-block;\n width: 100%;\n}\n@media (min-width: 576px) {\n .heading__button {\n width: unset;\n margin: var(--spacer-2);\n }\n}\n.heading__text {\n flex: 1;\n text-align: center;\n}\n\n.body {\n flex: 1;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.body__images {\n height: 100%;\n display: flex;\n}\n\nbutton {\n width: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-campaign-update-campaign-update-stories.79579f80.iframe.bundle.js b/design-templates-campaign-update-campaign-update-stories.79579f80.iframe.bundle.js
new file mode 100644
index 000000000..05dfde3b1
--- /dev/null
+++ b/design-templates-campaign-update-campaign-update-stories.79579f80.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8139],{"./src/app/_services/article/map.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>dummyMaps,r:()=>dummyMap});const dummyMap={getAbsoluteRouterUrl:()=>"/map/url",pk:2,name:"The World",image:"/media/Aldrune_World_1.jpg",icon:"/media/globe",update_datetime:"2021-06-26T17:10:35.352119Z",campaign:1,campaign_details:{name:"Aldrune",id:1},markers:__webpack_require__("./src/app/_services/article/marker.service.mock.ts").a},dummyMaps=[{getAbsoluteRouterUrl:()=>"/map/url1",article_type:"map",description:"A map of East Academy Year 2 Dorms ",pk:13,name_full:"East Academy Year 2 Dorms ",name:"East Academy Year 2 Dorms ",campaign_details:{name:"Empress-City",id:3},update_datetime:"2024-08-25T20:44:28.629572Z",icon:void 0},{getAbsoluteRouterUrl:()=>"/map/url2",article_type:"map",description:"A map of Forgian",pk:12,name_full:"Forgian",name:"Forgian",campaign_details:{name:"Empress-City",id:4},update_datetime:"2024-08-23T21:58:05.094772Z",icon:void 0}]},"./src/app/_services/article/marker.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{a:()=>dummyMarkers});const dummyMarkers=[{getAbsoluteRouterUrl:()=>"/marker1/url",pk:106,color:void 0,icon:void 0,longitude:532,latitude:553,map:2,map_details:{name:"The World"},location:50,location_details:{name:"Galway",description:"The New Capital of Fen's High Kingdom
\n
\nGalway City Breakdown
\nEastern Lakeway - 15 Buildings Western Lakeway - 40 Buildings Myria Island - 7 Buildings River District - 46 Buildings, several temporary Refugee Shelters Forest District - 85 Buildings Hill District - 149 Buildings Galway Proper - 60 Buildings
\nTotal - 402 Civilian Buildings in Galway
\nEstimated Population: 4000+
",parent_location_name:"none",sublocations:[]},type:11,type_details:{name:"Settlement",icon:"home",is_text_marker:!1,fontawesome_type:"fa",color:"lightgreen",id:11,update_datetime:"2021-07-27T15:28:05.887185Z",creation_datetime:"2021-07-03T17:56:33.339291Z"},campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/marker2/url",pk:137,color:void 0,icon:void 0,longitude:752,latitude:579,map:2,map_details:{name:"The World"},location:206,location_details:{name:"Eastern sea",description:"The ocean east of Aldrune, now accessible through the path carved by the world serpent.
",parent_location_name:"none",sublocations:["Lighthouse"]},type:23,type_details:{name:"Sea/Ocean",icon:"water",is_text_marker:!0,fontawesome_type:"fa",color:"gray",id:23,update_datetime:"2021-07-27T15:28:05.887185Z",creation_datetime:"2021-07-03T17:56:33.339291Z"},campaign_details:{name:"Aldrune",id:1}}]},"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/utils/campaign.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{_B:()=>dummyCampaigns,jr:()=>dummyCampaign,mE:()=>dummyStatistics});const dummyCampaigns=[{pk:1,name:"Aldrune",subtitle:"A campaign made by Samuel Day and recorded by Philipp Dörner through the eyes of Relentless",background_image:"/media/campaign_backgrounds/bg.jpg",is_deactivated:!1,has_audio_recording_permission:!0,icon:"/media/campaign_icons/favicon-128x128.png",default_map:1,default_map_details:{icon:"map",image:"pic05_sMT2d6M.jpg",name:"Aldrune",id:1},duration:{start_date:"2020-04-07T00:00:00.000000Z",last_date:"2023-04-11T00:00:00.000000Z"}},{pk:2,name:"Jōzai Corp",subtitle:"Welcome to Jōzai Corp, please enjoy your employment.",background_image:"/media/campaign_backgrounds/shanghai_city_snlaYDd.jpg",is_deactivated:!1,has_audio_recording_permission:!1,icon:"/media/campaign_icons/icon.png",default_map:void 0,default_map_details:void 0,duration:{start_date:"2022-01-15T00:00:00.000000Z",last_date:"2022-02-19T00:00:00.000000Z"}}],dummyStatistics={character_count:265,item_count:142,location_count:229,creature_count:42,diaryentry_count:101,encounter_count:954,organization_count:46,quest_count:69,quote_count:203,session_audio_count:69,timestamp_count:1121,map_count:7,marker_count:136,spell_count:22,session_count:90,rule_count:17},dummyCampaign={name:"Aldrune",subtitle:"A campaign for testing",pk:1,background_image:"/assets/default_images/audio_pic_default.webp",icon:"https://www.aldrune.com/media/campaign_icons/favicon-128x128.png",default_map:123,default_map_details:{id:123,name:"Default Map",icon:"plus",image:"blub.jpg"},is_deactivated:!1,has_audio_recording_permission:!0,members:[{username:"isofruit",password:"password1",pk:1,api_permissions:["permission1","permission2"],groups:[1,2],group_details:[{name:"group1",pk:1},{name:"group2",pk:2}],is_staff:!0,is_superuser:!1,email:"user1@example.com",is_active:!0},{username:"user2",password:"password2",pk:2,api_permissions:["permission3","permission4"],groups:[1,3],group_details:[{name:"group1",pk:1},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user2@example.com",is_active:!0}],admins:[{username:"admin",password:"adminpassword",pk:3,api_permissions:["permission1","permission2","permission3","permission4"],groups:[1,2,3],group_details:[{name:"group1",pk:1},{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!0,is_superuser:!0,email:"admin@example.com",is_active:!0},{username:"user3",password:"password3",pk:4,api_permissions:["permission1"],groups:[1],group_details:[{name:"group1",pk:1}],is_staff:!1,is_superuser:!1,email:"user3@example.com",is_active:!0}],guests:[{username:"user4",password:"password4",pk:5,api_permissions:["permission2","permission3"],groups:[2,3],group_details:[{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user4@example.com",is_active:!0},{username:"user5",password:"password5",pk:6,api_permissions:["permission4"],groups:[3],group_details:[{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user5@example.com",is_active:!0}],member_group_name:"Members",admin_group_name:"Admins",guest_group_name:"Guests",emptySearchResponses:[{id:1,text:"Empty response 1",campaign:1},{id:2,text:"Empty response 2",campaign:1}]}},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/design/templates/create-update/create-update.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>CreateUpdateComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var create_update_componentngResource=__webpack_require__("./src/design/templates/create-update/create-update.component.scss?ngResource"),create_update_componentngResource_default=__webpack_require__.n(create_update_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),compare_form_component=__webpack_require__("./src/design/molecules/compare-form/compare-form.component.ts"),form_component=__webpack_require__("./src/design/molecules/form/form.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts");let CreateUpdateComponent=class CreateUpdateComponent{constructor(){this.heading=core.input.required(),this.state=core.input.required(),this.userModel=(0,core.input)(),this.formlyFields=core.input.required(),this.serverModel=core.input.required(),this.create=(0,core.output)(),this.update=(0,core.output)(),this.cancel=(0,core.output)()}onSubmit(submittedData){if(null!=submittedData)switch(this.state()){case"CREATE":this.create.emit(submittedData);break;case"UPDATE":case"OUTDATED_UPDATE":this.update.emit(submittedData)}}static{this.propDecorators={heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!0,transform:void 0}]}],state:[{type:core.Input,args:[{isSignal:!0,alias:"state",required:!0,transform:void 0}]}],userModel:[{type:core.Input,args:[{isSignal:!0,alias:"userModel",required:!1,transform:void 0}]}],formlyFields:[{type:core.Input,args:[{isSignal:!0,alias:"formlyFields",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],create:[{type:core.Output,args:["create"]}],update:[{type:core.Output,args:["update"]}],cancel:[{type:core.Output,args:["cancel"]}]}}};CreateUpdateComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-create-update",template:'\n \n
\n \n {{ heading() }}\n \n \x3c!-- Heading --\x3e\n \n \n
\n \n\n
\n \n
\n\n \x3c!-- Form --\x3e\n @switch (state()) {\n @case ("CREATE") {\n
\n }\n @case ("UPDATE") {\n
\n }\n @case ("OUTDATED_UPDATE") {\n
\n }\n }\n
\n \n\n\n \n \n\n\n \n \n',standalone:!0,imports:[page_container_component.i,button_component.Q,common.NgTemplateOutlet,form_component.s,compare_form_component.z],styles:[create_update_componentngResource_default()]})],CreateUpdateComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/design/templates/campaign-update/campaign-update.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>campaign_update_stories});var dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),map_service_mock=__webpack_require__("./src/app/_services/article/map.service.mock.ts"),campaign_mock_service=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var campaign_update_componentngResource=__webpack_require__("./src/design/templates/campaign-update/campaign-update.component.scss?ngResource"),campaign_update_componentngResource_default=__webpack_require__.n(campaign_update_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),create_update_component=__webpack_require__("./src/design/templates/create-update/create-update.component.ts");let CampaignUpdateComponent=class CampaignUpdateComponent{constructor(formlyService){this.formlyService=formlyService,this.userModel=core.input.required(),this._userModel=(0,core.computed)((()=>this.removeFileValues(this.userModel()))),this.serverModel=(0,core.input)(void 0),this._serverModel=(0,core.computed)((()=>{if(null!=this.serverModel())return this.removeFileValues(this.serverModel())})),this.mapOptions=core.input.required(),this.formState=(0,core.computed)((()=>null!=this.serverModel()?"OUTDATED_UPDATE":"UPDATE")),this.cancel=(0,core.output)(),this.update=(0,core.output)(),this.mapOptions$=(0,rxjs_interop.br)(this.mapOptions),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"name",inputKind:"NAME",required:!0,maxLength:400}),this.formlyService.buildInputConfig({key:"subtitle",inputKind:"STRING",required:!1,maxLength:400}),this.formlyService.buildOverviewSelectConfig({key:"default_map",label:"Default Map",valueProp:"pk",labelProp:"name",options$:this.mapOptions$,required:!1}),this.formlyService.buildFileFieldConfig({key:"background_image",required:!1}),this.formlyService.buildFileFieldConfig({key:"icon",required:!1})]))}removeFileValues(model){return{...model,background_image:"",icon:""}}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={userModel:[{type:core.Input,args:[{isSignal:!0,alias:"userModel",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],mapOptions:[{type:core.Input,args:[{isSignal:!0,alias:"mapOptions",required:!0,transform:void 0}]}],cancel:[{type:core.Output,args:["cancel"]}],update:[{type:core.Output,args:["update"]}]}}};CampaignUpdateComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-campaign-update",standalone:!0,imports:[create_update_component.F],template:'@if (_userModel() != null) {\n \n}\n',styles:[campaign_update_componentngResource_default()]})],CampaignUpdateComponent);const campaign_update_stories={title:"DesignSystem/Templates/CampaignUpdate",component:CampaignUpdateComponent,decorators:[(0,dist.moduleMetadata)({imports:[formly_constants.aj]})],args:{userModel:campaign_mock_service.jr,serverModel:void 0,mapOptions:map_service_mock.A},argTypes:{cancel:{action:"cancel"}}},Default={},__namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"{}",...Default.parameters?.docs?.source}}}},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/campaign-update/campaign-update.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/create-update/create-update.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".heading {\n display: flex;\n justify-content: space-between;\n text-align: center;\n}\n.heading__text {\n flex: 1;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-campaign-update-campaign-update-stories.cc23c349.iframe.bundle.js b/design-templates-campaign-update-campaign-update-stories.cc23c349.iframe.bundle.js
deleted file mode 100644
index 9b71f3388..000000000
--- a/design-templates-campaign-update-campaign-update-stories.cc23c349.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8139],{"./src/app/_services/article/map.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{A:()=>dummyMaps,r:()=>dummyMap});const dummyMap={getAbsoluteRouterUrl:()=>"/map/url",pk:2,name:"The World",image:"/media/Aldrune_World_1.jpg",icon:"/media/globe",update_datetime:"2021-06-26T17:10:35.352119Z",campaign:1,campaign_details:{name:"Aldrune",id:1},markers:__webpack_require__("./src/app/_services/article/marker.service.mock.ts").a},dummyMaps=[{getAbsoluteRouterUrl:()=>"/map/url1",article_type:"map",description:"A map of East Academy Year 2 Dorms ",pk:13,name_full:"East Academy Year 2 Dorms ",name:"East Academy Year 2 Dorms ",campaign_details:{name:"Empress-City",id:3},update_datetime:"2024-08-25T20:44:28.629572Z",icon:void 0},{getAbsoluteRouterUrl:()=>"/map/url2",article_type:"map",description:"A map of Forgian",pk:12,name_full:"Forgian",name:"Forgian",campaign_details:{name:"Empress-City",id:4},update_datetime:"2024-08-23T21:58:05.094772Z",icon:void 0}]},"./src/app/_services/article/marker.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{a:()=>dummyMarkers});const dummyMarkers=[{getAbsoluteRouterUrl:()=>"/marker1/url",pk:106,color:void 0,icon:void 0,longitude:532,latitude:553,map:2,map_details:{name:"The World"},location:50,location_details:{name:"Galway",description:"The New Capital of Fen's High Kingdom
\n
\nGalway City Breakdown
\nEastern Lakeway - 15 Buildings Western Lakeway - 40 Buildings Myria Island - 7 Buildings River District - 46 Buildings, several temporary Refugee Shelters Forest District - 85 Buildings Hill District - 149 Buildings Galway Proper - 60 Buildings
\nTotal - 402 Civilian Buildings in Galway
\nEstimated Population: 4000+
",parent_location_name:"none",sublocations:[]},type:11,type_details:{name:"Settlement",icon:"home",is_text_marker:!1,fontawesome_type:"fa",color:"lightgreen",id:11,update_datetime:"2021-07-27T15:28:05.887185Z",creation_datetime:"2021-07-03T17:56:33.339291Z"},campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/marker2/url",pk:137,color:void 0,icon:void 0,longitude:752,latitude:579,map:2,map_details:{name:"The World"},location:206,location_details:{name:"Eastern sea",description:"The ocean east of Aldrune, now accessible through the path carved by the world serpent.
",parent_location_name:"none",sublocations:["Lighthouse"]},type:23,type_details:{name:"Sea/Ocean",icon:"water",is_text_marker:!0,fontawesome_type:"fa",color:"gray",id:23,update_datetime:"2021-07-27T15:28:05.887185Z",creation_datetime:"2021-07-03T17:56:33.339291Z"},campaign_details:{name:"Aldrune",id:1}}]},"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/utils/campaign.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{_B:()=>dummyCampaigns,jr:()=>dummyCampaign,mE:()=>dummyStatistics});const dummyCampaigns=[{pk:1,name:"Aldrune",subtitle:"A campaign made by Samuel Day and recorded by Philipp Dörner through the eyes of Relentless",background_image:"/media/campaign_backgrounds/bg.jpg",is_deactivated:!1,has_audio_recording_permission:!0,icon:"/media/campaign_icons/favicon-128x128.png",default_map:1,default_map_details:{icon:"map",image:"pic05_sMT2d6M.jpg",name:"Aldrune",id:1},duration:{start_date:"2020-04-07T00:00:00.000000Z",last_date:"2023-04-11T00:00:00.000000Z"}},{pk:2,name:"Jōzai Corp",subtitle:"Welcome to Jōzai Corp, please enjoy your employment.",background_image:"/media/campaign_backgrounds/shanghai_city_snlaYDd.jpg",is_deactivated:!1,has_audio_recording_permission:!1,icon:"/media/campaign_icons/icon.png",default_map:void 0,default_map_details:void 0,duration:{start_date:"2022-01-15T00:00:00.000000Z",last_date:"2022-02-19T00:00:00.000000Z"}}],dummyStatistics={character_count:265,item_count:142,location_count:229,creature_count:42,diaryentry_count:101,encounter_count:954,organization_count:46,quest_count:69,quote_count:203,session_audio_count:69,timestamp_count:1121,map_count:7,marker_count:136,spell_count:22,session_count:90,rule_count:17},dummyCampaign={name:"Aldrune",subtitle:"A campaign for testing",pk:1,background_image:"/assets/default_images/audio_pic_default.webp",icon:"https://www.aldrune.com/media/campaign_icons/favicon-128x128.png",default_map:123,default_map_details:{id:123,name:"Default Map",icon:"plus",image:"blub.jpg"},is_deactivated:!1,has_audio_recording_permission:!0,members:[{username:"isofruit",password:"password1",pk:1,api_permissions:["permission1","permission2"],groups:[1,2],group_details:[{name:"group1",pk:1},{name:"group2",pk:2}],is_staff:!0,is_superuser:!1,email:"user1@example.com",is_active:!0},{username:"user2",password:"password2",pk:2,api_permissions:["permission3","permission4"],groups:[1,3],group_details:[{name:"group1",pk:1},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user2@example.com",is_active:!0}],admins:[{username:"admin",password:"adminpassword",pk:3,api_permissions:["permission1","permission2","permission3","permission4"],groups:[1,2,3],group_details:[{name:"group1",pk:1},{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!0,is_superuser:!0,email:"admin@example.com",is_active:!0},{username:"user3",password:"password3",pk:4,api_permissions:["permission1"],groups:[1],group_details:[{name:"group1",pk:1}],is_staff:!1,is_superuser:!1,email:"user3@example.com",is_active:!0}],guests:[{username:"user4",password:"password4",pk:5,api_permissions:["permission2","permission3"],groups:[2,3],group_details:[{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user4@example.com",is_active:!0},{username:"user5",password:"password5",pk:6,api_permissions:["permission4"],groups:[3],group_details:[{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user5@example.com",is_active:!0}],member_group_name:"Members",admin_group_name:"Admins",guest_group_name:"Guests",emptySearchResponses:[{id:1,text:"Empty response 1",campaign:1},{id:2,text:"Empty response 2",campaign:1}]}},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/design/templates/create-update/create-update.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>CreateUpdateComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var create_update_componentngResource=__webpack_require__("./src/design/templates/create-update/create-update.component.scss?ngResource"),create_update_componentngResource_default=__webpack_require__.n(create_update_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),compare_form_component=__webpack_require__("./src/design/molecules/compare-form/compare-form.component.ts"),form_component=__webpack_require__("./src/design/molecules/form/form.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts");let CreateUpdateComponent=class CreateUpdateComponent{constructor(){this.heading=core.input.required(),this.state=core.input.required(),this.userModel=(0,core.input)(),this.formlyFields=core.input.required(),this.serverModel=core.input.required(),this.create=(0,core.output)(),this.update=(0,core.output)(),this.cancel=(0,core.output)()}onSubmit(submittedData){if(null!=submittedData)switch(this.state()){case"CREATE":this.create.emit(submittedData);break;case"UPDATE":case"OUTDATED_UPDATE":this.update.emit(submittedData)}}static{this.propDecorators={heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!0,transform:void 0}]}],state:[{type:core.Input,args:[{isSignal:!0,alias:"state",required:!0,transform:void 0}]}],userModel:[{type:core.Input,args:[{isSignal:!0,alias:"userModel",required:!1,transform:void 0}]}],formlyFields:[{type:core.Input,args:[{isSignal:!0,alias:"formlyFields",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!0,transform:void 0}]}],create:[{type:core.Output,args:["create"]}],update:[{type:core.Output,args:["update"]}],cancel:[{type:core.Output,args:["cancel"]}]}}};CreateUpdateComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-create-update",template:'\n \n
\n \n {{ heading() }}\n \n \x3c!-- Heading --\x3e\n \n \n
\n \n\n
\n \n
\n\n \x3c!-- Form --\x3e\n @switch (state()) {\n @case ("CREATE") {\n
\n }\n @case ("UPDATE") {\n
\n }\n @case ("OUTDATED_UPDATE") {\n
\n }\n }\n
\n \n\n\n \n \n\n\n \n \n',standalone:!0,imports:[page_container_component.i,button_component.Q,common.NgTemplateOutlet,form_component.s,compare_form_component.z],styles:[create_update_componentngResource_default()]})],CreateUpdateComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/design/templates/campaign-update/campaign-update.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>campaign_update_stories});var dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),map_service_mock=__webpack_require__("./src/app/_services/article/map.service.mock.ts"),campaign_mock_service=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var campaign_update_componentngResource=__webpack_require__("./src/design/templates/campaign-update/campaign-update.component.scss?ngResource"),campaign_update_componentngResource_default=__webpack_require__.n(campaign_update_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),create_update_component=__webpack_require__("./src/design/templates/create-update/create-update.component.ts");let CampaignUpdateComponent=class CampaignUpdateComponent{constructor(formlyService){this.formlyService=formlyService,this.userModel=core.input.required(),this._userModel=(0,core.computed)((()=>this.removeFileValues(this.userModel()))),this.serverModel=(0,core.input)(void 0),this._serverModel=(0,core.computed)((()=>{if(null!=this.serverModel())return this.removeFileValues(this.serverModel())})),this.mapOptions=core.input.required(),this.formState=(0,core.computed)((()=>null!=this.serverModel()?"OUTDATED_UPDATE":"UPDATE")),this.cancel=(0,core.output)(),this.update=(0,core.output)(),this.mapOptions$=(0,rxjs_interop.br)(this.mapOptions),this.formlyFields=(0,core.computed)((()=>[this.formlyService.buildInputConfig({key:"name",inputKind:"NAME",required:!0,maxLength:400}),this.formlyService.buildInputConfig({key:"subtitle",inputKind:"STRING",required:!1,maxLength:400}),this.formlyService.buildOverviewSelectConfig({key:"default_map",label:"Default Map",valueProp:"pk",labelProp:"name",options$:this.mapOptions$,required:!1}),this.formlyService.buildFileFieldConfig({key:"background_image",required:!1}),this.formlyService.buildFileFieldConfig({key:"icon",required:!1})]))}removeFileValues(model){return{...model,background_image:"",icon:""}}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={userModel:[{type:core.Input,args:[{isSignal:!0,alias:"userModel",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],mapOptions:[{type:core.Input,args:[{isSignal:!0,alias:"mapOptions",required:!0,transform:void 0}]}],cancel:[{type:core.Output,args:["cancel"]}],update:[{type:core.Output,args:["update"]}]}}};CampaignUpdateComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-campaign-update",standalone:!0,imports:[create_update_component.F],template:'@if (_userModel() != null) {\n \n}\n',styles:[campaign_update_componentngResource_default()]})],CampaignUpdateComponent);const campaign_update_stories={title:"DesignSystem/Templates/CampaignUpdate",component:CampaignUpdateComponent,decorators:[(0,dist.moduleMetadata)({imports:[formly_constants.aj]})],args:{userModel:campaign_mock_service.jr,serverModel:void 0,mapOptions:map_service_mock.A},argTypes:{cancel:{action:"cancel"}}},Default={},__namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"{}",...Default.parameters?.docs?.source}}}},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/campaign-update/campaign-update.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/create-update/create-update.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".heading {\n display: flex;\n justify-content: space-between;\n text-align: center;\n}\n.heading__text {\n flex: 1;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-general-overview-general-overview-stories.de6793fe.iframe.bundle.js b/design-templates-general-overview-general-overview-stories.de6793fe.iframe.bundle.js
deleted file mode 100644
index d63125a59..000000000
--- a/design-templates-general-overview-general-overview-stories.de6793fe.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7689],{"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/image-card/image-card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{f:()=>ImageCardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_card_componentngResource=__webpack_require__("./src/design/molecules/image-card/image-card.component.scss?ngResource"),image_card_componentngResource_default=__webpack_require__.n(image_card_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),merge=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/merge.js"),fromEvent=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),debounceTime=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js"),startWith=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/startWith.js"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ImageCardComponent=class ImageCardComponent{constructor(){this.serverUrl=core.input.required(),this.fallbackUrl=(0,core.input)(),this.imageUrls=core.input.required({transform:value=>value?Array.isArray(value)?value:[value]:[]}),this.link=(0,core.input)(),this.text=core.input.required(),this.alt=(0,core.input)(),this.currentImageIndex=(0,core.signal)(0),this.currentImage=(0,core.computed)((()=>this.imageUrls()[this.currentImageIndex()]??this.fallbackUrl())),this.elementRef=(0,core.inject)(core.ElementRef),this.selectorClicked$=new Subject.B,this.closeBtnClicked$=new Subject.B,this.openBtnClicked$=new Subject.B,this.inFocus=(0,rxjs_interop.ot)((0,merge.h)((0,fromEvent.R)(this.elementRef.nativeElement,"focusin").pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("focusin")))),(0,fromEvent.R)(this.elementRef.nativeElement,"focusout").pipe((0,filter.p)((event=>this.hasDataAttributeInTree(event,"[data-register-focus]"))),(0,tap.M)((evt=>console.log("focusout",evt))),(0,map.T)((()=>!1))),(0,fromEvent.R)(this.elementRef.nativeElement,"mouseenter").pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("mouseenter")))),(0,fromEvent.R)(this.elementRef.nativeElement,"mouseleave").pipe((0,map.T)((()=>!1)),(0,tap.M)((()=>console.log("mouseleave")))),(0,fromEvent.R)(this.elementRef.nativeElement,"click").pipe((0,filter.p)((event=>!this.hasDataAttributeInTree(event,"[data-ignore-click]"))),(0,map.T)((()=>!0))),this.selectorClicked$.pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("selector-click")))),this.openBtnClicked$.pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("open-click")))),this.closeBtnClicked$.pipe((0,map.T)((()=>!1)),(0,tap.M)((()=>console.log("close-click"))))).pipe((0,debounceTime.B)(50),(0,startWith.Z)(!1))),this.selectorClicked$.pipe((0,rxjs_interop.pQ)()).subscribe((({event,index})=>this.onSelectorClick(index,event)))}onSelectorClick(newIndex,event){this.currentImageIndex.set(newIndex),event.preventDefault()}hasDataAttributeInTree(event,attr){const target=event.target;if(!(target instanceof Element))return!0;return null!=target.closest(attr)}static{this.ctorParameters=()=>[]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],fallbackUrl:[{type:core.Input,args:[{isSignal:!0,alias:"fallbackUrl",required:!1,transform:void 0}]}],imageUrls:[{type:core.Input,args:[{isSignal:!0,alias:"imageUrls",required:!0,transform:void 0}]}],link:[{type:core.Input,args:[{isSignal:!0,alias:"link",required:!1,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],alt:[{type:core.Input,args:[{isSignal:!0,alias:"alt",required:!1,transform:void 0}]}]}}};ImageCardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-card",template:'\n @if (currentImage()) {\n
\n }\n
\n @if (imageUrls().length > 1) {\n
\n @for (_ of imageUrls(); track $index) {\n \n {{ $index + 1 }}\n \n }\n
\n }\n
\n \n {{ text() }}\n \n \n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[router.Wk,button_component.Q,common.AsyncPipe],host:{"[class.card--active]":"inFocus()"},styles:[image_card_componentngResource_default()]})],ImageCardComponent)},"./src/design/organisms/filter-list/filter-list.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{q:()=>FilterListComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var filter_list_componentngResource=__webpack_require__("./src/design/organisms/filter-list/filter-list.component.scss?ngResource"),filter_list_componentngResource_default=__webpack_require__.n(filter_list_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),object=__webpack_require__("./src/utils/object.ts");let GroupByFirstLetterPipe=class GroupByFirstLetterPipe{transform(itemArray,field){const groupedObj=itemArray.reduce(((accumulator,item)=>{const firstLetter=item[field][0];return accumulator.hasOwnProperty(firstLetter)?accumulator[firstLetter].push(item):accumulator[firstLetter]=[item],accumulator}),{});return Object.keys(groupedObj).map((key=>({key,value:groupedObj[key]}))).sort(((a,b)=>a.key>b.key?1:-1))}};GroupByFirstLetterPipe=(0,tslib_es6.Cg)([(0,core.Pipe)({name:"groupByFirstLetter",standalone:!0})],GroupByFirstLetterPipe);let GroupByPipe=class GroupByPipe{transform(itemArray,groupProp,subSortProp,reverse=!1){const groupedObj=itemArray.reduce(((accumulator,item)=>{const groupedFieldValue=(0,object.p)(item,groupProp);return accumulator.hasOwnProperty(groupedFieldValue)?accumulator[groupedFieldValue].push(item):accumulator[groupedFieldValue]=[item],accumulator}),{}),sortedGroupArray=Object.keys(groupedObj).map((key=>({key,value:groupedObj[key]}))).sort(((group1,group2)=>group1.key.toLowerCase(){const groupEntries=group.value;group.value=this.sortGroup(groupEntries,subSortProp)})),reverse?sortedGroupArray.reverse():sortedGroupArray}sortGroup(group,propertyPath){return group.sort(((val1,val2)=>{let sortValue1=(0,object.p)(val1,propertyPath);const isStringProperty="string"==typeof sortValue1;isStringProperty&&(sortValue1=sortValue1.toLowerCase());let sortValue2=(0,object.p)(val2,propertyPath);return isStringProperty&&(sortValue2=sortValue2.toLowerCase()),sortValue1{const filterValue=this.filterValue()?.toLowerCase();return null==filterValue||""===filterValue?this.entries():this.entries().filter((entry=>entry[this.labelProp()].toLowerCase().includes(filterValue)))})),this.mode=(0,core.computed)((()=>this.groupProp()?"PROPERTY":"LETTER"))}openFirstArticle(event){event.preventDefault();if(!(this.displayEntries().length>0))return;const entry=this.displayEntries()[0];this.routing.navigateByUrl(entry.link)}static{this.ctorParameters=()=>[{type:router.Ix}]}static{this.propDecorators={entries:[{type:core.Input,args:[{isSignal:!0,alias:"entries",required:!0,transform:void 0}]}],labelProp:[{type:core.Input,args:[{isSignal:!0,alias:"labelProp",required:!0,transform:void 0}]}],heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!0,transform:void 0}]}],groupProp:[{type:core.Input,args:[{isSignal:!0,alias:"groupProp",required:!1,transform:void 0}]}],forceSingleLine:[{type:core.Input,args:[{isSignal:!0,alias:"forceSingleLine",required:!1,transform:void 0}]}]}}};FilterListComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-filter-list",template:'\n\n\n @for (\n itemLetterEntries of displayEntries() | groupByFirstLetter: labelProp();\n track $index\n ) {\n \n \x3c!-- Letter Heading --\x3e\n @if (filterInputElement.value.length === 0) {\n
\n {{ itemLetterEntries.key }}\n \n }\n\n \x3c!-- Article List --\x3e\n
\n
\n }\n \n\n\n @let groupPropVal = groupProp();\n @if (groupPropVal) {\n @for (\n itemLetterEntries of displayEntries()\n | groupBy: groupPropVal : "session_details.session_number";\n track $index\n ) {\n \n \x3c!-- Letter Heading --\x3e\n @if (filterInputElement.value.length === 0) {\n
\n {{ itemLetterEntries.key }}\n \n }\n\n \x3c!-- Article List --\x3e\n
\n
\n }\n }\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[GroupByFirstLetterPipe,common.NgClass,GroupByPipe,router.Wk,common.NgTemplateOutlet],styles:[filter_list_componentngResource_default()]})],FilterListComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{B:()=>debounceTime});var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/scheduler/async.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js");function debounceTime(dueTime,scheduler){return void 0===scheduler&&(scheduler=_scheduler_async__WEBPACK_IMPORTED_MODULE_0__.E),(0,_util_lift__WEBPACK_IMPORTED_MODULE_1__.N)((function(source,subscriber){var activeTask=null,lastValue=null,lastTime=null,emit=function(){if(activeTask){activeTask.unsubscribe(),activeTask=null;var value=lastValue;lastValue=null,subscriber.next(value)}};function emitWhenIdle(){var targetTime=lastTime+dueTime,now=scheduler.now();if(now{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Characters:()=>Characters,CharactersWithoutPlayerCharacters:()=>CharactersWithoutPlayerCharacters,Creatures:()=>Creatures,Default:()=>Default,Diaryentries:()=>Diaryentries,Items:()=>Items,Locations:()=>Locations,Organizations:()=>Organizations,__namedExportsOrder:()=>__namedExportsOrder,default:()=>general_overview_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var general_overview_componentngResource=__webpack_require__("./src/design/templates/general-overview/general-overview.component.scss?ngResource"),general_overview_componentngResource_default=__webpack_require__.n(general_overview_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),image_card_component=__webpack_require__("./src/design/molecules/image-card/image-card.component.ts"),filter_list_component=__webpack_require__("./src/design/organisms/filter-list/filter-list.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts");let GeneralOverviewComponent=class GeneralOverviewComponent{constructor(routingService){this.routingService=routingService,this.OVERVIEW_IMAGE_MAP={CHARACTER:"/assets/overview_images/characters.webp",CREATURE:"/assets/overview_images/creatures.webp",DIARYENTRY:"/assets/overview_images/diaryentries.webp",ITEM:"/assets/overview_images/items.webp",LOCATION:"/assets/overview_images/locations.webp",ORGANIZATION:"/assets/overview_images/organizations.webp"},this.serverUrl=core.input.required(),this.overviewType=core.input.required(),this.entries=core.input.required(),this.campaignName=core.input.required(),this.canCreate=core.input.required(),this.defaultPlayerCharacterImage="assets/default_images/icon_default.webp",this.displayEntries=(0,core.computed)((()=>{switch(this.overviewType()){case"CHARACTER":return this.getCharacterEntries(this.entries());case"DIARYENTRY":return this.getDiaryEntryEntries(this.entries());case"LOCATION":return this.getLocationEntries(this.entries());default:return this.entries().map((entry=>({...entry,link:entry.getAbsoluteRouterUrl()})))}})),this.playerCharacters=(0,core.computed)((()=>{if("CHARACTER"===this.overviewType())return this.entries().filter((entry=>entry.player_character))})),this.homeUrl=(0,core.computed)((()=>this.routingService.getRoutePath("home",{campaign:this.campaignName}))),this.overviewTypeName=(0,core.computed)((()=>this.overviewType().toLocaleLowerCase()))}getCharacterEntries(entries){return entries.filter((entry=>!entry.player_character)).map((entry=>({...entry,link:entry.getAbsoluteRouterUrl()})))}getDiaryEntryEntries(entries){return entries.map((diaryEntry=>({...diaryEntry,name_full:this.buildDiaryEntryNameForList(diaryEntry),link:diaryEntry.getAbsoluteRouterUrl()})))}buildDiaryEntryNameForList(diaryEntry){const startWithSessionNumber=`#${diaryEntry.session_details?.session_number}`;let title=null!=diaryEntry.name?`- ${diaryEntry.name}`:"";let daysCoveredByEntry="";if(null!=diaryEntry.session_details?.start_day&&null!=diaryEntry.session_details.end_day){const padLength=3;daysCoveredByEntry=`- Days ${this.padNumber(diaryEntry.session_details.start_day,padLength,"")}-${this.padNumber(diaryEntry.session_details.end_day,padLength,"")}`}return`${startWithSessionNumber} ${daysCoveredByEntry} ${title}`}getLocationEntries(entries){return entries.map((locationEntry=>{const locationPath=this.getParentLocations(locationEntry,entries).map((location=>location.name)).reverse().join(" - ");return{...locationEntry,name_full:locationPath,link:locationEntry.getAbsoluteRouterUrl()}})).sort(((location1,location2)=>location1.name_full>location2.name_full?1:-1))}getParentLocations(location,listItems){const parents=[location];for(var currentLocation=location,hasParentLocation=null!=currentLocation.parent_location_details?.pk;hasParentLocation;){const parentLocationPk=currentLocation.parent_location_details?.pk,parentLocation=listItems.find((entry=>entry.pk===parentLocationPk));if(null==parentLocation)break;parents.push(parentLocation),currentLocation=parentLocation,hasParentLocation=null!=currentLocation.parent_location_details?.pk}return parents}padNumber(num,padCount,paddingCharacter="0"){return(paddingCharacter.repeat(padCount)+num).slice(-1*padCount)}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],overviewType:[{type:core.Input,args:[{isSignal:!0,alias:"overviewType",required:!0,transform:void 0}]}],entries:[{type:core.Input,args:[{isSignal:!0,alias:"entries",required:!0,transform:void 0}]}],campaignName:[{type:core.Input,args:[{isSignal:!0,alias:"campaignName",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}]}}};GeneralOverviewComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-general-overview",template:'\n \n \x3c!-- Heading --\x3e\n @if (overviewTypeName()) {\n \n
\n @switch (overviewType()) {\n @case ("CHARACTER") {\n Characters\n }\n @case ("LOCATION") {\n Locations\n }\n @case ("ITEM") {\n Items\n }\n @case ("ORGANIZATION") {\n Organizations\n }\n @case ("CREATURE") {\n Creatures\n }\n @case ("DIARYENTRY") {\n Diaryentries\n }\n @default {\n Entries\n }\n }\n \n \n }\n\n \n @switch (overviewType()) {\n @case ("CHARACTER") {\n 0)\n ? characterHeading\n : defaultHeading\n "\n />\n }\n @default {\n \n }\n }\n
\n\n \x3c!-- Adding Item button --\x3e\n @if (canCreate()) {\n \n }\n\n \n @switch (overviewType()) {\n @case ("CHARACTER") {\n \n }\n @case ("DIARYENTRY") {\n \n }\n @default {\n \n }\n }\n
\n\n \x3c!-- Footer --\x3e\n \n \n \n\n\n \x3c!-- Image --\x3e\n \n \n\n\n Player Characters \n\n \n @for (playerCharacter of playerCharacters(); track playerCharacter.name) {\n
\n
\n @if (playerCharacter.images) {\n
\n }\n
\n
\n }\n
\n \n\n\n Non-Player Characters \n\n \n \n\n\n \n \n\n\n \n \n',standalone:!0,imports:[page_container_component.i,common.NgTemplateOutlet,router.Wk,button_component.Q,image_card_component.f,filter_list_component.q,common.TitleCasePipe],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[general_overview_componentngResource_default()]})],GeneralOverviewComponent);const dummyCharacters=[{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gandalf",pk:1,name_full:"Gandalf the Grey",player_character:!0,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Frodo",pk:2,name_full:"Frodo Baggins",player_character:!0,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gimli",pk:3,name_full:"Gimli son of Glóin",player_character:!1,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Legolas",pk:4,name_full:"Legolas Greenleaf",player_character:!1,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Bilbo",pk:5,name_full:"Bilbo Baggins",player_character:!1,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Aragorn",pk:6,name_full:"Aragorn son of Arathorn",player_character:!1,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Saruman",pk:7,name_full:"Saruman the White",player_character:!1,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Sif",pk:18,name_full:"Sif the Swift",description:"Sif is a skilled warrior known for her lightning-fast strikes and agility. She is fiercely loyal to her friends and will stop at nothing to protect them.",update_datetime:"2022-03-15T10:30:00.000Z",player_character:!0,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gorin",pk:19,name_full:"Gorin Ironfist",description:"Gorin is a dwarf from the Iron Hills, known for his strength and unwavering determination. He has a fondness for ale and a good brawl.",update_datetime:"2022-02-23T14:15:00.000Z",player_character:!0,images:["/assets/default_images/background_default.webp","/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Lirien",pk:20,name_full:"Lirien Windrider",description:"Lirien is an elven archer, renowned for her skill with the bow. She is fiercely independent and often clashes with authority figures.",update_datetime:"2022-03-20T08:45:00.000Z",player_character:!0,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}}],dummyLocations=[{article_type:"location",description:" The ocean east of Aldrune, now accessible through the path carved by the world serpent.",pk:206,name_full:"Eastern sea",name:"Eastern sea",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-11-12T20:20:56.008470Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A town on the eastern edge of Aldrune.",pk:25,name_full:"Eastfife",name:"Eastfife",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.493763Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The civilization that created it and structures on the island of heroes were known for their anti-magic. They suppressed the magical abilities of everybody and then beat them on that non-magical...",pk:272,name_full:"Elevator",name:"Elevator",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-12-06T21:35:20.848467Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A small village, farming community, near the equinox stones. Very reminiscent of Willow before it burned down.",pk:257,name_full:"Equinia",name:"Equinia",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-04-16T14:50:13.971556Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A place of standing stones mentioned by Kace. They are said to have sealed away chaos and a creature of the black blood.\nThere's a saying surrounding it that we were told...",pk:35,name_full:"Equinox Stones",name:"Equinox Stones",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-04-16T15:59:17.118115Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The capital of Aldrune, guarded by Mannan's Gullet.",pk:11,name_full:"Etruscan",name:"Etruscan",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.509444Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" Headquarters of the Whisper-Rend Blood.",pk:15,name_full:"Farhold",name:"Farhold",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.515376Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The Farmland of Etruscan located in the upper dirtside. Not in use during winter and thus used as grounds for festivals such as Winter Solstice.",pk:173,name_full:"Etruscan - Upper Dirtside - Farmland",name:"Farmland",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-02-14T14:12:03.252267Z",parent_location_details:{pk:97,name:"Upper Dirtside",name_full:"Upper Dirtside",parent_location:"Etruscan"},parent_location:97},{article_type:"location",description:" The house in which Felicia Foghound and her adjutants used to sleep during the day. It now sports several holes from our encounter with her where Murtagh blew the walls open...",pk:185,name_full:"Merren - Mud lands - Felicia Foghounds Manor",name:"Felicia Foghounds Manor",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-06-20T18:18:40.578499Z",parent_location_details:{pk:183,name:"Mud lands",name_full:"Mud lands",parent_location:"Merren"},parent_location:183},{article_type:"location",description:" A shop to buy metal goods from, armor and weapon. Recommended by Trumble.",pk:66,name_full:"Hallan - Fellhammer",name:"Fellhammer",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:58:13.279086Z",parent_location_details:{pk:3,name:"Hallan",name_full:"Hallan",parent_location:1},parent_location:3},{article_type:"location",description:" ",pk:22,name_full:"Felliman Bay",name:"Felliman Bay",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.521416Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" ",pk:21,name_full:"Fellman",name:"Fellman",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.527967Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A place that, according to Fen, was created by the Firbolg, who ruled the land before the Hobgoblins came. The black chaos griffon escaped towards this place and bled out here.\nRanger's...",pk:19,name_full:"Firbolg Cliff Face",name:"Firbolg Cliff Face",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.534127Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A ship made of - at least to some degree - enchanted whalebone, allowing it to fly. They do not pay tribute to Manannan and Manannan can not find them as...",pk:193,name_full:"Flying Whalebone Ship",name:"Flying Whalebone Ship",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-31T11:53:53.751627Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A very high-class inn owned by Fraich, an elven companion of Forallian.\nThe atmosphere is of one that would fit to old war-buddies exchanging stories or bygone sea-captains telling stories of old...",pk:135,name_full:"Etruscan - Guild Quarters - Fraich Arc",name:"Fraich Arc",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-03-09T21:56:27.502563Z",parent_location_details:{pk:126,name:"Guild Quarters",name_full:"Guild Quarters",parent_location:"Etruscan"},parent_location:126},{article_type:"location",description:" A mountain range, part of which is Frank. The cave of Barbatos is located here, guarded by him.",pk:162,name_full:"Frank's Mountain Range",name:"Frank's Mountain Range",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-11-27T20:44:06.734835Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" An inn down the road of the fancyful ferret. We slept there after our first outing in the fancyful ferret. Fairly expensive.",pk:78,name_full:"Loom Arrow - Galdian",name:"Galdian",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:58:13.443928Z",parent_location_details:{pk:5,name:"Loom Arrow",name_full:"Loom Arrow",parent_location:1},parent_location:5},{article_type:"location",description:" A hidden village in the east of Aldrune. They make draconic glass and have a strong ties to dragons.\nThe O'Dyny settled with them for a time, but then split off after...",pk:267,name_full:"Gallowglass",name:"Gallowglass",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-08-30T20:34:09.958811Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The New Capital of Fen's High Kingdom\n \nGalway City Breakdown\nEastern Lakeway - 15 BuildingsWestern Lakeway - 40 BuildingsMyria Island - 7 BuildingsRiver District - 46 Buildings, several temporary Refugee SheltersForest District -...",pk:50,name_full:"Galway",name:"Galway",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-31T16:10:30.061953Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A location in the Galway region, a small settlement once, not really known for much but being traders with the Dwarrow",pk:46,name_full:"Teeth of Galway - Glenrie Ruins",name:"Glenrie Ruins",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-09-13T10:55:52.560792Z",parent_location_details:{pk:146,name:"Teeth of Galway",name_full:"Teeth of Galway",parent_location:1},parent_location:146},{article_type:"location",description:" A rocky beach, consists mostly of pebbles and has a lot of shellfish.",pk:101,name_full:"Etruscan - Glimhorgan Beach",name:"Glimhorgan Beach",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-24T08:09:06.600687Z",parent_location_details:{pk:11,name:"Etruscan",name_full:"Etruscan",parent_location:1},parent_location:11},{article_type:"location",description:" A mountainrange in the southeast corner Aldrune. In it's southern portion is a Volcano created by a young Fen",pk:24,name_full:"God Peaks",name:"God Peaks",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-25T07:05:26.382064Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The iron heart of aldrune, center of all forging activities here and key for metal equipment and tool supply chains. Currently headquarters of the stricken blood.",pk:13,name_full:"Godrick Vale",name:"Godrick Vale",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-29T10:34:03.945996Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A statue of the blackhound, that Bathilde commissioned from Shale.",pk:169,name_full:"Etruscan - Guild Quarters - Public Docks and Fishing Werfs - Wooden Statue of the Blackhound",name:"Wooden Statue of the Blackhound",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-01-24T11:25:58.611061Z",parent_location_details:{pk:111,name:"Public Docks and Fishing Werfs",name_full:"Public Docks and Fishing Werfs",parent_location:"Guild Quarters"},parent_location:111},{article_type:"location",description:' A place where the last king of the storm giants used to house, waiting for their moment to make a return.\nAlso called "Odin\'s hold".',pk:176,name_full:"Aldrunian Sea - Wound of the world",name:"Wound of the world",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-11-02T19:15:45.515776Z",parent_location_details:{pk:157,name:"Aldrunian Sea",name_full:"Aldrunian Sea",parent_location:1},parent_location:157}].map((loc=>({...loc,getAbsoluteRouterUrl:()=>"/location/123"}))),dummyOrganizations=[{article_type:"organization",description:" Magic is Chaos and sometimes people are in touch with this force. Though understanding and control we order the Chaos. It is only when we allow it to overcome us that...",pk:17,name_full:"Academy Of Schools",name:"Academy Of Schools",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-12T15:33:07.176299Z"},{article_type:"organization",description:" The ruling family of Hallan. Loyal to Duke Aspen. Somewhat politically powerful as Hallan is an important trading post. Further make an effort to be very presentable and are well-practiced in...",pk:13,name_full:"Affingtons",name:"Affingtons",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-12-22T16:40:48.834877Z"},{article_type:"organization",description:" The Aspen blood line is one of the main noble blood lines in Aldrune.\nTheir innate ability to sense motion and vibration has led to them being excellent hunters in the dark...",pk:5,name_full:"Aspen Blood",name:"Aspen Blood",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-11T16:55:59.479546Z"},{article_type:"organization",description:" \nThe black feather blood line is one of the main noble blood lines in Aldrune.\nThose of this lineage have innate control over animals and can communicate with them freely and without...",pk:6,name_full:"Black Feather Blood",name:"Black Feather Blood",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-19T10:15:03.064474Z"},{article_type:"organization",description:" A guild of mercenaries protecting caravan's.\nAround for 20 years or so. Part of the guild faction supporting Mordred. Used to be led by Orman Ethelwick until I killed him.",pk:14,name_full:"Bronze Hoof guild",name:"Bronze Hoof guild",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-12-06T21:19:17.466740Z"},{article_type:"organization",description:" A village made up of an unknown species, located somewhere in the desert hellscape we were telported to after our fight with Prince Somnis.\nRoughly somewhere upwards of 50 people in size,...",pk:41,name_full:"Bug people village",name:"Bug people village",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-31T12:53:45.845264Z"},{article_type:"organization",description:" The group of archangels that have their own stars. All of them have their own solar systems, as Lucifer's planetoid had.\nFen managed to find where Lucifer's star used to be. Fen...",pk:55,name_full:"Celestial Archangelic Beings",name:"Celestial Archangelic Beings",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-12T09:23:03.231654Z"},{article_type:"organization",description:" \nHolding more favour with the people than even that of the Aspen family, the Church of Brigantia has a presence in every common folks life. Their clerics care for the land...",pk:1,name_full:"Church of Brigantia",name:"Church of Brigantia",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:15:22.612710Z"},{article_type:"organization",description:" \nThis Church keeps mostly to itself and its worshipers, exercising as little force over others as possible, however in times of tense relations between the Dwarves of the mountain who supply...",pk:2,name_full:"Church of Dunatis",name:"Church of Dunatis",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:15:07.906083Z"},{article_type:"organization",description:" \nGeneral\nAdjudicators of battles. Healers of the wounded and in times gone by, hunters of the chaos touched who had given in to the power.\nThe Church of Morrigan has a bloody history,...",pk:3,name_full:"Church of Morrigan",name:"Church of Morrigan",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-21T18:46:34.125916Z"},{article_type:"organization",description:" \nThe Church of Silvanus holds power over the North in particular, where it's cathedral is located. The Church attracts many talented hunters and skilled explorers. The Church is in charge of...",pk:4,name_full:"Church of Silvanus",name:"Church of Silvanus",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:14:50.614549Z"},{article_type:"organization",description:" An institution designed to create a diverse and thus group of individuals from all stratum who will determine who will be the next King when no clear line of succession is...",pk:18,name_full:"Council Of Succession",name:"Council Of Succession",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-06-10T12:00:00.000000Z"},{article_type:"organization",description:" A group of scoundrels in Merren that are of key importance. Their leader is pretty well liked within the underground ecosystem, as they have the best scouts. She used to work...",pk:37,name_full:"Dock Hawks",name:"Dock Hawks",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-02T12:04:47.463005Z"},{article_type:"organization",description:" Were a group of dwarves from Fen's Era famed for their gems",pk:23,name_full:"Dwarrow {Status Unknown}",name:"Dwarrow {Status Unknown}",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-13T12:00:00.000000Z"}].map((entry=>({...entry,getAbsoluteRouterUrl:()=>"/organization/123"}))),dummyItems=[{article_type:"item",description:' These belong to head researcher Agrippina. They detail the complex we found an illithid base in. The core at the bottom is the "cold gold", a source of immense celestial power...',pk:159,name_full:"Abyssal Schematics",name:"Abyssal Schematics",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-11-22T20:59:00.832111Z"},{article_type:"item",description:" A book gained from the Academy Wing in Galway, specifically a small library room with 4 shelves and exotic birds.\nHas a strange humanoid shark person on the cover, which I know...",pk:149,name_full:"Academy Wing Book on Aboleths",name:"Academy Wing Book on Aboleths",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-11T21:41:23.089507Z"},{article_type:"item",description:" A set of adamantine plate that was on the violet storm when Murtagh acquired it.",pk:55,name_full:"Adamantine Plate",name:"Adamantine Plate",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-04-20T18:32:17.650720Z"},{article_type:"item",description:" An ornate lamp always hanging on Rhiannon's hip. It is larger on the inside, giving it enough space to be a beautiful home to Ahjuu as well as her complete collection...",pk:18,name_full:"Ahjuu's Lamp",name:"Ahjuu's Lamp",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-11-08T23:22:30.965195Z"},{article_type:"item",description:" \n\nTo those trusted few,\nI've left off the broken path, same as I did months ago when I left home. I told you all that I left to explore the world, make...",pk:31,name_full:"Ailis' Note To the Group",name:"Ailis' Note To the Group",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-11-26T12:29:09.444727Z"},{article_type:"item",description:" These originally 4 shards were found in the vault of the temple of Anubis. They are consumable items.\nAs a bonus action they transform into any melee weapon. They deal an additional...",pk:109,name_full:"Amber Shards {1}",name:"Amber Shards {1}",campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-18T18:16:49.305128Z"},{article_type:"item",description:" A magical strange cross-bow like weapon found in the ruins of Salus, specifically in a safe in the Oversight section.\nIt functions as a crossbow or a pistol would. It has 2...",pk:126,name_full:"Anti-matter pistol",name:"Anti-matter pistol",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-11-29T18:09:52.933907Z"},{article_type:"item",description:" Features\nIt is a +2 weapon, requires attunement to unsheathe.\nAs an action it can be drawn, strike and resheathe it. That acts as a steelwind-strike spell, can be done 1/week, any more...",pk:16,name_full:"Areppū",name:"Areppū",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-08-09T19:52:52.086208Z"},{article_type:"item",description:" A booklet that is synced up with Aridhel's personal diary. It updates itself every dawn and its contents are not to be shared. Through it she shares commands, information, personal musings...",pk:72,name_full:"Aridhel's booklet",name:"Aridhel's booklet",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-01-24T12:33:42.693831Z"},{article_type:"item",description:" Forged in the Anubis temple. +1 Studded leather armor.While attuned to it you can once per long rest cast Bless as a bonus action targeting only yourself, lasting 1 hour without...",pk:145,name_full:"Armor of Tears",name:"Armor of Tears",campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-02-21T22:23:59.974852Z"},{article_type:"item",description:" The sword that held Lancelot's soul previously, having a huge capacity for magical energies of 300 charges. It is currently inert (100/300). When anyone touches the sword while casting a spell...",pk:86,name_full:"Arondight",name:"Arondight",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-11-09T17:07:56.382942Z"},{article_type:"item",description:" A stake made of Aspenwood. If driven through the heart of a vampire, instead of killing them, it paralyzes them.",pk:98,name_full:"Aspenwood Stake",name:"Aspenwood Stake",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-06-13T07:42:18.707462Z"},{article_type:"item",description:" This glorious +3 axe is so full of magical energy it feels almost like it's about to burst to anyone with any magical sense in the vicinity. Rhiannon gained it by...",pk:94,name_full:"Axe of the dwarven lords",name:"Axe of the dwarven lords",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-25T19:55:17.102622Z"},{article_type:"item",description:" A legendary estoc.\n+2 magic weapon.\nOnce per long rest you can pick a nat 1 or nat 20. You can give one target you see that result.\nApparently causes the wielder to astral...",pk:136,name_full:"Balmung",name:"Balmung",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-04-25T21:26:33.807065Z"},{article_type:"item",description:" The lamp housing Barbatos, one of the unholy trine.",pk:53,name_full:"Barbatos' Lamp",name:"Barbatos' Lamp",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-11-27T20:55:18.201159Z"},{article_type:"item",description:" A belt bought in the Silver Thread by Murtagh.\nThe bell has a will of its own. While it can't move on its own, it can still be used to deliver touch...",pk:162,name_full:"Belt of the Serpent",name:"Belt of the Serpent",campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-03T21:03:12.303851Z"},{article_type:"item",description:" The assortment of gifts given by friends, acquaintances, and possible enemies on the wrong date celebrating Bathilde's birth.\nThese items include:\n\nA set of 7 rings given by Fen (3 black, 3 gold,...",pk:80,name_full:"Birthday gifts",name:"Birthday gifts",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-02-28T09:40:11.002694Z"},{article_type:"item",description:" A beautifully made item made of silver and jet to resemble a raven with a W.\nBestowed by King Mordred as a birthday gift and reward for getting the woad at least...",pk:79,name_full:"Blackfeather Necklace",name:"Blackfeather Necklace",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-02-18T23:50:29.413758Z"},{article_type:"item",description:" A moss that encourages blood clotting, helping to close up wounds quickly.",pk:9,name_full:"Blood Moss",name:"Blood Moss",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-06-10T12:00:00.000000Z"},{article_type:"item",description:" Author: Bertrand Holloway\nThe book covers death in culture in general. Also blackhounds and alternate explanation as to what they are. It referrences tar as a substance to compare thei blood of...",pk:20,name_full:"Book - Memento Mori",name:"Book - Memento Mori",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-22T12:00:00.000000Z"},{article_type:"item",description:" A leather-bound “book” that is more a collection of 19 trays, each containing a single scroll of a different spell. The spells it contains are denoted as:\n\n“Orb” (Chromatic Orb)\n“Cone” (Cone of...",pk:57,name_full:"Book of Spells",name:"Book of Spells",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-11-15T23:41:05.385738Z"},{article_type:"item",description:" This magical handaxe returns to its wielder at the end of a round after it has been thrown. It retains its normal range of 20/60. Bought from a Stricken blacksmith for...",pk:130,name_full:"Boomerang Axe",name:"Boomerang Axe",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-01-25T10:34:10.897765Z"}].map((entry=>({...entry,getAbsoluteRouterUrl:()=>"/item/123"}))),dummyDiaryentries=[{article_type:"diaryentry",description:" Back in my Era I was brought to the Dragon Chapel to help a cult of humans see if the dragon they worshipped would attain godhood as they believed, instead they...",pk:49,name_full:"Diary Entry #33 - I seened it",name:"I seened it",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-03-01T22:29:48.485561Z",session_details:{start_day:249,end_day:252,session_number:33,pk:47,is_main_session:!0,is_main_session_int:1},author_details:{pk:11,name:"Fen"}},{article_type:"diaryentry",description:" One of the first things I remembered being taught by Blaire once she took me in was about one of the biggest misconceptions surrounding following Silvanus. She mentioned while being in...",pk:31,name_full:"Diary Entry #14 - The Act of Companionship",name:"The Act of Companionship",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-09-29T14:05:05.003143Z",session_details:{start_day:83,end_day:111,session_number:14,pk:17,is_main_session:!0,is_main_session_int:1},author_details:{pk:10,name:"Caitriona"}},{article_type:"diaryentry",description:" After Caitriona had some dinner with her parents, Rhi and I grab Ciatriona and go on a walk. There we confront her with that she needs to make a choice regarding...",pk:109,name_full:"Diary Entry #105 - Interrogations",name:"Interrogations",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-03-28T18:06:55.686426Z",session_details:{start_day:void 0,end_day:void 0,session_number:105,pk:128,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Over the course of the long rest, we all do our own thing.\nCait organizes a fake ID as a merchant with Fen.\nMurtagh sources some blood through his vampire contacts, making it...",pk:108,name_full:"Diary Entry #104 - On to Douglas",name:"On to Douglas",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-03-28T18:03:29.282284Z",session_details:{start_day:void 0,end_day:void 0,session_number:104,pk:126,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Caitriona and Fen both chat with Merlin.\nCaitriona confides her worries about being the one responsible for plunging us all into an eternal war, given what she's seen. He calms her down,...",pk:107,name_full:"Diary Entry #103 - The death of the wizard of the present",name:"The death of the wizard of the present",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-02-21T20:26:29.164494Z",session_details:{start_day:void 0,end_day:void 0,session_number:103,pk:125,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" We try to move the ball, Rhi touches it, get's ashed by it. We decide to stay the night until she's back and figure out how we can further break this...",pk:106,name_full:"Diary Entry #102 - Working Title",name:"Working Title",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-02-14T20:31:38.010025Z",session_details:{start_day:void 0,end_day:void 0,session_number:102,pk:124,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Bathilde wakes up again and tells us what she learned, that she is a niece of Penwaithe and the last hair of the Pendraig family. Upon hearing that, Merlin jokingly makes...",pk:105,name_full:"Diary Entry #101 - Aurelian the Archmind",name:"Aurelian the Archmind",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-02-08T18:07:31.483248Z",session_details:{start_day:void 0,end_day:void 0,session_number:101,pk:123,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" We find ourselves in the Aspen Estate, owned by Lady Bathilde Aspen, basically Bathilde on a really, really bad trip.\nWe see Lady Bathilde Aspen, a suit jacket and a dress, red,...",pk:104,name_full:"Diary Entry #100 - Bathildes Bad Trip",name:"Bathildes Bad Trip",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-24T20:17:54.079619Z",session_details:{start_day:void 0,end_day:void 0,session_number:100,pk:122,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" With the giant angel, which turns out to be called an archaic defeated, we have a brief respite, meeting up with Morgana and Mordred to talk about our next steps and...",pk:103,name_full:"Diary Entry #99 - Debating Betrayal",name:"Debating Betrayal",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-17T21:01:57.152160Z",session_details:{start_day:void 0,end_day:void 0,session_number:99,pk:121,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Fen meets with Mordred. Mordred acknowledges we bombed an illithid encampment with their weapon and thanks us for it.\nThey talk shop and war logistics, pondering whether to remove people from other...",pk:102,name_full:"Diary Entry #98 - An attempt at recording again",name:"An attempt at recording again",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-10T20:19:27.864087Z",session_details:{start_day:void 0,end_day:void 0,session_number:98,pk:120,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Still breathing heavily Rhiannon's teleportation spell finishes and we find ourselves back in Etruscan, within the very familiar building of the guild of many steps.\nWith the life-and-death threat over, Rhi is...",pk:101,name_full:"Diary Entry #78 - Interrogating Hoert",name:"Interrogating Hoert",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-06-12T12:56:09.422027Z",session_details:{start_day:void 0,end_day:void 0,session_number:78,pk:100,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Within the strange world of Hotel California, our heroes, agents in a detective agency, work on solving a murder mystery on orders of madame, in a 1950's kinda city with guns...",pk:99,name_full:"Diary Entry #77 - Murder in Hotel California",name:"Murder in Hotel California",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-06-05T09:27:20.100114Z",session_details:{start_day:0,end_day:0,session_number:77,pk:98,is_main_session:!1,is_main_session_int:0},author_details:{pk:3,name:"isofruit"}},{article_type:"diaryentry",description:" The entire session consists solely of us fighting Hoert and his companions and creatures. Murtagh does send a message to Morgana at the start of the fight, asking what the fuck...",pk:100,name_full:"Diary Entry #77 - Fighting for Hoert",name:"Fighting for Hoert",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-06-05T09:40:53.082283Z",session_details:{start_day:360,end_day:360,session_number:77,pk:99,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" The day of the mission arrives (In the meantime I sent 2 bars of gold to the local church of Morrigan for funds) and we meet in the morning to talk...",pk:98,name_full:"Diary Entry #76 - Aspen Infiltration",name:"Aspen Infiltration",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-25T19:21:05.359068Z",session_details:{start_day:360,end_day:360,session_number:76,pk:97,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" The morning after last nights welcome in the grove approaches eventually. We spend a long part of the morning asking Merlin quite a lot of questions (see last session), drinking tea...",pk:97,name_full:"Diary Entry #75 - The party gets jailed!",name:"The party gets jailed!",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-15T22:08:53.463991Z",session_details:{start_day:351,end_day:353,session_number:75,pk:96,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" This session was held short and thus mostly a QA for various things. The following questions were asked / information was gained:\n\nIs there a dangerous chaos portal in the Firbolg cave?\n\nNo\n\n\nWould...",pk:96,name_full:"Diary Entry #74 - Merlin QA",name:"Merlin QA",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-14T21:23:08.230896Z",session_details:{start_day:351,end_day:351,session_number:74,pk:95,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" After licking our wounds for a bit and deciding to leave the crystal-entrapped people be, we take our leave. Though it's a bit odd when Murtagh suddenly manifests a sheathe for...",pk:95,name_full:"Diary Entry #73 - Space Elves!",name:"Space Elves!",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-01T10:20:22.069594Z",session_details:{start_day:346,end_day:351,session_number:73,pk:94,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" We follow Fen down the staircase into the bowels of whatever this secret space is. Soon enough we find another chamber. Its walls are of a brown stone, tinged with an...",pk:94,name_full:"Diary Entry #72 - Secrets underneath the Equinox Stones",name:"Secrets underneath the Equinox Stones",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-04-23T06:56:22.727834Z",session_details:{start_day:346,end_day:346,session_number:72,pk:93,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}}].map((entry=>({...entry,getAbsoluteRouterUrl:()=>"/diaryentry/123"}))),general_overview_stories={title:"DesignSystem/Templates/GeneralOverviewComponent",component:GeneralOverviewComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c],declarations:[]})],args:{serverUrl:"https://www.aldrune.com",entries:dummyCharacters,canCreate:!0,campaignName:"Aldrune",overviewType:"CHARACTER"}},Template=args=>({props:{...args,search:(0,dist.XI)("search"),loadArticlePage:(0,dist.XI)("loadArticlePage")}}),Default=Template.bind({});Default.args={};const Characters=Template.bind({});Characters.args={};const CharactersWithoutPlayerCharacters=Template.bind({});CharactersWithoutPlayerCharacters.args={entries:dummyCharacters.map((character=>({...character,player_character:!1})))};const Creatures=Template.bind({});Creatures.args={entries:[{article_type:"creature",description:"A wolf infused by chaos. The final stage of its transformation into a being that embodies chaos. Can teleport and whip its tentacles around.",pk:3,name:"Chaos Wolf - Stage 3",name_full:"Chaos Wolf - Stage 3",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-06-10T12:00:00.000000Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"Chimeras are unnatural magical amalgamations of other creatures, such as dragons, lions and goats. These creatures were created by the academy once upon a time through dragon's blood, back in the...",pk:16,name:"Chimera",name_full:"Chimera",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-01-01T15:53:09.343803Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"Wyverns in general are creatures that work with venoms. However, coastal wyverns are more brutish than there more inland-cousins. They rely on shock-tactics and frontal assaults to kill their prety, using...",pk:10,name:"Coastal Wyvern",name_full:"Coastal Wyvern",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-01T16:56:12.663451Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"Devils are a wide spread group of creatures. They, particularly the warrior devils among them, define themselves almost entirely by participating in the bloodwar.\nThose that do not participate are ostracized as...",pk:14,name:"Devil Outcasts",name_full:"Devil Outcasts",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-09-09T15:08:52.261056Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"Dragons are less creatures and more forces of nature. It would be more apt to describe them to a sentient storm or earthquake in scale of their power than to a...",pk:8,name:"Dragons",name_full:"Dragons",campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-24T11:29:37.226502Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"A gigantic type of worm that appears to reside within the ashen grey plane north of the dried out riverbed. We have seen one of them in there so far. Distinctly...",pk:23,name:"Gargantuan Dune Worm",name_full:"Gargantuan Dune Worm",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-26T17:27:54.172382Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"A bat like creature the size of a man. Bat-like wings, but also faceless. It evades divine sense and can't be seen normally. Does disappear at the sight of daylight apparently....",pk:34,name:"Gaunt",name_full:"Gaunt",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-01-18T20:17:04.487036Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"A creature first encountered in the marsh-waters of the Wildheart Woodlands near the hag's camp. Massively oversized leeches, easily reaching the size of a wolf that are luckily blind, but easily...",pk:18,name:"Giant Leech",name_full:"Giant Leech",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-01-07T19:05:49.047964Z",getAbsoluteRouterUrl:()=>"/creature/123"}],overviewType:"CREATURE"};const Locations=Template.bind({});Locations.args={entries:dummyLocations,overviewType:"LOCATION"};const Organizations=Template.bind({});Organizations.args={entries:dummyOrganizations,overviewType:"ORGANIZATION"};const Items=Template.bind({});Items.args={entries:dummyItems,overviewType:"ITEM"};const Diaryentries=Template.bind({});Diaryentries.args={entries:dummyDiaryentries,overviewType:"DIARYENTRY"};const __namedExportsOrder=["Default","Characters","CharactersWithoutPlayerCharacters","Creatures","Locations","Organizations","Items","Diaryentries"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Default.parameters?.docs?.source}}},Characters.parameters={...Characters.parameters,docs:{...Characters.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Characters.parameters?.docs?.source}}},CharactersWithoutPlayerCharacters.parameters={...CharactersWithoutPlayerCharacters.parameters,docs:{...CharactersWithoutPlayerCharacters.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...CharactersWithoutPlayerCharacters.parameters?.docs?.source}}},Creatures.parameters={...Creatures.parameters,docs:{...Creatures.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Creatures.parameters?.docs?.source}}},Locations.parameters={...Locations.parameters,docs:{...Locations.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Locations.parameters?.docs?.source}}},Organizations.parameters={...Organizations.parameters,docs:{...Organizations.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Organizations.parameters?.docs?.source}}},Items.parameters={...Items.parameters,docs:{...Items.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Items.parameters?.docs?.source}}},Diaryentries.parameters={...Diaryentries.parameters,docs:{...Diaryentries.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Diaryentries.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/image-card/image-card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n position: relative;\n display: block;\n}\n\n.card {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.card--active {\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 3;\n box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 0, 0, 0.6), 0 10px 20px rgba(0, 0, 0, 0.8);\n}\n@media (min-width: 992px) {\n .card--active {\n transition: transform ease-in-out 0.2s;\n transform: scale(1.2);\n }\n}\n.card--active .card__img-container {\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n.card--active .card__img-link {\n flex: 1;\n display: flex;\n}\n.card--active .card-img-top {\n max-width: 100%;\n height: 40vh;\n max-height: unset;\n object-fit: scale-down;\n object-position: top;\n}\n.card--active .card-body {\n flex: unset;\n}\n.card-body {\n padding: var(--spacer-3);\n}\n.card-title {\n margin-bottom: var(--spacer-0);\n text-align: center;\n}\n@media (min-width: 768px) {\n .card__title-link {\n text-decoration: none;\n }\n}\n.card__img-container {\n flex: 1;\n position: relative;\n}\n.card-img-top {\n object-fit: cover;\n max-height: 7rem;\n transition: 0.5s height;\n}\n.card__img-close-btn {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n top: var(--spacer-2);\n right: var(--spacer-2);\n background-color: var(--bs-dark);\n --btn-pad: var(--spacer-2);\n padding: var(--btn-pad) var(--btn-pad) var(--btn-pad) calc(var(--btn-pad) + 0.25rem);\n border-radius: 50%;\n z-index: 2;\n}\n@media (min-width: 768px) {\n .card__img-close-btn {\n display: none;\n }\n}\n.card__img-selectors {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n margin-top: var(--spacer-2);\n margin-bottom: var(--spacer-2);\n gap: var(--spacer-2);\n}\n.card__img-selector {\n border-radius: 50%;\n padding: var(--spacer-1) var(--spacer-2);\n border: var(--bs-dark) 2px solid;\n background-color: var(--bs-secondary);\n}\n.card__img-selector--active {\n background-color: var(--bs-dark);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/filter-list/filter-list.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".filter__input {\n background-color: transparent;\n border: 1px var(--bs-white) solid;\n border-radius: var(--bs-border-radius);\n padding: var(--spacer-0) var(--spacer-3);\n margin-top: var(--spacer-2);\n margin-bottom: var(--spacer-4);\n width: 100%;\n height: var(--spacer-5);\n color: var(--bs-white);\n}\n.filter__input:focus {\n background: rgba(255, 255, 255, 0.1);\n border-color: var(--bs-white);\n box-shadow: 0 0 0 2px var(--bs-white);\n}\n\n.letter-list {\n padding-top: var(--spacer-4);\n padding-bottom: var(--spacer-4);\n border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);\n}\n.letter-list__heading {\n margin-bottom: var(--spacer-0);\n}\n.letter-list__list {\n list-style-type: disclosure-closed;\n margin-bottom: var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/general-overview/general-overview.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".overview__page-heading {\n margin-bottom: var(--spacer-4);\n padding-bottom: var(--spacer-1);\n border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);\n}\n.overview__create {\n margin-bottom: var(--spacer-3);\n}\n.overview__home {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n width: fit-content;\n}\n.overview__image {\n width: 100%;\n max-height: 23rem;\n max-width: 100%;\n object-fit: cover;\n object-position: bottom;\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n margin-bottom: var(--spacer-4);\n}\n.overview__player-card {\n min-height: 12.5rem;\n margin-bottom: var(--spacer-4);\n}\n\n.player-card__link {\n text-decoration: none;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-general-overview-general-overview-stories.ead7f681.iframe.bundle.js b/design-templates-general-overview-general-overview-stories.ead7f681.iframe.bundle.js
new file mode 100644
index 000000000..3d307413c
--- /dev/null
+++ b/design-templates-general-overview-general-overview-stories.ead7f681.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[7689],{"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/image-card/image-card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{f:()=>ImageCardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var image_card_componentngResource=__webpack_require__("./src/design/molecules/image-card/image-card.component.scss?ngResource"),image_card_componentngResource_default=__webpack_require__.n(image_card_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs_interop=__webpack_require__("./node_modules/@angular/core/fesm2022/rxjs-interop.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),Subject=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Subject.js"),merge=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/merge.js"),fromEvent=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),tap=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/tap.js"),filter=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/filter.js"),debounceTime=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js"),startWith=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/startWith.js"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let ImageCardComponent=class ImageCardComponent{constructor(){this.serverUrl=core.input.required(),this.fallbackUrl=(0,core.input)(),this.imageUrls=core.input.required({transform:value=>value?Array.isArray(value)?value:[value]:[]}),this.link=(0,core.input)(),this.text=core.input.required(),this.alt=(0,core.input)(),this.currentImageIndex=(0,core.signal)(0),this.currentImage=(0,core.computed)((()=>this.imageUrls()[this.currentImageIndex()]??this.fallbackUrl())),this.elementRef=(0,core.inject)(core.ElementRef),this.selectorClicked$=new Subject.B,this.closeBtnClicked$=new Subject.B,this.openBtnClicked$=new Subject.B,this.inFocus=(0,rxjs_interop.ot)((0,merge.h)((0,fromEvent.R)(this.elementRef.nativeElement,"focusin").pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("focusin")))),(0,fromEvent.R)(this.elementRef.nativeElement,"focusout").pipe((0,filter.p)((event=>this.hasDataAttributeInTree(event,"[data-register-focus]"))),(0,tap.M)((evt=>console.log("focusout",evt))),(0,map.T)((()=>!1))),(0,fromEvent.R)(this.elementRef.nativeElement,"mouseenter").pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("mouseenter")))),(0,fromEvent.R)(this.elementRef.nativeElement,"mouseleave").pipe((0,map.T)((()=>!1)),(0,tap.M)((()=>console.log("mouseleave")))),(0,fromEvent.R)(this.elementRef.nativeElement,"click").pipe((0,filter.p)((event=>!this.hasDataAttributeInTree(event,"[data-ignore-click]"))),(0,map.T)((()=>!0))),this.selectorClicked$.pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("selector-click")))),this.openBtnClicked$.pipe((0,map.T)((()=>!0)),(0,tap.M)((()=>console.log("open-click")))),this.closeBtnClicked$.pipe((0,map.T)((()=>!1)),(0,tap.M)((()=>console.log("close-click"))))).pipe((0,debounceTime.B)(50),(0,startWith.Z)(!1))),this.selectorClicked$.pipe((0,rxjs_interop.pQ)()).subscribe((({event,index})=>this.onSelectorClick(index,event)))}onSelectorClick(newIndex,event){this.currentImageIndex.set(newIndex),event.preventDefault()}hasDataAttributeInTree(event,attr){const target=event.target;if(!(target instanceof Element))return!0;return null!=target.closest(attr)}static{this.ctorParameters=()=>[]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],fallbackUrl:[{type:core.Input,args:[{isSignal:!0,alias:"fallbackUrl",required:!1,transform:void 0}]}],imageUrls:[{type:core.Input,args:[{isSignal:!0,alias:"imageUrls",required:!0,transform:void 0}]}],link:[{type:core.Input,args:[{isSignal:!0,alias:"link",required:!1,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],alt:[{type:core.Input,args:[{isSignal:!0,alias:"alt",required:!1,transform:void 0}]}]}}};ImageCardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-image-card",template:'\n @if (currentImage()) {\n
\n }\n
\n @if (imageUrls().length > 1) {\n
\n @for (_ of imageUrls(); track $index) {\n \n {{ $index + 1 }}\n \n }\n
\n }\n
\n \n {{ text() }}\n \n \n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[router.Wk,button_component.Q,common.AsyncPipe],host:{"[class.card--active]":"inFocus()"},styles:[image_card_componentngResource_default()]})],ImageCardComponent)},"./src/design/organisms/filter-list/filter-list.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{q:()=>FilterListComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var filter_list_componentngResource=__webpack_require__("./src/design/organisms/filter-list/filter-list.component.scss?ngResource"),filter_list_componentngResource_default=__webpack_require__.n(filter_list_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),object=__webpack_require__("./src/utils/object.ts");let GroupByFirstLetterPipe=class GroupByFirstLetterPipe{transform(itemArray,field){const groupedObj=itemArray.reduce(((accumulator,item)=>{const firstLetter=item[field][0];return accumulator.hasOwnProperty(firstLetter)?accumulator[firstLetter].push(item):accumulator[firstLetter]=[item],accumulator}),{});return Object.keys(groupedObj).map((key=>({key,value:groupedObj[key]}))).sort(((a,b)=>a.key>b.key?1:-1))}};GroupByFirstLetterPipe=(0,tslib_es6.Cg)([(0,core.Pipe)({name:"groupByFirstLetter",standalone:!0})],GroupByFirstLetterPipe);let GroupByPipe=class GroupByPipe{transform(itemArray,groupProp,subSortProp,reverse=!1){const groupedObj=itemArray.reduce(((accumulator,item)=>{const groupedFieldValue=(0,object.p)(item,groupProp);return accumulator.hasOwnProperty(groupedFieldValue)?accumulator[groupedFieldValue].push(item):accumulator[groupedFieldValue]=[item],accumulator}),{}),sortedGroupArray=Object.keys(groupedObj).map((key=>({key,value:groupedObj[key]}))).sort(((group1,group2)=>group1.key.toLowerCase(){const groupEntries=group.value;group.value=this.sortGroup(groupEntries,subSortProp)})),reverse?sortedGroupArray.reverse():sortedGroupArray}sortGroup(group,propertyPath){return group.sort(((val1,val2)=>{let sortValue1=(0,object.p)(val1,propertyPath);const isStringProperty="string"==typeof sortValue1;isStringProperty&&(sortValue1=sortValue1.toLowerCase());let sortValue2=(0,object.p)(val2,propertyPath);return isStringProperty&&(sortValue2=sortValue2.toLowerCase()),sortValue1{const filterValue=this.filterValue()?.toLowerCase();return null==filterValue||""===filterValue?this.entries():this.entries().filter((entry=>entry[this.labelProp()].toLowerCase().includes(filterValue)))})),this.mode=(0,core.computed)((()=>this.groupProp()?"PROPERTY":"LETTER"))}openFirstArticle(event){event.preventDefault();if(!(this.displayEntries().length>0))return;const entry=this.displayEntries()[0];this.routing.navigateByUrl(entry.link)}static{this.ctorParameters=()=>[{type:router.Ix}]}static{this.propDecorators={entries:[{type:core.Input,args:[{isSignal:!0,alias:"entries",required:!0,transform:void 0}]}],labelProp:[{type:core.Input,args:[{isSignal:!0,alias:"labelProp",required:!0,transform:void 0}]}],heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!0,transform:void 0}]}],groupProp:[{type:core.Input,args:[{isSignal:!0,alias:"groupProp",required:!1,transform:void 0}]}],forceSingleLine:[{type:core.Input,args:[{isSignal:!0,alias:"forceSingleLine",required:!1,transform:void 0}]}]}}};FilterListComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-filter-list",template:'\n\n\n @for (\n itemLetterEntries of displayEntries() | groupByFirstLetter: labelProp();\n track $index\n ) {\n \n \x3c!-- Letter Heading --\x3e\n @if (filterInputElement.value.length === 0) {\n
\n {{ itemLetterEntries.key }}\n \n }\n\n \x3c!-- Article List --\x3e\n
\n
\n }\n \n\n\n @let groupPropVal = groupProp();\n @if (groupPropVal) {\n @for (\n itemLetterEntries of displayEntries()\n | groupBy: groupPropVal : "session_details.session_number";\n track $index\n ) {\n \n \x3c!-- Letter Heading --\x3e\n @if (filterInputElement.value.length === 0) {\n
\n {{ itemLetterEntries.key }}\n \n }\n\n \x3c!-- Article List --\x3e\n
\n
\n }\n }\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[GroupByFirstLetterPipe,common.NgClass,GroupByPipe,router.Wk,common.NgTemplateOutlet],styles:[filter_list_componentngResource_default()]})],FilterListComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{B:()=>debounceTime});var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/scheduler/async.js"),_util_lift__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/util/lift.js"),_OperatorSubscriber__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js");function debounceTime(dueTime,scheduler){return void 0===scheduler&&(scheduler=_scheduler_async__WEBPACK_IMPORTED_MODULE_0__.E),(0,_util_lift__WEBPACK_IMPORTED_MODULE_1__.N)((function(source,subscriber){var activeTask=null,lastValue=null,lastTime=null,emit=function(){if(activeTask){activeTask.unsubscribe(),activeTask=null;var value=lastValue;lastValue=null,subscriber.next(value)}};function emitWhenIdle(){var targetTime=lastTime+dueTime,now=scheduler.now();if(now{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Characters:()=>Characters,CharactersWithoutPlayerCharacters:()=>CharactersWithoutPlayerCharacters,Creatures:()=>Creatures,Default:()=>Default,Diaryentries:()=>Diaryentries,Items:()=>Items,Locations:()=>Locations,Organizations:()=>Organizations,__namedExportsOrder:()=>__namedExportsOrder,default:()=>general_overview_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var general_overview_componentngResource=__webpack_require__("./src/design/templates/general-overview/general-overview.component.scss?ngResource"),general_overview_componentngResource_default=__webpack_require__.n(general_overview_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),image_card_component=__webpack_require__("./src/design/molecules/image-card/image-card.component.ts"),filter_list_component=__webpack_require__("./src/design/organisms/filter-list/filter-list.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts");let GeneralOverviewComponent=class GeneralOverviewComponent{constructor(routingService){this.routingService=routingService,this.OVERVIEW_IMAGE_MAP={CHARACTER:"/assets/overview_images/characters.webp",CREATURE:"/assets/overview_images/creatures.webp",DIARYENTRY:"/assets/overview_images/diaryentries.webp",ITEM:"/assets/overview_images/items.webp",LOCATION:"/assets/overview_images/locations.webp",ORGANIZATION:"/assets/overview_images/organizations.webp"},this.serverUrl=core.input.required(),this.overviewType=core.input.required(),this.entries=core.input.required(),this.campaignName=core.input.required(),this.canCreate=core.input.required(),this.defaultPlayerCharacterImage="assets/default_images/icon_default.webp",this.displayEntries=(0,core.computed)((()=>{switch(this.overviewType()){case"CHARACTER":return this.getCharacterEntries(this.entries());case"DIARYENTRY":return this.getDiaryEntryEntries(this.entries());case"LOCATION":return this.getLocationEntries(this.entries());default:return this.entries().map((entry=>({...entry,link:entry.getAbsoluteRouterUrl()})))}})),this.playerCharacters=(0,core.computed)((()=>{if("CHARACTER"===this.overviewType())return this.entries().filter((entry=>entry.player_character))})),this.homeUrl=(0,core.computed)((()=>this.routingService.getRoutePath("home",{campaign:this.campaignName}))),this.overviewTypeName=(0,core.computed)((()=>this.overviewType().toLocaleLowerCase()))}getCharacterEntries(entries){return entries.filter((entry=>!entry.player_character)).map((entry=>({...entry,link:entry.getAbsoluteRouterUrl()})))}getDiaryEntryEntries(entries){return entries.map((diaryEntry=>({...diaryEntry,name_full:this.buildDiaryEntryNameForList(diaryEntry),link:diaryEntry.getAbsoluteRouterUrl()})))}buildDiaryEntryNameForList(diaryEntry){const startWithSessionNumber=`#${diaryEntry.session_details?.session_number}`;let title=null!=diaryEntry.name?`- ${diaryEntry.name}`:"";let daysCoveredByEntry="";if(null!=diaryEntry.session_details?.start_day&&null!=diaryEntry.session_details.end_day){const padLength=3;daysCoveredByEntry=`- Days ${this.padNumber(diaryEntry.session_details.start_day,padLength,"")}-${this.padNumber(diaryEntry.session_details.end_day,padLength,"")}`}return`${startWithSessionNumber} ${daysCoveredByEntry} ${title}`}getLocationEntries(entries){return entries.map((locationEntry=>{const locationPath=this.getParentLocations(locationEntry,entries).map((location=>location.name)).reverse().join(" - ");return{...locationEntry,name_full:locationPath,link:locationEntry.getAbsoluteRouterUrl()}})).sort(((location1,location2)=>location1.name_full>location2.name_full?1:-1))}getParentLocations(location,listItems){const parents=[location];for(var currentLocation=location,hasParentLocation=null!=currentLocation.parent_location_details?.pk;hasParentLocation;){const parentLocationPk=currentLocation.parent_location_details?.pk,parentLocation=listItems.find((entry=>entry.pk===parentLocationPk));if(null==parentLocation)break;parents.push(parentLocation),currentLocation=parentLocation,hasParentLocation=null!=currentLocation.parent_location_details?.pk}return parents}padNumber(num,padCount,paddingCharacter="0"){return(paddingCharacter.repeat(padCount)+num).slice(-1*padCount)}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],overviewType:[{type:core.Input,args:[{isSignal:!0,alias:"overviewType",required:!0,transform:void 0}]}],entries:[{type:core.Input,args:[{isSignal:!0,alias:"entries",required:!0,transform:void 0}]}],campaignName:[{type:core.Input,args:[{isSignal:!0,alias:"campaignName",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}]}}};GeneralOverviewComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-general-overview",template:'\n \n \x3c!-- Heading --\x3e\n @if (overviewTypeName()) {\n \n
\n @switch (overviewType()) {\n @case ("CHARACTER") {\n Characters\n }\n @case ("LOCATION") {\n Locations\n }\n @case ("ITEM") {\n Items\n }\n @case ("ORGANIZATION") {\n Organizations\n }\n @case ("CREATURE") {\n Creatures\n }\n @case ("DIARYENTRY") {\n Diaryentries\n }\n @default {\n Entries\n }\n }\n \n \n }\n\n \n @switch (overviewType()) {\n @case ("CHARACTER") {\n 0)\n ? characterHeading\n : defaultHeading\n "\n />\n }\n @default {\n \n }\n }\n
\n\n \x3c!-- Adding Item button --\x3e\n @if (canCreate()) {\n \n }\n\n \n @switch (overviewType()) {\n @case ("CHARACTER") {\n \n }\n @case ("DIARYENTRY") {\n \n }\n @default {\n \n }\n }\n
\n\n \x3c!-- Footer --\x3e\n \n \n \n\n\n \x3c!-- Image --\x3e\n \n \n\n\n Player Characters \n\n \n @for (playerCharacter of playerCharacters(); track playerCharacter.name) {\n
\n
\n @if (playerCharacter.images) {\n
\n }\n
\n
\n }\n
\n \n\n\n Non-Player Characters \n\n \n \n\n\n \n \n\n\n \n \n',standalone:!0,imports:[page_container_component.i,common.NgTemplateOutlet,router.Wk,button_component.Q,image_card_component.f,filter_list_component.q,common.TitleCasePipe],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[general_overview_componentngResource_default()]})],GeneralOverviewComponent);const dummyCharacters=[{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gandalf",pk:1,name_full:"Gandalf the Grey",player_character:!0,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Frodo",pk:2,name_full:"Frodo Baggins",player_character:!0,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gimli",pk:3,name_full:"Gimli son of Glóin",player_character:!1,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Legolas",pk:4,name_full:"Legolas Greenleaf",player_character:!1,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Bilbo",pk:5,name_full:"Bilbo Baggins",player_character:!1,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Aragorn",pk:6,name_full:"Aragorn son of Arathorn",player_character:!1,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Saruman",pk:7,name_full:"Saruman the White",player_character:!1,images:[],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Sif",pk:18,name_full:"Sif the Swift",description:"Sif is a skilled warrior known for her lightning-fast strikes and agility. She is fiercely loyal to her friends and will stop at nothing to protect them.",update_datetime:"2022-03-15T10:30:00.000Z",player_character:!0,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Gorin",pk:19,name_full:"Gorin Ironfist",description:"Gorin is a dwarf from the Iron Hills, known for his strength and unwavering determination. He has a fondness for ale and a good brawl.",update_datetime:"2022-02-23T14:15:00.000Z",player_character:!0,images:["/assets/default_images/background_default.webp","/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}},{getAbsoluteRouterUrl:()=>"/search/character/123",article_type:"Character",name:"Lirien",pk:20,name_full:"Lirien Windrider",description:"Lirien is an elven archer, renowned for her skill with the bow. She is fiercely independent and often clashes with authority figures.",update_datetime:"2022-03-20T08:45:00.000Z",player_character:!0,images:["/assets/default_images/background_default.webp"],campaign_details:{name:"Aldrune",id:1}}],dummyLocations=[{article_type:"location",description:" The ocean east of Aldrune, now accessible through the path carved by the world serpent.",pk:206,name_full:"Eastern sea",name:"Eastern sea",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-11-12T20:20:56.008470Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A town on the eastern edge of Aldrune.",pk:25,name_full:"Eastfife",name:"Eastfife",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.493763Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The civilization that created it and structures on the island of heroes were known for their anti-magic. They suppressed the magical abilities of everybody and then beat them on that non-magical...",pk:272,name_full:"Elevator",name:"Elevator",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-12-06T21:35:20.848467Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A small village, farming community, near the equinox stones. Very reminiscent of Willow before it burned down.",pk:257,name_full:"Equinia",name:"Equinia",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-04-16T14:50:13.971556Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A place of standing stones mentioned by Kace. They are said to have sealed away chaos and a creature of the black blood.\nThere's a saying surrounding it that we were told...",pk:35,name_full:"Equinox Stones",name:"Equinox Stones",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-04-16T15:59:17.118115Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The capital of Aldrune, guarded by Mannan's Gullet.",pk:11,name_full:"Etruscan",name:"Etruscan",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.509444Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" Headquarters of the Whisper-Rend Blood.",pk:15,name_full:"Farhold",name:"Farhold",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.515376Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The Farmland of Etruscan located in the upper dirtside. Not in use during winter and thus used as grounds for festivals such as Winter Solstice.",pk:173,name_full:"Etruscan - Upper Dirtside - Farmland",name:"Farmland",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-02-14T14:12:03.252267Z",parent_location_details:{pk:97,name:"Upper Dirtside",name_full:"Upper Dirtside",parent_location:"Etruscan"},parent_location:97},{article_type:"location",description:" The house in which Felicia Foghound and her adjutants used to sleep during the day. It now sports several holes from our encounter with her where Murtagh blew the walls open...",pk:185,name_full:"Merren - Mud lands - Felicia Foghounds Manor",name:"Felicia Foghounds Manor",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-06-20T18:18:40.578499Z",parent_location_details:{pk:183,name:"Mud lands",name_full:"Mud lands",parent_location:"Merren"},parent_location:183},{article_type:"location",description:" A shop to buy metal goods from, armor and weapon. Recommended by Trumble.",pk:66,name_full:"Hallan - Fellhammer",name:"Fellhammer",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:58:13.279086Z",parent_location_details:{pk:3,name:"Hallan",name_full:"Hallan",parent_location:1},parent_location:3},{article_type:"location",description:" ",pk:22,name_full:"Felliman Bay",name:"Felliman Bay",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.521416Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" ",pk:21,name_full:"Fellman",name:"Fellman",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.527967Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A place that, according to Fen, was created by the Firbolg, who ruled the land before the Hobgoblins came. The black chaos griffon escaped towards this place and bled out here.\nRanger's...",pk:19,name_full:"Firbolg Cliff Face",name:"Firbolg Cliff Face",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:34:19.534127Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A ship made of - at least to some degree - enchanted whalebone, allowing it to fly. They do not pay tribute to Manannan and Manannan can not find them as...",pk:193,name_full:"Flying Whalebone Ship",name:"Flying Whalebone Ship",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-31T11:53:53.751627Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A very high-class inn owned by Fraich, an elven companion of Forallian.\nThe atmosphere is of one that would fit to old war-buddies exchanging stories or bygone sea-captains telling stories of old...",pk:135,name_full:"Etruscan - Guild Quarters - Fraich Arc",name:"Fraich Arc",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-03-09T21:56:27.502563Z",parent_location_details:{pk:126,name:"Guild Quarters",name_full:"Guild Quarters",parent_location:"Etruscan"},parent_location:126},{article_type:"location",description:" A mountain range, part of which is Frank. The cave of Barbatos is located here, guarded by him.",pk:162,name_full:"Frank's Mountain Range",name:"Frank's Mountain Range",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-11-27T20:44:06.734835Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" An inn down the road of the fancyful ferret. We slept there after our first outing in the fancyful ferret. Fairly expensive.",pk:78,name_full:"Loom Arrow - Galdian",name:"Galdian",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-23T10:58:13.443928Z",parent_location_details:{pk:5,name:"Loom Arrow",name_full:"Loom Arrow",parent_location:1},parent_location:5},{article_type:"location",description:" A hidden village in the east of Aldrune. They make draconic glass and have a strong ties to dragons.\nThe O'Dyny settled with them for a time, but then split off after...",pk:267,name_full:"Gallowglass",name:"Gallowglass",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-08-30T20:34:09.958811Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The New Capital of Fen's High Kingdom\n \nGalway City Breakdown\nEastern Lakeway - 15 BuildingsWestern Lakeway - 40 BuildingsMyria Island - 7 BuildingsRiver District - 46 Buildings, several temporary Refugee SheltersForest District -...",pk:50,name_full:"Galway",name:"Galway",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-31T16:10:30.061953Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A location in the Galway region, a small settlement once, not really known for much but being traders with the Dwarrow",pk:46,name_full:"Teeth of Galway - Glenrie Ruins",name:"Glenrie Ruins",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-09-13T10:55:52.560792Z",parent_location_details:{pk:146,name:"Teeth of Galway",name_full:"Teeth of Galway",parent_location:1},parent_location:146},{article_type:"location",description:" A rocky beach, consists mostly of pebbles and has a lot of shellfish.",pk:101,name_full:"Etruscan - Glimhorgan Beach",name:"Glimhorgan Beach",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-24T08:09:06.600687Z",parent_location_details:{pk:11,name:"Etruscan",name_full:"Etruscan",parent_location:1},parent_location:11},{article_type:"location",description:" A mountainrange in the southeast corner Aldrune. In it's southern portion is a Volcano created by a young Fen",pk:24,name_full:"God Peaks",name:"God Peaks",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-25T07:05:26.382064Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" The iron heart of aldrune, center of all forging activities here and key for metal equipment and tool supply chains. Currently headquarters of the stricken blood.",pk:13,name_full:"Godrick Vale",name:"Godrick Vale",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-29T10:34:03.945996Z",parent_location_details:{pk:1,name:"none",name_full:"none",parent_location:1},parent_location:1},{article_type:"location",description:" A statue of the blackhound, that Bathilde commissioned from Shale.",pk:169,name_full:"Etruscan - Guild Quarters - Public Docks and Fishing Werfs - Wooden Statue of the Blackhound",name:"Wooden Statue of the Blackhound",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-01-24T11:25:58.611061Z",parent_location_details:{pk:111,name:"Public Docks and Fishing Werfs",name_full:"Public Docks and Fishing Werfs",parent_location:"Guild Quarters"},parent_location:111},{article_type:"location",description:' A place where the last king of the storm giants used to house, waiting for their moment to make a return.\nAlso called "Odin\'s hold".',pk:176,name_full:"Aldrunian Sea - Wound of the world",name:"Wound of the world",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-11-02T19:15:45.515776Z",parent_location_details:{pk:157,name:"Aldrunian Sea",name_full:"Aldrunian Sea",parent_location:1},parent_location:157}].map((loc=>({...loc,getAbsoluteRouterUrl:()=>"/location/123"}))),dummyOrganizations=[{article_type:"organization",description:" Magic is Chaos and sometimes people are in touch with this force. Though understanding and control we order the Chaos. It is only when we allow it to overcome us that...",pk:17,name_full:"Academy Of Schools",name:"Academy Of Schools",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-12T15:33:07.176299Z"},{article_type:"organization",description:" The ruling family of Hallan. Loyal to Duke Aspen. Somewhat politically powerful as Hallan is an important trading post. Further make an effort to be very presentable and are well-practiced in...",pk:13,name_full:"Affingtons",name:"Affingtons",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-12-22T16:40:48.834877Z"},{article_type:"organization",description:" The Aspen blood line is one of the main noble blood lines in Aldrune.\nTheir innate ability to sense motion and vibration has led to them being excellent hunters in the dark...",pk:5,name_full:"Aspen Blood",name:"Aspen Blood",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-11T16:55:59.479546Z"},{article_type:"organization",description:" \nThe black feather blood line is one of the main noble blood lines in Aldrune.\nThose of this lineage have innate control over animals and can communicate with them freely and without...",pk:6,name_full:"Black Feather Blood",name:"Black Feather Blood",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-19T10:15:03.064474Z"},{article_type:"organization",description:" A guild of mercenaries protecting caravan's.\nAround for 20 years or so. Part of the guild faction supporting Mordred. Used to be led by Orman Ethelwick until I killed him.",pk:14,name_full:"Bronze Hoof guild",name:"Bronze Hoof guild",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-12-06T21:19:17.466740Z"},{article_type:"organization",description:" A village made up of an unknown species, located somewhere in the desert hellscape we were telported to after our fight with Prince Somnis.\nRoughly somewhere upwards of 50 people in size,...",pk:41,name_full:"Bug people village",name:"Bug people village",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-31T12:53:45.845264Z"},{article_type:"organization",description:" The group of archangels that have their own stars. All of them have their own solar systems, as Lucifer's planetoid had.\nFen managed to find where Lucifer's star used to be. Fen...",pk:55,name_full:"Celestial Archangelic Beings",name:"Celestial Archangelic Beings",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-12T09:23:03.231654Z"},{article_type:"organization",description:" \nHolding more favour with the people than even that of the Aspen family, the Church of Brigantia has a presence in every common folks life. Their clerics care for the land...",pk:1,name_full:"Church of Brigantia",name:"Church of Brigantia",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:15:22.612710Z"},{article_type:"organization",description:" \nThis Church keeps mostly to itself and its worshipers, exercising as little force over others as possible, however in times of tense relations between the Dwarves of the mountain who supply...",pk:2,name_full:"Church of Dunatis",name:"Church of Dunatis",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:15:07.906083Z"},{article_type:"organization",description:" \nGeneral\nAdjudicators of battles. Healers of the wounded and in times gone by, hunters of the chaos touched who had given in to the power.\nThe Church of Morrigan has a bloody history,...",pk:3,name_full:"Church of Morrigan",name:"Church of Morrigan",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-21T18:46:34.125916Z"},{article_type:"organization",description:" \nThe Church of Silvanus holds power over the North in particular, where it's cathedral is located. The Church attracts many talented hunters and skilled explorers. The Church is in charge of...",pk:4,name_full:"Church of Silvanus",name:"Church of Silvanus",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-03T16:14:50.614549Z"},{article_type:"organization",description:" An institution designed to create a diverse and thus group of individuals from all stratum who will determine who will be the next King when no clear line of succession is...",pk:18,name_full:"Council Of Succession",name:"Council Of Succession",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-06-10T12:00:00.000000Z"},{article_type:"organization",description:" A group of scoundrels in Merren that are of key importance. Their leader is pretty well liked within the underground ecosystem, as they have the best scouts. She used to work...",pk:37,name_full:"Dock Hawks",name:"Dock Hawks",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-02T12:04:47.463005Z"},{article_type:"organization",description:" Were a group of dwarves from Fen's Era famed for their gems",pk:23,name_full:"Dwarrow {Status Unknown}",name:"Dwarrow {Status Unknown}",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-13T12:00:00.000000Z"}].map((entry=>({...entry,getAbsoluteRouterUrl:()=>"/organization/123"}))),dummyItems=[{article_type:"item",description:' These belong to head researcher Agrippina. They detail the complex we found an illithid base in. The core at the bottom is the "cold gold", a source of immense celestial power...',pk:159,name_full:"Abyssal Schematics",name:"Abyssal Schematics",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-11-22T20:59:00.832111Z"},{article_type:"item",description:" A book gained from the Academy Wing in Galway, specifically a small library room with 4 shelves and exotic birds.\nHas a strange humanoid shark person on the cover, which I know...",pk:149,name_full:"Academy Wing Book on Aboleths",name:"Academy Wing Book on Aboleths",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-10-11T21:41:23.089507Z"},{article_type:"item",description:" A set of adamantine plate that was on the violet storm when Murtagh acquired it.",pk:55,name_full:"Adamantine Plate",name:"Adamantine Plate",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-04-20T18:32:17.650720Z"},{article_type:"item",description:" An ornate lamp always hanging on Rhiannon's hip. It is larger on the inside, giving it enough space to be a beautiful home to Ahjuu as well as her complete collection...",pk:18,name_full:"Ahjuu's Lamp",name:"Ahjuu's Lamp",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-11-08T23:22:30.965195Z"},{article_type:"item",description:" \n\nTo those trusted few,\nI've left off the broken path, same as I did months ago when I left home. I told you all that I left to explore the world, make...",pk:31,name_full:"Ailis' Note To the Group",name:"Ailis' Note To the Group",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-11-26T12:29:09.444727Z"},{article_type:"item",description:" These originally 4 shards were found in the vault of the temple of Anubis. They are consumable items.\nAs a bonus action they transform into any melee weapon. They deal an additional...",pk:109,name_full:"Amber Shards {1}",name:"Amber Shards {1}",campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-18T18:16:49.305128Z"},{article_type:"item",description:" A magical strange cross-bow like weapon found in the ruins of Salus, specifically in a safe in the Oversight section.\nIt functions as a crossbow or a pistol would. It has 2...",pk:126,name_full:"Anti-matter pistol",name:"Anti-matter pistol",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-11-29T18:09:52.933907Z"},{article_type:"item",description:" Features\nIt is a +2 weapon, requires attunement to unsheathe.\nAs an action it can be drawn, strike and resheathe it. That acts as a steelwind-strike spell, can be done 1/week, any more...",pk:16,name_full:"Areppū",name:"Areppū",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-08-09T19:52:52.086208Z"},{article_type:"item",description:" A booklet that is synced up with Aridhel's personal diary. It updates itself every dawn and its contents are not to be shared. Through it she shares commands, information, personal musings...",pk:72,name_full:"Aridhel's booklet",name:"Aridhel's booklet",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-01-24T12:33:42.693831Z"},{article_type:"item",description:" Forged in the Anubis temple. +1 Studded leather armor.While attuned to it you can once per long rest cast Bless as a bonus action targeting only yourself, lasting 1 hour without...",pk:145,name_full:"Armor of Tears",name:"Armor of Tears",campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-02-21T22:23:59.974852Z"},{article_type:"item",description:" The sword that held Lancelot's soul previously, having a huge capacity for magical energies of 300 charges. It is currently inert (100/300). When anyone touches the sword while casting a spell...",pk:86,name_full:"Arondight",name:"Arondight",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-11-09T17:07:56.382942Z"},{article_type:"item",description:" A stake made of Aspenwood. If driven through the heart of a vampire, instead of killing them, it paralyzes them.",pk:98,name_full:"Aspenwood Stake",name:"Aspenwood Stake",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-06-13T07:42:18.707462Z"},{article_type:"item",description:" This glorious +3 axe is so full of magical energy it feels almost like it's about to burst to anyone with any magical sense in the vicinity. Rhiannon gained it by...",pk:94,name_full:"Axe of the dwarven lords",name:"Axe of the dwarven lords",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-05-25T19:55:17.102622Z"},{article_type:"item",description:" A legendary estoc.\n+2 magic weapon.\nOnce per long rest you can pick a nat 1 or nat 20. You can give one target you see that result.\nApparently causes the wielder to astral...",pk:136,name_full:"Balmung",name:"Balmung",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-04-25T21:26:33.807065Z"},{article_type:"item",description:" The lamp housing Barbatos, one of the unholy trine.",pk:53,name_full:"Barbatos' Lamp",name:"Barbatos' Lamp",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-11-27T20:55:18.201159Z"},{article_type:"item",description:" A belt bought in the Silver Thread by Murtagh.\nThe bell has a will of its own. While it can't move on its own, it can still be used to deliver touch...",pk:162,name_full:"Belt of the Serpent",name:"Belt of the Serpent",campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-03T21:03:12.303851Z"},{article_type:"item",description:" The assortment of gifts given by friends, acquaintances, and possible enemies on the wrong date celebrating Bathilde's birth.\nThese items include:\n\nA set of 7 rings given by Fen (3 black, 3 gold,...",pk:80,name_full:"Birthday gifts",name:"Birthday gifts",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-02-28T09:40:11.002694Z"},{article_type:"item",description:" A beautifully made item made of silver and jet to resemble a raven with a W.\nBestowed by King Mordred as a birthday gift and reward for getting the woad at least...",pk:79,name_full:"Blackfeather Necklace",name:"Blackfeather Necklace",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-02-18T23:50:29.413758Z"},{article_type:"item",description:" A moss that encourages blood clotting, helping to close up wounds quickly.",pk:9,name_full:"Blood Moss",name:"Blood Moss",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-06-10T12:00:00.000000Z"},{article_type:"item",description:" Author: Bertrand Holloway\nThe book covers death in culture in general. Also blackhounds and alternate explanation as to what they are. It referrences tar as a substance to compare thei blood of...",pk:20,name_full:"Book - Memento Mori",name:"Book - Memento Mori",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-07-22T12:00:00.000000Z"},{article_type:"item",description:" A leather-bound “book” that is more a collection of 19 trays, each containing a single scroll of a different spell. The spells it contains are denoted as:\n\n“Orb” (Chromatic Orb)\n“Cone” (Cone of...",pk:57,name_full:"Book of Spells",name:"Book of Spells",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-11-15T23:41:05.385738Z"},{article_type:"item",description:" This magical handaxe returns to its wielder at the end of a round after it has been thrown. It retains its normal range of 20/60. Bought from a Stricken blacksmith for...",pk:130,name_full:"Boomerang Axe",name:"Boomerang Axe",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-01-25T10:34:10.897765Z"}].map((entry=>({...entry,getAbsoluteRouterUrl:()=>"/item/123"}))),dummyDiaryentries=[{article_type:"diaryentry",description:" Back in my Era I was brought to the Dragon Chapel to help a cult of humans see if the dragon they worshipped would attain godhood as they believed, instead they...",pk:49,name_full:"Diary Entry #33 - I seened it",name:"I seened it",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-03-01T22:29:48.485561Z",session_details:{start_day:249,end_day:252,session_number:33,pk:47,is_main_session:!0,is_main_session_int:1},author_details:{pk:11,name:"Fen"}},{article_type:"diaryentry",description:" One of the first things I remembered being taught by Blaire once she took me in was about one of the biggest misconceptions surrounding following Silvanus. She mentioned while being in...",pk:31,name_full:"Diary Entry #14 - The Act of Companionship",name:"The Act of Companionship",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-09-29T14:05:05.003143Z",session_details:{start_day:83,end_day:111,session_number:14,pk:17,is_main_session:!0,is_main_session_int:1},author_details:{pk:10,name:"Caitriona"}},{article_type:"diaryentry",description:" After Caitriona had some dinner with her parents, Rhi and I grab Ciatriona and go on a walk. There we confront her with that she needs to make a choice regarding...",pk:109,name_full:"Diary Entry #105 - Interrogations",name:"Interrogations",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-03-28T18:06:55.686426Z",session_details:{start_day:void 0,end_day:void 0,session_number:105,pk:128,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Over the course of the long rest, we all do our own thing.\nCait organizes a fake ID as a merchant with Fen.\nMurtagh sources some blood through his vampire contacts, making it...",pk:108,name_full:"Diary Entry #104 - On to Douglas",name:"On to Douglas",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-03-28T18:03:29.282284Z",session_details:{start_day:void 0,end_day:void 0,session_number:104,pk:126,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Caitriona and Fen both chat with Merlin.\nCaitriona confides her worries about being the one responsible for plunging us all into an eternal war, given what she's seen. He calms her down,...",pk:107,name_full:"Diary Entry #103 - The death of the wizard of the present",name:"The death of the wizard of the present",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-02-21T20:26:29.164494Z",session_details:{start_day:void 0,end_day:void 0,session_number:103,pk:125,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" We try to move the ball, Rhi touches it, get's ashed by it. We decide to stay the night until she's back and figure out how we can further break this...",pk:106,name_full:"Diary Entry #102 - Working Title",name:"Working Title",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-02-14T20:31:38.010025Z",session_details:{start_day:void 0,end_day:void 0,session_number:102,pk:124,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Bathilde wakes up again and tells us what she learned, that she is a niece of Penwaithe and the last hair of the Pendraig family. Upon hearing that, Merlin jokingly makes...",pk:105,name_full:"Diary Entry #101 - Aurelian the Archmind",name:"Aurelian the Archmind",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-02-08T18:07:31.483248Z",session_details:{start_day:void 0,end_day:void 0,session_number:101,pk:123,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" We find ourselves in the Aspen Estate, owned by Lady Bathilde Aspen, basically Bathilde on a really, really bad trip.\nWe see Lady Bathilde Aspen, a suit jacket and a dress, red,...",pk:104,name_full:"Diary Entry #100 - Bathildes Bad Trip",name:"Bathildes Bad Trip",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-24T20:17:54.079619Z",session_details:{start_day:void 0,end_day:void 0,session_number:100,pk:122,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" With the giant angel, which turns out to be called an archaic defeated, we have a brief respite, meeting up with Morgana and Mordred to talk about our next steps and...",pk:103,name_full:"Diary Entry #99 - Debating Betrayal",name:"Debating Betrayal",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-17T21:01:57.152160Z",session_details:{start_day:void 0,end_day:void 0,session_number:99,pk:121,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Fen meets with Mordred. Mordred acknowledges we bombed an illithid encampment with their weapon and thanks us for it.\nThey talk shop and war logistics, pondering whether to remove people from other...",pk:102,name_full:"Diary Entry #98 - An attempt at recording again",name:"An attempt at recording again",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-10T20:19:27.864087Z",session_details:{start_day:void 0,end_day:void 0,session_number:98,pk:120,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Still breathing heavily Rhiannon's teleportation spell finishes and we find ourselves back in Etruscan, within the very familiar building of the guild of many steps.\nWith the life-and-death threat over, Rhi is...",pk:101,name_full:"Diary Entry #78 - Interrogating Hoert",name:"Interrogating Hoert",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-06-12T12:56:09.422027Z",session_details:{start_day:void 0,end_day:void 0,session_number:78,pk:100,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" Within the strange world of Hotel California, our heroes, agents in a detective agency, work on solving a murder mystery on orders of madame, in a 1950's kinda city with guns...",pk:99,name_full:"Diary Entry #77 - Murder in Hotel California",name:"Murder in Hotel California",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-06-05T09:27:20.100114Z",session_details:{start_day:0,end_day:0,session_number:77,pk:98,is_main_session:!1,is_main_session_int:0},author_details:{pk:3,name:"isofruit"}},{article_type:"diaryentry",description:" The entire session consists solely of us fighting Hoert and his companions and creatures. Murtagh does send a message to Morgana at the start of the fight, asking what the fuck...",pk:100,name_full:"Diary Entry #77 - Fighting for Hoert",name:"Fighting for Hoert",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-06-05T09:40:53.082283Z",session_details:{start_day:360,end_day:360,session_number:77,pk:99,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" The day of the mission arrives (In the meantime I sent 2 bars of gold to the local church of Morrigan for funds) and we meet in the morning to talk...",pk:98,name_full:"Diary Entry #76 - Aspen Infiltration",name:"Aspen Infiltration",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-25T19:21:05.359068Z",session_details:{start_day:360,end_day:360,session_number:76,pk:97,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" The morning after last nights welcome in the grove approaches eventually. We spend a long part of the morning asking Merlin quite a lot of questions (see last session), drinking tea...",pk:97,name_full:"Diary Entry #75 - The party gets jailed!",name:"The party gets jailed!",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-15T22:08:53.463991Z",session_details:{start_day:351,end_day:353,session_number:75,pk:96,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" This session was held short and thus mostly a QA for various things. The following questions were asked / information was gained:\n\nIs there a dangerous chaos portal in the Firbolg cave?\n\nNo\n\n\nWould...",pk:96,name_full:"Diary Entry #74 - Merlin QA",name:"Merlin QA",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-14T21:23:08.230896Z",session_details:{start_day:351,end_day:351,session_number:74,pk:95,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" After licking our wounds for a bit and deciding to leave the crystal-entrapped people be, we take our leave. Though it's a bit odd when Murtagh suddenly manifests a sheathe for...",pk:95,name_full:"Diary Entry #73 - Space Elves!",name:"Space Elves!",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-05-01T10:20:22.069594Z",session_details:{start_day:346,end_day:351,session_number:73,pk:94,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}},{article_type:"diaryentry",description:" We follow Fen down the staircase into the bowels of whatever this secret space is. Soon enough we find another chamber. Its walls are of a brown stone, tinged with an...",pk:94,name_full:"Diary Entry #72 - Secrets underneath the Equinox Stones",name:"Secrets underneath the Equinox Stones",campaign:1,campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-04-23T06:56:22.727834Z",session_details:{start_day:346,end_day:346,session_number:72,pk:93,is_main_session:!0,is_main_session_int:1},author_details:{pk:15,name:"Relentless"}}].map((entry=>({...entry,getAbsoluteRouterUrl:()=>"/diaryentry/123"}))),general_overview_stories={title:"DesignSystem/Templates/GeneralOverviewComponent",component:GeneralOverviewComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c],declarations:[]})],args:{serverUrl:"https://www.aldrune.com",entries:dummyCharacters,canCreate:!0,campaignName:"Aldrune",overviewType:"CHARACTER"}},Template=args=>({props:{...args,search:(0,dist.XI)("search"),loadArticlePage:(0,dist.XI)("loadArticlePage")}}),Default=Template.bind({});Default.args={};const Characters=Template.bind({});Characters.args={};const CharactersWithoutPlayerCharacters=Template.bind({});CharactersWithoutPlayerCharacters.args={entries:dummyCharacters.map((character=>({...character,player_character:!1})))};const Creatures=Template.bind({});Creatures.args={entries:[{article_type:"creature",description:"A wolf infused by chaos. The final stage of its transformation into a being that embodies chaos. Can teleport and whip its tentacles around.",pk:3,name:"Chaos Wolf - Stage 3",name_full:"Chaos Wolf - Stage 3",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-06-10T12:00:00.000000Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"Chimeras are unnatural magical amalgamations of other creatures, such as dragons, lions and goats. These creatures were created by the academy once upon a time through dragon's blood, back in the...",pk:16,name:"Chimera",name_full:"Chimera",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-01-01T15:53:09.343803Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"Wyverns in general are creatures that work with venoms. However, coastal wyverns are more brutish than there more inland-cousins. They rely on shock-tactics and frontal assaults to kill their prety, using...",pk:10,name:"Coastal Wyvern",name_full:"Coastal Wyvern",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-08-01T16:56:12.663451Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"Devils are a wide spread group of creatures. They, particularly the warrior devils among them, define themselves almost entirely by participating in the bloodwar.\nThose that do not participate are ostracized as...",pk:14,name:"Devil Outcasts",name_full:"Devil Outcasts",campaign_details:{name:"Aldrune",id:1},update_datetime:"2020-09-09T15:08:52.261056Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"Dragons are less creatures and more forces of nature. It would be more apt to describe them to a sentient storm or earthquake in scale of their power than to a...",pk:8,name:"Dragons",name_full:"Dragons",campaign_details:{name:"Aldrune",id:1},update_datetime:"2023-01-24T11:29:37.226502Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"A gigantic type of worm that appears to reside within the ashen grey plane north of the dried out riverbed. We have seen one of them in there so far. Distinctly...",pk:23,name:"Gargantuan Dune Worm",name_full:"Gargantuan Dune Worm",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-07-26T17:27:54.172382Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"A bat like creature the size of a man. Bat-like wings, but also faceless. It evades divine sense and can't be seen normally. Does disappear at the sight of daylight apparently....",pk:34,name:"Gaunt",name_full:"Gaunt",campaign_details:{name:"Aldrune",id:1},update_datetime:"2022-01-18T20:17:04.487036Z",getAbsoluteRouterUrl:()=>"/creature/123"},{article_type:"creature",description:"A creature first encountered in the marsh-waters of the Wildheart Woodlands near the hag's camp. Massively oversized leeches, easily reaching the size of a wolf that are luckily blind, but easily...",pk:18,name:"Giant Leech",name_full:"Giant Leech",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-01-07T19:05:49.047964Z",getAbsoluteRouterUrl:()=>"/creature/123"}],overviewType:"CREATURE"};const Locations=Template.bind({});Locations.args={entries:dummyLocations,overviewType:"LOCATION"};const Organizations=Template.bind({});Organizations.args={entries:dummyOrganizations,overviewType:"ORGANIZATION"};const Items=Template.bind({});Items.args={entries:dummyItems,overviewType:"ITEM"};const Diaryentries=Template.bind({});Diaryentries.args={entries:dummyDiaryentries,overviewType:"DIARYENTRY"};const __namedExportsOrder=["Default","Characters","CharactersWithoutPlayerCharacters","Creatures","Locations","Organizations","Items","Diaryentries"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Default.parameters?.docs?.source}}},Characters.parameters={...Characters.parameters,docs:{...Characters.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Characters.parameters?.docs?.source}}},CharactersWithoutPlayerCharacters.parameters={...CharactersWithoutPlayerCharacters.parameters,docs:{...CharactersWithoutPlayerCharacters.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...CharactersWithoutPlayerCharacters.parameters?.docs?.source}}},Creatures.parameters={...Creatures.parameters,docs:{...Creatures.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Creatures.parameters?.docs?.source}}},Locations.parameters={...Locations.parameters,docs:{...Locations.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Locations.parameters?.docs?.source}}},Organizations.parameters={...Organizations.parameters,docs:{...Organizations.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Organizations.parameters?.docs?.source}}},Items.parameters={...Items.parameters,docs:{...Items.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Items.parameters?.docs?.source}}},Diaryentries.parameters={...Diaryentries.parameters,docs:{...Diaryentries.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n search: action('search'),\n loadArticlePage: action('loadArticlePage')\n }\n})",...Diaryentries.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/image-card/image-card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n position: relative;\n display: block;\n}\n\n.card {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.card--active {\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 3;\n box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 0, 0, 0.6), 0 10px 20px rgba(0, 0, 0, 0.8);\n}\n@media (min-width: 992px) {\n .card--active {\n transition: transform ease-in-out 0.2s;\n transform: scale(1.2);\n }\n}\n.card--active .card__img-container {\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n.card--active .card__img-link {\n flex: 1;\n display: flex;\n}\n.card--active .card-img-top {\n max-width: 100%;\n height: 40vh;\n max-height: unset;\n object-fit: scale-down;\n object-position: top;\n}\n.card--active .card-body {\n flex: unset;\n}\n.card-body {\n padding: var(--spacer-3);\n}\n.card-title {\n margin-bottom: var(--spacer-0);\n text-align: center;\n}\n@media (min-width: 768px) {\n .card__title-link {\n text-decoration: none;\n }\n}\n.card__img-container {\n flex: 1;\n position: relative;\n}\n.card-img-top {\n object-fit: cover;\n max-height: 7rem;\n transition: 0.5s height;\n}\n.card__img-close-btn {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n top: var(--spacer-2);\n right: var(--spacer-2);\n background-color: var(--bs-dark);\n --btn-pad: var(--spacer-2);\n padding: var(--btn-pad) var(--btn-pad) var(--btn-pad) calc(var(--btn-pad) + 0.25rem);\n border-radius: 50%;\n z-index: 2;\n}\n@media (min-width: 768px) {\n .card__img-close-btn {\n display: none;\n }\n}\n.card__img-selectors {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n margin-top: var(--spacer-2);\n margin-bottom: var(--spacer-2);\n gap: var(--spacer-2);\n}\n.card__img-selector {\n border-radius: 50%;\n padding: var(--spacer-1) var(--spacer-2);\n border: var(--bs-dark) 2px solid;\n background-color: var(--bs-secondary);\n}\n.card__img-selector--active {\n background-color: var(--bs-dark);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/filter-list/filter-list.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".filter__input {\n background-color: transparent;\n border: 1px var(--bs-white) solid;\n border-radius: var(--bs-border-radius);\n padding: var(--spacer-0) var(--spacer-3);\n margin-top: var(--spacer-2);\n margin-bottom: var(--spacer-4);\n width: 100%;\n height: var(--spacer-5);\n color: var(--bs-white);\n}\n.filter__input:focus {\n background: rgba(255, 255, 255, 0.1);\n border-color: var(--bs-white);\n box-shadow: 0 0 0 2px var(--bs-white);\n}\n\n.letter-list {\n padding-top: var(--spacer-4);\n padding-bottom: var(--spacer-4);\n border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);\n}\n.letter-list__heading {\n margin-bottom: var(--spacer-0);\n}\n.letter-list__list {\n list-style-type: disclosure-closed;\n margin-bottom: var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/general-overview/general-overview.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".overview__page-heading {\n margin-bottom: var(--spacer-4);\n padding-bottom: var(--spacer-1);\n border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);\n}\n.overview__create {\n margin-bottom: var(--spacer-3);\n}\n.overview__home {\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n width: fit-content;\n}\n.overview__image {\n width: 100%;\n max-height: 23rem;\n max-width: 100%;\n object-fit: cover;\n object-position: bottom;\n padding-left: var(--spacer-0);\n padding-right: var(--spacer-0);\n margin-bottom: var(--spacer-4);\n}\n.overview__player-card {\n min-height: 12.5rem;\n margin-bottom: var(--spacer-4);\n}\n\n.player-card__link {\n text-decoration: none;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-item-item-stories.a9d6d42b.iframe.bundle.js b/design-templates-item-item-stories.a9d6d42b.iframe.bundle.js
new file mode 100644
index 000000000..779aa1348
--- /dev/null
+++ b/design-templates-item-item-stories.a9d6d42b.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6191],{"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,iR:()=>numberValidator,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,tu:()=>notNumberMesage,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},notNumberMesage={name:"notNumber",message:"Your input is not a number."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const numberValidator={name:"notNumber",validation:function isNumberValidation(control){const isNumberType="number"==typeof control.value,isNumberString="string"==typeof control.value&&!isNaN(control.value),isNumber=isNumberType||isNumberString;return isNumber?null:{notNumber:!isNumber}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/editable-text/editable-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>EditableTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var editable_text_componentngResource=__webpack_require__("./src/design/organisms/editable-text/editable-text.component.scss?ngResource"),editable_text_componentngResource_default=__webpack_require__.n(editable_text_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),tinymce_tinymce_angular=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),alert_component=__webpack_require__("./src/design/atoms/alert/alert.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),formly_editor_field_constants=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts");let EditableTextComponent=class EditableTextComponent{constructor(){this.text=core.input.required(),this.placeholder=core.input.required(),this.canUpdate=core.input.required(),this.serverModel=(0,core.input)(),this.heading=(0,core.input)(),this.update=(0,core.output)(),this.settings=formly_editor_field_constants.O,this.state=(0,core.signal)("DISPLAY"),this.textModel="",this.editButtonText=(0,core.computed)((()=>{switch(this.state()){case"DISPLAY":return"edit";case"UPDATE":case"OUTDATED_UPDATE":return"cancel"}})),this.editorField=(0,core.viewChild)("editor"),(0,core.effect)((()=>{null!=this.serverModel()&&this.state.set("OUTDATED_UPDATE")}),{allowSignalWrites:!0})}toggleEdit(){"UPDATE"===this.state()?this.cancelEdit():this.startEdit()}startEdit(){this.state.set("UPDATE"),this.textModel=this.text(),this.focusField()}finishEdit(){this.update.emit(this.textModel),this.state.set("DISPLAY")}cancelEdit(){this.textModel=this.text(),this.state.set("DISPLAY")}focusField(){setTimeout((()=>this.editorField()._editor.focus()),100)}static{this.ctorParameters=()=>[]}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placeholder:[{type:core.Input,args:[{isSignal:!0,alias:"placeholder",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!1,transform:void 0}]}],update:[{type:core.Output,args:["update"]}],editorField:[{type:core.ViewChild,args:["editor",{isSignal:!0}]}]}}};EditableTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-editable-text",standalone:!0,imports:[common.NgTemplateOutlet,html_text_component.m,icon_component.R,tinymce_tinymce_angular.xn,fesm2022_forms.YN,alert_component.C,separator_component.F,button_component.Q],template:'\x3c!-- Heading --\x3e\n@let headingVal = heading();\n@if (headingVal) {\n \n \n @if (canUpdate()) {\n \n \n (\n {{ editButtonText() }}\n \n )\n \n \n }\n \n}\n\n\x3c!-- Text Body --\x3e\n@if (canUpdate()) {\n \n \n \n \n \n \x3c!-- Informating heading --\x3e\n
\n \n While you were updating this article, somebody else went ahead and updated\n it as well. Please include their changes in your update before submitting.\n \n\n \x3c!-- Textfield-Form --\x3e\n
\n \x3c!-- Comparison text --\x3e\n
\n\n
\n\n \x3c!-- Actual edit form --\x3e\n
\n
\n
\n} @else {\n \n}\n\n\n \n \n \n
\n \n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[editable_text_componentngResource_default()]})],EditableTextComponent)},"./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>TINYMCE_SETTINGS});const TINYMCE_SETTINGS={plugins:["advlist","autolink","lists","link","image","charmap","anchor","searchreplace","visualblocks","media","table","help","wordcount"],toolbar:["undo redo | formatselect | bold italic underline strikethrough subscript superscript link unlink blockquote | backcolor forecolor hilitecolor fontsizeselect |","alignleft aligncenter alignright | bullist numlist outdent indent | removeformat | table help"],skin:"oxide-dark",content_css:"dark",browser_spellcheck:!0,menubar:!1,height:500,convert_urls:!1,relative_urls:!1,branding:!1,base_url:"/tinymce",suffix:".min"}},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/design/templates/item/item.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermission:()=>NoPermission,__namedExportsOrder:()=>__namedExportsOrder,default:()=>item_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),validators=__webpack_require__("./src/app/_services/formly/validators.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var item_componentngResource=__webpack_require__("./src/design/templates/item/item.component.scss?ngResource"),item_componentngResource_default=__webpack_require__.n(item_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),image_carousel_card_component=__webpack_require__("./src/design/organisms/image-carousel-card/image-carousel-card.component.ts"),editable_text_component=__webpack_require__("./src/design/organisms/editable-text/editable-text.component.ts"),article_footer_component=__webpack_require__("./src/design/molecules/article-footer/article-footer.component.ts");let ItemComponent=class ItemComponent{constructor(routingService){this.routingService=routingService,this.item=core.input.required(),this.itemServerModel=core.input.required(),this.serverUrl=core.input.required(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.imageServerModel=core.input.required(),this.itemDelete=new core.EventEmitter,this.createImage=new core.EventEmitter,this.deleteImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.itemUpdate=(0,core.output)(),this.campaignName=(0,core.computed)((()=>this.item().campaign_details?.name)),this.hasOwner=(0,core.computed)((()=>null!=this.item().owner_details)),this.overviewUrl=(0,core.computed)((()=>this.routingService.getRoutePath("item-overview",{campaign:this.campaignName()}))),this.updateUrl=(0,core.computed)((()=>this.routingService.getRoutePath("item-update",{campaign:this.campaignName(),name:this.item().name}))),this.ownerUrl=(0,core.computed)((()=>{if(this.hasOwner())return this.routingService.getRoutePath("character",{campaign:this.campaignName(),name:this.item().owner_details?.name})}))}onDescriptionUpdate(description){const itemToUpdate=void 0!==this.itemServerModel()?this.itemServerModel():this.item();itemToUpdate&&this.itemUpdate.emit({...itemToUpdate,description})}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={item:[{type:core.Input,args:[{isSignal:!0,alias:"item",required:!0,transform:void 0}]}],itemServerModel:[{type:core.Input,args:[{isSignal:!0,alias:"itemServerModel",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],imageServerModel:[{type:core.Input,args:[{isSignal:!0,alias:"imageServerModel",required:!0,transform:void 0}]}],itemDelete:[{type:core.Output}],createImage:[{type:core.Output}],deleteImage:[{type:core.Output}],updateImage:[{type:core.Output}],itemUpdate:[{type:core.Output,args:["itemUpdate"]}]}}};ItemComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-item",template:'\n \n @if (canUpdate()) {\n \n }\n\n \x3c!-- Heading --\x3e\n \n\n \x3c!-- Image Gallery --\x3e\n \n\n \x3c!-- Description --\x3e\n \n\n \x3c!-- Footer (Move to other Article + Delete Article) --\x3e\n \n \n \n',standalone:!0,imports:[page_container_component.i,router.Wk,button_component.Q,image_carousel_card_component.r,editable_text_component.T,article_footer_component.D],styles:[item_componentngResource_default()]})],ItemComponent);const dummyItem={pk:123,name:"Sword of the Paladin",description:"\n \n
The Holy Sword is a legendary weapon of immense power and great significance. It is said to have been forged by the gods themselves and imbued with their divine energy, making it one of the most powerful weapons in existence. The sword is said to have been wielded by the greatest heroes throughout history, and it is believed that whoever possesses the sword is destined to become a hero themselves.
\n
The Holy Sword is a longsword with a blade made of a bright, shimmering metal that seems to radiate with its own light. The hilt of the sword is wrapped in a soft, white leather that is said to have been taken from the hide of a unicorn. The pommel of the sword is made of a gleaming silver that is shaped like a holy symbol, and it is said that the sword's power is activated by touching the pommel to the forehead of the wielder and reciting a sacred incantation.
\n
Legend has it that the Holy Sword has the power to vanquish any evil, no matter how powerful, and that it can only be wielded by a true hero. It is said that the sword will only respond to someone who is pure of heart and strong in spirit, and that it will reject anyone who tries to use it for their own selfish purposes. The Holy Sword is a symbol of hope and righteousness, and its very presence is said to inspire courage and valor in those who fight for what is right.
\n
\n ",owner:456,owner_details:{name:"John Doe",pk:456},images:[{pk:789,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Sword Image",item_article:123,article_type:"Item"},{pk:790,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Sword Close-Up",item_article:123,article_type:"Item"},{pk:791,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",item_article:123,article_type:"Item"}],campaign:1,campaign_details:{id:1,name:"Campaign of Adventures"},creation_datetime:"2022-04-01T12:00:00Z",update_datetime:"2022-04-03T09:30:00Z",getAbsoluteRouterUrl:()=>"https://example.com/items/123"},item_stories={title:"DesignSystem/Templates/ItemComponent",component:ItemComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,ngx_formly_core.qy.forRoot({types:[{name:"file",component:molecules.JS,wrappers:["form-field"]}],validationMessages:[validators.h9,validators.zG],validators:[validators.yt,validators.jp]})],declarations:[]})],args:{imageServerModel:void 0,canCreate:!0,canUpdate:!0,canDelete:!0,item:dummyItem,serverUrl:"https://images.dog.ceo"}},Template=args=>({props:{...args,createImage:(0,dist.XI)("createImage"),deleteImage:(0,dist.XI)("deleteImage"),updateImage:(0,dist.XI)("updateImage"),itemDelete:(0,dist.XI)("itemDelete")}}),Default=Template.bind({});Default.args={};const NoPermission=Template.bind({});NoPermission.args={canDelete:!1,canUpdate:!1,canCreate:!1};const __namedExportsOrder=["Default","NoPermission"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createImage: action('createImage'),\n deleteImage: action('deleteImage'),\n updateImage: action('updateImage'),\n itemDelete: action('itemDelete')\n }\n})",...Default.parameters?.docs?.source}}},NoPermission.parameters={...NoPermission.parameters,docs:{...NoPermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createImage: action('createImage'),\n deleteImage: action('deleteImage'),\n updateImage: action('updateImage'),\n itemDelete: action('itemDelete')\n }\n})",...NoPermission.parameters?.docs?.source}}}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/editable-text/editable-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-block;\n}\n\n.heading {\n margin-bottom: var(--spacer-2);\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacer-3);\n}\n.heading__edit-text {\n margin: var(--spacer-0);\n}\n.heading__edit-button:focus, .heading__edit-button:focus-within, .heading__edit-button:hover {\n border-radius: var(--bs-border-radius);\n outline: var(--focus-outline);\n}\n\n.field {\n text-align: unset;\n border-radius: var(--bs-border-radius);\n}\n.field--display {\n min-height: 1rem;\n width: 100%;\n}\n.field--display:focus, .field--display:hover {\n color: unset;\n background-color: var(--bs-secondary);\n}\n.field--hidden {\n display: none;\n}\n.field__buttons {\n display: flex;\n flex-direction: row;\n gap: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/item/item.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".item__edit-container {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n}\n.item__heading {\n text-align: center;\n}\n.item__subheading {\n margin-bottom: var(--spacer-3);\n text-align: center;\n}\n.item__images {\n margin-bottom: var(--spacer-3);\n}\n.item__description {\n width: 100%;\n margin-bottom: var(--spacer-5);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-item-item-stories.aa6f74fe.iframe.bundle.js b/design-templates-item-item-stories.aa6f74fe.iframe.bundle.js
deleted file mode 100644
index d58a9c59b..000000000
--- a/design-templates-item-item-stories.aa6f74fe.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6191],{"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/editable-text/editable-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>EditableTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var editable_text_componentngResource=__webpack_require__("./src/design/organisms/editable-text/editable-text.component.scss?ngResource"),editable_text_componentngResource_default=__webpack_require__.n(editable_text_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),tinymce_tinymce_angular=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),alert_component=__webpack_require__("./src/design/atoms/alert/alert.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),formly_editor_field_constants=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts");let EditableTextComponent=class EditableTextComponent{constructor(){this.text=core.input.required(),this.placeholder=core.input.required(),this.canUpdate=core.input.required(),this.serverModel=(0,core.input)(),this.heading=(0,core.input)(),this.update=(0,core.output)(),this.settings=formly_editor_field_constants.O,this.state=(0,core.signal)("DISPLAY"),this.textModel="",this.editButtonText=(0,core.computed)((()=>{switch(this.state()){case"DISPLAY":return"edit";case"UPDATE":case"OUTDATED_UPDATE":return"cancel"}})),this.editorField=(0,core.viewChild)("editor"),(0,core.effect)((()=>{null!=this.serverModel()&&this.state.set("OUTDATED_UPDATE")}),{allowSignalWrites:!0})}toggleEdit(){"UPDATE"===this.state()?this.cancelEdit():this.startEdit()}startEdit(){this.state.set("UPDATE"),this.textModel=this.text(),this.focusField()}finishEdit(){this.update.emit(this.textModel),this.state.set("DISPLAY")}cancelEdit(){this.textModel=this.text(),this.state.set("DISPLAY")}focusField(){setTimeout((()=>this.editorField()._editor.focus()),100)}static{this.ctorParameters=()=>[]}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placeholder:[{type:core.Input,args:[{isSignal:!0,alias:"placeholder",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!1,transform:void 0}]}],update:[{type:core.Output,args:["update"]}],editorField:[{type:core.ViewChild,args:["editor",{isSignal:!0}]}]}}};EditableTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-editable-text",standalone:!0,imports:[common.NgTemplateOutlet,html_text_component.m,icon_component.R,tinymce_tinymce_angular.xn,fesm2022_forms.YN,alert_component.C,separator_component.F,button_component.Q],template:'\x3c!-- Heading --\x3e\n@let headingVal = heading();\n@if (headingVal) {\n \n \n @if (canUpdate()) {\n \n \n (\n {{ editButtonText() }}\n \n )\n \n \n }\n \n}\n\n\x3c!-- Text Body --\x3e\n@if (canUpdate()) {\n \n \n \n \n \n \x3c!-- Informating heading --\x3e\n
\n \n While you were updating this article, somebody else went ahead and updated\n it as well. Please include their changes in your update before submitting.\n \n\n \x3c!-- Textfield-Form --\x3e\n
\n \x3c!-- Comparison text --\x3e\n
\n\n
\n\n \x3c!-- Actual edit form --\x3e\n
\n
\n
\n} @else {\n \n}\n\n\n \n \n \n
\n \n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[editable_text_componentngResource_default()]})],EditableTextComponent)},"./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>TINYMCE_SETTINGS});const TINYMCE_SETTINGS={plugins:["advlist","autolink","lists","link","image","charmap","anchor","searchreplace","visualblocks","media","table","help","wordcount"],toolbar:["undo redo | formatselect | bold italic underline strikethrough subscript superscript link unlink blockquote | backcolor forecolor hilitecolor fontsizeselect |","alignleft aligncenter alignright | bullist numlist outdent indent | removeformat | table help"],skin:"oxide-dark",content_css:"dark",browser_spellcheck:!0,menubar:!1,height:500,convert_urls:!1,relative_urls:!1,branding:!1,base_url:"/tinymce",suffix:".min"}},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/design/templates/item/item.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermission:()=>NoPermission,__namedExportsOrder:()=>__namedExportsOrder,default:()=>item_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),validators=__webpack_require__("./src/app/_services/formly/validators.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var item_componentngResource=__webpack_require__("./src/design/templates/item/item.component.scss?ngResource"),item_componentngResource_default=__webpack_require__.n(item_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),image_carousel_card_component=__webpack_require__("./src/design/organisms/image-carousel-card/image-carousel-card.component.ts"),editable_text_component=__webpack_require__("./src/design/organisms/editable-text/editable-text.component.ts"),article_footer_component=__webpack_require__("./src/design/molecules/article-footer/article-footer.component.ts");let ItemComponent=class ItemComponent{constructor(routingService){this.routingService=routingService,this.item=core.input.required(),this.itemServerModel=core.input.required(),this.serverUrl=core.input.required(),this.canUpdate=(0,core.input)(!1),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.imageServerModel=core.input.required(),this.itemDelete=new core.EventEmitter,this.createImage=new core.EventEmitter,this.deleteImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.itemUpdate=(0,core.output)(),this.campaignName=(0,core.computed)((()=>this.item().campaign_details?.name)),this.hasOwner=(0,core.computed)((()=>null!=this.item().owner_details)),this.overviewUrl=(0,core.computed)((()=>this.routingService.getRoutePath("item-overview",{campaign:this.campaignName()}))),this.updateUrl=(0,core.computed)((()=>this.routingService.getRoutePath("item-update",{campaign:this.campaignName(),name:this.item().name}))),this.ownerUrl=(0,core.computed)((()=>{if(this.hasOwner())return this.routingService.getRoutePath("character",{campaign:this.campaignName(),name:this.item().owner_details?.name})}))}onDescriptionUpdate(description){const itemToUpdate=void 0!==this.itemServerModel()?this.itemServerModel():this.item();itemToUpdate&&this.itemUpdate.emit({...itemToUpdate,description})}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={item:[{type:core.Input,args:[{isSignal:!0,alias:"item",required:!0,transform:void 0}]}],itemServerModel:[{type:core.Input,args:[{isSignal:!0,alias:"itemServerModel",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],imageServerModel:[{type:core.Input,args:[{isSignal:!0,alias:"imageServerModel",required:!0,transform:void 0}]}],itemDelete:[{type:core.Output}],createImage:[{type:core.Output}],deleteImage:[{type:core.Output}],updateImage:[{type:core.Output}],itemUpdate:[{type:core.Output,args:["itemUpdate"]}]}}};ItemComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-item",template:'\n \n @if (canUpdate()) {\n \n }\n\n \x3c!-- Heading --\x3e\n \n\n \x3c!-- Image Gallery --\x3e\n \n\n \x3c!-- Description --\x3e\n \n\n \x3c!-- Footer (Move to other Article + Delete Article) --\x3e\n \n \n \n',standalone:!0,imports:[page_container_component.i,router.Wk,button_component.Q,image_carousel_card_component.r,editable_text_component.T,article_footer_component.D],styles:[item_componentngResource_default()]})],ItemComponent);const dummyItem={pk:123,name:"Sword of the Paladin",description:"\n \n
The Holy Sword is a legendary weapon of immense power and great significance. It is said to have been forged by the gods themselves and imbued with their divine energy, making it one of the most powerful weapons in existence. The sword is said to have been wielded by the greatest heroes throughout history, and it is believed that whoever possesses the sword is destined to become a hero themselves.
\n
The Holy Sword is a longsword with a blade made of a bright, shimmering metal that seems to radiate with its own light. The hilt of the sword is wrapped in a soft, white leather that is said to have been taken from the hide of a unicorn. The pommel of the sword is made of a gleaming silver that is shaped like a holy symbol, and it is said that the sword's power is activated by touching the pommel to the forehead of the wielder and reciting a sacred incantation.
\n
Legend has it that the Holy Sword has the power to vanquish any evil, no matter how powerful, and that it can only be wielded by a true hero. It is said that the sword will only respond to someone who is pure of heart and strong in spirit, and that it will reject anyone who tries to use it for their own selfish purposes. The Holy Sword is a symbol of hope and righteousness, and its very presence is said to inspire courage and valor in those who fight for what is right.
\n
\n ",owner:456,owner_details:{name:"John Doe",pk:456},images:[{pk:789,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Sword Image",item_article:123,article_type:"Item"},{pk:790,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Sword Close-Up",item_article:123,article_type:"Item"},{pk:791,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",item_article:123,article_type:"Item"}],campaign:1,campaign_details:{id:1,name:"Campaign of Adventures"},creation_datetime:"2022-04-01T12:00:00Z",update_datetime:"2022-04-03T09:30:00Z",getAbsoluteRouterUrl:()=>"https://example.com/items/123"},item_stories={title:"DesignSystem/Templates/ItemComponent",component:ItemComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,ngx_formly_core.qy.forRoot({types:[{name:"file",component:molecules.JS,wrappers:["form-field"]}],validationMessages:[validators.h9,validators.zG],validators:[validators.yt,validators.jp]})],declarations:[]})],args:{imageServerModel:void 0,canCreate:!0,canUpdate:!0,canDelete:!0,item:dummyItem,serverUrl:"https://images.dog.ceo"}},Template=args=>({props:{...args,createImage:(0,dist.XI)("createImage"),deleteImage:(0,dist.XI)("deleteImage"),updateImage:(0,dist.XI)("updateImage"),itemDelete:(0,dist.XI)("itemDelete")}}),Default=Template.bind({});Default.args={};const NoPermission=Template.bind({});NoPermission.args={canDelete:!1,canUpdate:!1,canCreate:!1};const __namedExportsOrder=["Default","NoPermission"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createImage: action('createImage'),\n deleteImage: action('deleteImage'),\n updateImage: action('updateImage'),\n itemDelete: action('itemDelete')\n }\n})",...Default.parameters?.docs?.source}}},NoPermission.parameters={...NoPermission.parameters,docs:{...NoPermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createImage: action('createImage'),\n deleteImage: action('deleteImage'),\n updateImage: action('updateImage'),\n itemDelete: action('itemDelete')\n }\n})",...NoPermission.parameters?.docs?.source}}}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/editable-text/editable-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-block;\n}\n\n.heading {\n margin-bottom: var(--spacer-2);\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacer-3);\n}\n.heading__edit-text {\n margin: var(--spacer-0);\n}\n.heading__edit-button:focus, .heading__edit-button:focus-within, .heading__edit-button:hover {\n border-radius: var(--bs-border-radius);\n outline: var(--focus-outline);\n}\n\n.field {\n text-align: unset;\n border-radius: var(--bs-border-radius);\n}\n.field--display {\n min-height: 1rem;\n width: 100%;\n}\n.field--display:focus, .field--display:hover {\n color: unset;\n background-color: var(--bs-secondary);\n}\n.field--hidden {\n display: none;\n}\n.field__buttons {\n display: flex;\n flex-direction: row;\n gap: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/item/item.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".item__edit-container {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n}\n.item__heading {\n text-align: center;\n}\n.item__subheading {\n margin-bottom: var(--spacer-3);\n text-align: center;\n}\n.item__images {\n margin-bottom: var(--spacer-3);\n}\n.item__description {\n width: 100%;\n margin-bottom: var(--spacer-5);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-login-login-stories.508ca261.iframe.bundle.js b/design-templates-login-login-stories.508ca261.iframe.bundle.js
deleted file mode 100644
index bb2dae23c..000000000
--- a/design-templates-login-login-stories.508ca261.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[1063],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/login/login.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>login_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var login_componentngResource=__webpack_require__("./src/design/templates/login/login.component.scss?ngResource"),login_componentngResource_default=__webpack_require__.n(login_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),ngx_formly_bootstrap=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const backInUp=(0,animations.hZ)("backInUp",[(0,animations.kY)(":enter",[(0,animations.iF)({transform:"translateY(800px) scale(0.7)",opacity:.7}),(0,animations.i0)("800ms ease-out",(0,animations.i7)([(0,animations.iF)({offset:.8,transform:"translateY(0px) scale(0.7)",opacity:.7}),(0,animations.iF)({offset:1,transform:"scale(1)",opacity:1})]))]),(0,animations.kY)(":leave",[(0,animations.iF)({transform:"scale(1)",opacity:1}),(0,animations.i0)("800ms ease-in",(0,animations.i7)([(0,animations.iF)({offset:.2,transform:"translateY(0px) scale(0.7)",opacity:.7}),(0,animations.iF)({offset:1,transform:"translateY(-800px) scale(0.7)",opacity:.7})]))])]);var flip=__webpack_require__("./src/design/animations/flip.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let LoginComponent=class LoginComponent{constructor(formlyService){this.formlyService=formlyService,this.login=new core.EventEmitter,this.resetPassword=new core.EventEmitter,this.loginMessages={"token-expired":"Your Session expired, please log in again","token-null":"You do not have a valid token, please log in","invalid-login":"No active account found with the given credentials","logged-out":"Log out successful. Log in again?","no-token":"You are not logged in. Please enter your credentials"},this.model={},this.form=new fesm2022_forms.gE({}),this.fields=[this.formlyService.buildInputConfig({key:"username",placeholder:"Username",inputKind:"STRING"}),this.formlyService.buildSinglePasswordConfig({key:"password",className:"mb-0",fieldGroupClassName:"mb-0"})],this.recoveryModel={},this.recoveryForm=new fesm2022_forms.gE({}),this.recoveryFields=[this.formlyService.buildInputConfig({key:"username",placeholder:"Username",inputKind:"STRING"})],this.state="LOGIN",this.isWaitingForPasswordReset=!1}setState(newState){this.state=newState,this.recoveryModel={},this.model={}}onLogin(){this.login.emit(this.model)}onPasswordReset(){this.resetPassword.emit(this.recoveryModel.username)}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={loginState:[{type:core.Input}],resetErrorMessage:[{type:core.Input}],login:[{type:core.Output}],resetPassword:[{type:core.Output}]}}};LoginComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-login",template:'\n
\n @if (state === "LOGIN") {\n Sign In \n @if (loginState) {\n \n {{ loginMessages[loginState] }}\n
\n }\n \n } @else {\n Password Reset \n \n Forgot your account\'s password? Enter your account name and we\'ll send\n you a randomized new password to your email address.\n
\n \n {{ resetErrorMessage }}\n
\n \n }\n \n
\n',standalone:!0,imports:[page_container_component.i,fesm2022_forms.YN,ngx_formly_core.qy,ngx_formly_bootstrap.u,button_component.Q],animations:[backInUp,flip.S],styles:[login_componentngResource_default()]})],LoginComponent);const login_stories={title:"DesignSystem/Templates/LoginComponent",component:LoginComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,formly_constants.d_],declarations:[]})],args:{extraMessage:"Extra message of some sort",resetErrorMessage:"Message for error during reset"}},Default=(args=>({props:{...args,login:(0,dist.XI)("login"),resetPassword:(0,dist.XI)("resetPassword")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n login: action('login'),\n resetPassword: action('resetPassword')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/login/login.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n width: 100%;\n max-width: 30rem;\n}\n\n.login {\n --animate-duration: 1000ms;\n}\n.login__subtitle-warning {\n margin-bottom: var(--spacer-3);\n color: var(--bs-warning);\n}\n.login__form {\n display: flex;\n flex-direction: column;\n}\n.login__button {\n margin-top: var(--spacer-4);\n}\n.login__button-left {\n margin-right: var(--spacer-2);\n}\n.login__reset-link {\n cursor: pointer;\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-login-login-stories.6f4ddf50.iframe.bundle.js b/design-templates-login-login-stories.6f4ddf50.iframe.bundle.js
new file mode 100644
index 000000000..144f39e9a
--- /dev/null
+++ b/design-templates-login-login-stories.6f4ddf50.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[1063],{"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/login/login.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>login_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var login_componentngResource=__webpack_require__("./src/design/templates/login/login.component.scss?ngResource"),login_componentngResource_default=__webpack_require__.n(login_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),ngx_formly_bootstrap=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const backInUp=(0,animations.hZ)("backInUp",[(0,animations.kY)(":enter",[(0,animations.iF)({transform:"translateY(800px) scale(0.7)",opacity:.7}),(0,animations.i0)("800ms ease-out",(0,animations.i7)([(0,animations.iF)({offset:.8,transform:"translateY(0px) scale(0.7)",opacity:.7}),(0,animations.iF)({offset:1,transform:"scale(1)",opacity:1})]))]),(0,animations.kY)(":leave",[(0,animations.iF)({transform:"scale(1)",opacity:1}),(0,animations.i0)("800ms ease-in",(0,animations.i7)([(0,animations.iF)({offset:.2,transform:"translateY(0px) scale(0.7)",opacity:.7}),(0,animations.iF)({offset:1,transform:"translateY(-800px) scale(0.7)",opacity:.7})]))])]);var flip=__webpack_require__("./src/design/animations/flip.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let LoginComponent=class LoginComponent{constructor(formlyService){this.formlyService=formlyService,this.login=new core.EventEmitter,this.resetPassword=new core.EventEmitter,this.loginMessages={"token-expired":"Your Session expired, please log in again","token-null":"You do not have a valid token, please log in","invalid-login":"No active account found with the given credentials","logged-out":"Log out successful. Log in again?","no-token":"You are not logged in. Please enter your credentials"},this.model={},this.form=new fesm2022_forms.gE({}),this.fields=[this.formlyService.buildInputConfig({key:"username",placeholder:"Username",inputKind:"STRING"}),this.formlyService.buildSinglePasswordConfig({key:"password",className:"mb-0",fieldGroupClassName:"mb-0"})],this.recoveryModel={},this.recoveryForm=new fesm2022_forms.gE({}),this.recoveryFields=[this.formlyService.buildInputConfig({key:"username",placeholder:"Username",inputKind:"STRING"})],this.state="LOGIN",this.isWaitingForPasswordReset=!1}setState(newState){this.state=newState,this.recoveryModel={},this.model={}}onLogin(){this.login.emit(this.model)}onPasswordReset(){this.resetPassword.emit(this.recoveryModel.username)}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={loginState:[{type:core.Input}],resetErrorMessage:[{type:core.Input}],login:[{type:core.Output}],resetPassword:[{type:core.Output}]}}};LoginComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-login",template:'\n
\n @if (state === "LOGIN") {\n Sign In \n @if (loginState) {\n \n {{ loginMessages[loginState] }}\n
\n }\n \n } @else {\n Password Reset \n \n Forgot your account\'s password? Enter your account name and we\'ll send\n you a randomized new password to your email address.\n
\n \n {{ resetErrorMessage }}\n
\n \n }\n \n
\n',standalone:!0,imports:[page_container_component.i,fesm2022_forms.YN,ngx_formly_core.qy,ngx_formly_bootstrap.u,button_component.Q],animations:[backInUp,flip.S],styles:[login_componentngResource_default()]})],LoginComponent);const login_stories={title:"DesignSystem/Templates/LoginComponent",component:LoginComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,formly_constants.d_],declarations:[]})],args:{extraMessage:"Extra message of some sort",resetErrorMessage:"Message for error during reset"}},Default=(args=>({props:{...args,login:(0,dist.XI)("login"),resetPassword:(0,dist.XI)("resetPassword")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n login: action('login'),\n resetPassword: action('resetPassword')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/login/login.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n width: 100%;\n max-width: 30rem;\n}\n\n.login {\n --animate-duration: 1000ms;\n}\n.login__subtitle-warning {\n margin-bottom: var(--spacer-3);\n color: var(--bs-warning);\n}\n.login__form {\n display: flex;\n flex-direction: column;\n}\n.login__button {\n margin-top: var(--spacer-4);\n}\n.login__button-left {\n margin-right: var(--spacer-2);\n}\n.login__reset-link {\n cursor: pointer;\n width: fit-content;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-organization-organization-stories.8d717d19.iframe.bundle.js b/design-templates-organization-organization-stories.8d717d19.iframe.bundle.js
new file mode 100644
index 000000000..b36b08b05
--- /dev/null
+++ b/design-templates-organization-organization-stories.8d717d19.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6539],{"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,iR:()=>numberValidator,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,tu:()=>notNumberMesage,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},notNumberMesage={name:"notNumber",message:"Your input is not a number."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const numberValidator={name:"notNumber",validation:function isNumberValidation(control){const isNumberType="number"==typeof control.value,isNumberString="string"==typeof control.value&&!isNaN(control.value),isNumber=isNumberType||isNumberString;return isNumber?null:{notNumber:!isNumber}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/editable-text/editable-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>EditableTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var editable_text_componentngResource=__webpack_require__("./src/design/organisms/editable-text/editable-text.component.scss?ngResource"),editable_text_componentngResource_default=__webpack_require__.n(editable_text_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),tinymce_tinymce_angular=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),alert_component=__webpack_require__("./src/design/atoms/alert/alert.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),formly_editor_field_constants=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts");let EditableTextComponent=class EditableTextComponent{constructor(){this.text=core.input.required(),this.placeholder=core.input.required(),this.canUpdate=core.input.required(),this.serverModel=(0,core.input)(),this.heading=(0,core.input)(),this.update=(0,core.output)(),this.settings=formly_editor_field_constants.O,this.state=(0,core.signal)("DISPLAY"),this.textModel="",this.editButtonText=(0,core.computed)((()=>{switch(this.state()){case"DISPLAY":return"edit";case"UPDATE":case"OUTDATED_UPDATE":return"cancel"}})),this.editorField=(0,core.viewChild)("editor"),(0,core.effect)((()=>{null!=this.serverModel()&&this.state.set("OUTDATED_UPDATE")}),{allowSignalWrites:!0})}toggleEdit(){"UPDATE"===this.state()?this.cancelEdit():this.startEdit()}startEdit(){this.state.set("UPDATE"),this.textModel=this.text(),this.focusField()}finishEdit(){this.update.emit(this.textModel),this.state.set("DISPLAY")}cancelEdit(){this.textModel=this.text(),this.state.set("DISPLAY")}focusField(){setTimeout((()=>this.editorField()._editor.focus()),100)}static{this.ctorParameters=()=>[]}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placeholder:[{type:core.Input,args:[{isSignal:!0,alias:"placeholder",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!1,transform:void 0}]}],update:[{type:core.Output,args:["update"]}],editorField:[{type:core.ViewChild,args:["editor",{isSignal:!0}]}]}}};EditableTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-editable-text",standalone:!0,imports:[common.NgTemplateOutlet,html_text_component.m,icon_component.R,tinymce_tinymce_angular.xn,fesm2022_forms.YN,alert_component.C,separator_component.F,button_component.Q],template:'\x3c!-- Heading --\x3e\n@let headingVal = heading();\n@if (headingVal) {\n \n \n @if (canUpdate()) {\n \n \n (\n {{ editButtonText() }}\n \n )\n \n \n }\n \n}\n\n\x3c!-- Text Body --\x3e\n@if (canUpdate()) {\n \n \n \n \n \n \x3c!-- Informating heading --\x3e\n
\n \n While you were updating this article, somebody else went ahead and updated\n it as well. Please include their changes in your update before submitting.\n \n\n \x3c!-- Textfield-Form --\x3e\n
\n \x3c!-- Comparison text --\x3e\n
\n\n
\n\n \x3c!-- Actual edit form --\x3e\n
\n
\n
\n} @else {\n \n}\n\n\n \n \n \n
\n \n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[editable_text_componentngResource_default()]})],EditableTextComponent)},"./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>TINYMCE_SETTINGS});const TINYMCE_SETTINGS={plugins:["advlist","autolink","lists","link","image","charmap","anchor","searchreplace","visualblocks","media","table","help","wordcount"],toolbar:["undo redo | formatselect | bold italic underline strikethrough subscript superscript link unlink blockquote | backcolor forecolor hilitecolor fontsizeselect |","alignleft aligncenter alignright | bullist numlist outdent indent | removeformat | table help"],skin:"oxide-dark",content_css:"dark",browser_spellcheck:!0,menubar:!1,height:500,convert_urls:!1,relative_urls:!1,branding:!1,base_url:"/tinymce",suffix:".min"}},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/design/templates/organization/organization.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermission:()=>NoPermission,__namedExportsOrder:()=>__namedExportsOrder,default:()=>organization_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),validators=__webpack_require__("./src/app/_services/formly/validators.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var organization_componentngResource=__webpack_require__("./src/design/templates/organization/organization.component.scss?ngResource"),organization_componentngResource_default=__webpack_require__.n(organization_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),image_carousel_card_component=__webpack_require__("./src/design/organisms/image-carousel-card/image-carousel-card.component.ts"),editable_text_component=__webpack_require__("./src/design/organisms/editable-text/editable-text.component.ts"),list_component=__webpack_require__("./src/design/molecules/list/list.component.ts"),article_footer_component=__webpack_require__("./src/design/molecules/article-footer/article-footer.component.ts");let OrganizationComponent=class OrganizationComponent{constructor(routingService){this.routingService=routingService,this.organization=core.input.required(),this.organizationServerModel=core.input.required(),this.serverUrl=core.input.required(),this.imageServerModel=core.input.required(),this.canUpdate=core.input.required(),this.canCreate=core.input.required(),this.canDelete=core.input.required(),this.createImage=new core.EventEmitter,this.deleteImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.organizationDelete=new core.EventEmitter,this.organizationUpdate=(0,core.output)(),this.overviewUrl=(0,core.computed)((()=>{const campaignName=this.organization().campaign_details?.name;return this.routingService.getRoutePath("organization-overview",{campaign:campaignName})})),this.updateUrl=(0,core.computed)((()=>{const campaignName=this.organization().campaign_details?.name;return this.routingService.getRoutePath("organization-update",{campaign:campaignName,name:this.organization().name})})),this.organizationMembers=(0,core.computed)((()=>this.organization().members?.map((member=>({label:member.name,link:this.routingService.getRoutePath("character",{campaign:this.organization().campaign_details?.name,name:member.name})})))??[])),this.headquarterUrl=(0,core.computed)((()=>{const campaignName=this.organization().campaign_details?.name;return this.routingService.getRoutePath("location",{campaign:campaignName,name:this.organization().headquarter_details?.name,parent_name:this.organization().headquarter_details?.parent_name})})),this.leaderUrl=(0,core.computed)((()=>{const campaignName=this.organization().campaign_details?.name;return this.routingService.getRoutePath("character",{campaign:campaignName,name:this.organization().leader})}))}routeToCharacterCreation(){this.routingService.routeToPath("character-create",{campaign:this.organization().campaign_details?.name})}onDescriptionUpdate(description){const itemToUpdate=void 0!==this.organizationServerModel()?this.organizationServerModel():this.organization();itemToUpdate&&this.organizationUpdate.emit({...itemToUpdate,description})}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={organization:[{type:core.Input,args:[{isSignal:!0,alias:"organization",required:!0,transform:void 0}]}],organizationServerModel:[{type:core.Input,args:[{isSignal:!0,alias:"organizationServerModel",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],imageServerModel:[{type:core.Input,args:[{isSignal:!0,alias:"imageServerModel",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],createImage:[{type:core.Output}],deleteImage:[{type:core.Output}],updateImage:[{type:core.Output}],organizationDelete:[{type:core.Output}],organizationUpdate:[{type:core.Output,args:["organizationUpdate"]}]}}};OrganizationComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-organization",template:'\n \n @if (canUpdate()) {\n \n }\n\n \x3c!-- Heading --\x3e\n \n
\n {{ organization().name }}\n \n \x3c!-- Leader-Subheading --\x3e\n
\n\n \x3c!-- Headquarters Subheading --\x3e\n
\n
\n\n \x3c!-- Image Gallery --\x3e\n \n\n \x3c!-- Description --\x3e\n \n\n \x3c!-- Members --\x3e\n \n\n \x3c!-- Footer (Move to other Article + Delete Article) --\x3e\n \n \n \nUnknown \n',standalone:!0,imports:[page_container_component.i,router.Wk,button_component.Q,common.NgTemplateOutlet,image_carousel_card_component.r,editable_text_component.T,list_component.s,article_footer_component.D],styles:[organization_componentngResource_default()]})],OrganizationComponent);const organization_stories={title:"DesignSystem/Templates/OrganizationComponent",component:OrganizationComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,ngx_formly_core.qy.forRoot({types:[{name:"file",component:molecules.JS,wrappers:["form-field"]}],validationMessages:[validators.h9,validators.zG],validators:[validators.yt,validators.jp]})],declarations:[]})],args:{imageServerModel:void 0,canCreate:!0,canUpdate:!0,canDelete:!0,organization:{pk:123,name:"Order of the Silver Lance",description:"A knightly order dedicated to protecting the innocent.",leader:"Sir Cedric",headquarter:456,headquarter_details:{name:"Castle Silverkeep",parent_name:"Kingdom of Arathia",pk:456,name_full:"Castle Silverkeep, Kingdom of Arathia"},members:[{name:"Sir Cedric",pk:789,alive:!0,organization_id:123,role:"Grandmaster"},{name:"Lady Elspeth",pk:790,alive:!0,organization_id:123,role:"Commander"},{name:"Sir Richard",pk:791,alive:!1,organization_id:123,role:"Knight"}],images:[{pk:234,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Order Emblem",organization_article:123,article_type:"Organization"},{pk:235,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Order Emblem",organization_article:123,article_type:"Organization"}],campaign:1,campaign_details:{id:1,name:"Campaign of Adventures"},creation_datetime:"2022-04-01T12:00:00Z",update_datetime:"2022-04-03T09:30:00Z",getAbsoluteRouterUrl:()=>"https://example.com/organizations/123"},serverUrl:"https://images.dog.ceo"}},Template=args=>({props:{...args,createImage:(0,dist.XI)("createImage"),deleteImage:(0,dist.XI)("deleteImage"),updateImage:(0,dist.XI)("updateImage"),organizationDelete:(0,dist.XI)("organizationDelete")}}),Default=Template.bind({});Default.args={};const NoPermission=Template.bind({});NoPermission.args={canDelete:!1,canUpdate:!1,canCreate:!1};const __namedExportsOrder=["Default","NoPermission"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createImage: action('createImage'),\n deleteImage: action('deleteImage'),\n updateImage: action('updateImage'),\n organizationDelete: action('organizationDelete')\n }\n})",...Default.parameters?.docs?.source}}},NoPermission.parameters={...NoPermission.parameters,docs:{...NoPermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createImage: action('createImage'),\n deleteImage: action('deleteImage'),\n updateImage: action('updateImage'),\n organizationDelete: action('organizationDelete')\n }\n})",...NoPermission.parameters?.docs?.source}}}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/editable-text/editable-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-block;\n}\n\n.heading {\n margin-bottom: var(--spacer-2);\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacer-3);\n}\n.heading__edit-text {\n margin: var(--spacer-0);\n}\n.heading__edit-button:focus, .heading__edit-button:focus-within, .heading__edit-button:hover {\n border-radius: var(--bs-border-radius);\n outline: var(--focus-outline);\n}\n\n.field {\n text-align: unset;\n border-radius: var(--bs-border-radius);\n}\n.field--display {\n min-height: 1rem;\n width: 100%;\n}\n.field--display:focus, .field--display:hover {\n color: unset;\n background-color: var(--bs-secondary);\n}\n.field--hidden {\n display: none;\n}\n.field__buttons {\n display: flex;\n flex-direction: row;\n gap: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/organization/organization.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".organization__edit-container {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n}\n.organization__heading {\n text-align: center;\n}\n.organization__subheading {\n text-align: center;\n}\n.organization__members {\n margin-bottom: var(--spacer-5);\n}\n.organization__images {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n.organization__description {\n width: 100%;\n margin-bottom: var(--spacer-5);\n}\n\n.subheading__icon {\n margin-left: var(--spacer-1);\n margin-right: var(--spacer-1);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-organization-organization-stories.d002725a.iframe.bundle.js b/design-templates-organization-organization-stories.d002725a.iframe.bundle.js
deleted file mode 100644
index 766833a13..000000000
--- a/design-templates-organization-organization-stories.d002725a.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6539],{"./src/app/_services/formly/validators.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Dq:()=>fieldsDontMatchMessage,EC:()=>timeValidator,N8:()=>dateValidator,Nd:()=>faPrefixMessage,Ou:()=>dateMessage,Oy:()=>requiredIconMessage,Z5:()=>specialCharacterValidator,cC:()=>iconValidator,d:()=>hasSpecialCharactersMessage,h9:()=>requiredMessage,jp:()=>integerValidator,k1:()=>sessionAlreadyHasAuthor,kO:()=>fieldMatchValidator,lk:()=>requiredIconValidator,wh:()=>invalidTimeMessage,yt:()=>requiredValidator,zG:()=>notIntegerMessage});const invalidTimeMessage={name:"time",message:"Time must have 'hh:mm:ss' pattern"},requiredMessage={name:"required",message:"This field is required!"},dateMessage={name:"date",message:"This date does not follow the pattern: 'YYYY-MM-DD'. Sorry to be such a Nazi about it. The computer is forcing me."},requiredIconMessage={name:"requiredIcon",message:"This field requires a fontawesome icon as input. Here is a list of them: https://fontawesome.com/v4.7.0/icons/"},faPrefixMessage={name:"faPrefix",message:"Icons are stored without the 'fa-' from font-awesome prefix"},notIntegerMessage={name:"notInteger",message:"Your input is not an integer. This field requires an integer number. No amount of revolution can overcome this."},hasSpecialCharactersMessage={name:"hasSpecialCharacters",message:'Your input includes one of the following invalid special characters: [ ] ( ) ? | \\ " % ~ # < > :. If you need to rebel, please dont against this.'},fieldsDontMatchMessage={name:"fieldMatch",message:"Password Not Matching"},sessionAlreadyHasAuthor={name:"isInvalidSessionAuthorPair",message:"\n The author you selected already has a diaryentry in the session you selected. You \n can't have 2 diaryentries from the same author in the same session. Consider writing \n your diaryentry as an encounter instead into the diaryentry at the spot you just considered."};const timeValidator={name:"time",validation:function timeValidation(control){const isValidTime=/\d\d.[0-5]\d.[0-5]\d/.test(control.value);return isValidTime?null:{time:!isValidTime}}};function requiredValidation(control){return!!control.value||0===control.value?null:{required:!0}}const requiredValidator={name:"required",validation:requiredValidation},requiredIconValidator={name:"requiredIcon",validation:requiredValidation};const dateValidator={name:"date",validation:function dateValidation(control){return/[1-2]\d{3}-(0\d|1[0-2])-[0-3]\d/.test(control.value)?null:{date:!0}}};const iconValidator={name:"faPrefix",validation:function iconValidation(control){const hasFaPrefix=/fa-/.test(control.value),hasFasPrefix=/fas-/.test(control.value),isValidIcon=hasFaPrefix||hasFasPrefix;return isValidIcon?null:{faPrefix:isValidIcon}}};const integerValidator={name:"notInteger",validation:function isIntegerValidation(control){if(null==control.value)return null;const isInteger="number"==typeof control.value&&Number.isInteger(control.value);return isInteger?null:{notInteger:!isInteger}}};const specialCharacterValidator={name:"hasSpecialCharacters",validation:function hasNoSpecialCharactersValidation(control){if("string"==typeof control.value){const specialCharacters=["[","]","(",")","|","\\",'"',"%","~","#","<",">","?","/",":"];for(const specialCharacter of specialCharacters)if(control.value.includes(specialCharacter))return{hasSpecialCharacters:!0}}return null}};const fieldMatchValidator={name:"fieldMatch",validation:function passwordMatchValidation(control){const{password,passwordConfirm}=control.value;return passwordConfirm&&password&&passwordConfirm===password?null:{fieldMatch:!0}}}},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/html-text/html-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{m:()=>HtmlTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var html_text_componentngResource=__webpack_require__("./src/design/atoms/html-text/html-text.component.scss?ngResource"),html_text_componentngResource_default=__webpack_require__.n(html_text_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let HtmlTextComponent=class HtmlTextComponent{constructor(){this.text=core.input.required()}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}]}}};HtmlTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-html-text",template:'
\n',standalone:!0,changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[html_text_componentngResource_default()]})],HtmlTextComponent)},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>InfoCircleTooltipComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var info_circle_tooltip_componentngResource=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource"),info_circle_tooltip_componentngResource_default=__webpack_require__.n(info_circle_tooltip_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let InfoCircleTooltipComponent=class InfoCircleTooltipComponent{constructor(){this.tooltip=core.input.required(),this.text=core.input.required(),this.placement=(0,core.input)("top"),this.tooltipKind=(0,core.computed)((()=>this.tooltip()instanceof core.TemplateRef?"custom":"text"))}static{this.propDecorators={tooltip:[{type:core.Input,args:[{isSignal:!0,alias:"tooltip",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placement:[{type:core.Input,args:[{isSignal:!0,alias:"placement",required:!1,transform:void 0}]}]}}};InfoCircleTooltipComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-info-circle-tooltip",template:'\n {{ text() }}\n \n \n\n\n \n {{ tooltip() }}\n
\n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,ng_bootstrap.md],styles:[info_circle_tooltip_componentngResource_default()]})],InfoCircleTooltipComponent)},"./src/design/organisms/editable-text/editable-text.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{T:()=>EditableTextComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var editable_text_componentngResource=__webpack_require__("./src/design/organisms/editable-text/editable-text.component.scss?ngResource"),editable_text_componentngResource_default=__webpack_require__.n(editable_text_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),tinymce_tinymce_angular=__webpack_require__("./node_modules/@tinymce/tinymce-angular/fesm2020/tinymce-tinymce-angular.mjs"),alert_component=__webpack_require__("./src/design/atoms/alert/alert.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),html_text_component=__webpack_require__("./src/design/atoms/html-text/html-text.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),formly_editor_field_constants=__webpack_require__("./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts");let EditableTextComponent=class EditableTextComponent{constructor(){this.text=core.input.required(),this.placeholder=core.input.required(),this.canUpdate=core.input.required(),this.serverModel=(0,core.input)(),this.heading=(0,core.input)(),this.update=(0,core.output)(),this.settings=formly_editor_field_constants.O,this.state=(0,core.signal)("DISPLAY"),this.textModel="",this.editButtonText=(0,core.computed)((()=>{switch(this.state()){case"DISPLAY":return"edit";case"UPDATE":case"OUTDATED_UPDATE":return"cancel"}})),this.editorField=(0,core.viewChild)("editor"),(0,core.effect)((()=>{null!=this.serverModel()&&this.state.set("OUTDATED_UPDATE")}),{allowSignalWrites:!0})}toggleEdit(){"UPDATE"===this.state()?this.cancelEdit():this.startEdit()}startEdit(){this.state.set("UPDATE"),this.textModel=this.text(),this.focusField()}finishEdit(){this.update.emit(this.textModel),this.state.set("DISPLAY")}cancelEdit(){this.textModel=this.text(),this.state.set("DISPLAY")}focusField(){setTimeout((()=>this.editorField()._editor.focus()),100)}static{this.ctorParameters=()=>[]}static{this.propDecorators={text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!0,transform:void 0}]}],placeholder:[{type:core.Input,args:[{isSignal:!0,alias:"placeholder",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],serverModel:[{type:core.Input,args:[{isSignal:!0,alias:"serverModel",required:!1,transform:void 0}]}],heading:[{type:core.Input,args:[{isSignal:!0,alias:"heading",required:!1,transform:void 0}]}],update:[{type:core.Output,args:["update"]}],editorField:[{type:core.ViewChild,args:["editor",{isSignal:!0}]}]}}};EditableTextComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-editable-text",standalone:!0,imports:[common.NgTemplateOutlet,html_text_component.m,icon_component.R,tinymce_tinymce_angular.xn,fesm2022_forms.YN,alert_component.C,separator_component.F,button_component.Q],template:'\x3c!-- Heading --\x3e\n@let headingVal = heading();\n@if (headingVal) {\n \n \n @if (canUpdate()) {\n \n \n (\n {{ editButtonText() }}\n \n )\n \n \n }\n \n}\n\n\x3c!-- Text Body --\x3e\n@if (canUpdate()) {\n \n \n \n \n \n \x3c!-- Informating heading --\x3e\n
\n \n While you were updating this article, somebody else went ahead and updated\n it as well. Please include their changes in your update before submitting.\n \n\n \x3c!-- Textfield-Form --\x3e\n
\n \x3c!-- Comparison text --\x3e\n
\n\n
\n\n \x3c!-- Actual edit form --\x3e\n
\n
\n
\n} @else {\n \n}\n\n\n \n \n \n
\n \n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[editable_text_componentngResource_default()]})],EditableTextComponent)},"./src/design/organisms/formly-editor-field/formly-editor-field.constants.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>TINYMCE_SETTINGS});const TINYMCE_SETTINGS={plugins:["advlist","autolink","lists","link","image","charmap","anchor","searchreplace","visualblocks","media","table","help","wordcount"],toolbar:["undo redo | formatselect | bold italic underline strikethrough subscript superscript link unlink blockquote | backcolor forecolor hilitecolor fontsizeselect |","alignleft aligncenter alignright | bullist numlist outdent indent | removeformat | table help"],skin:"oxide-dark",content_css:"dark",browser_spellcheck:!0,menubar:!1,height:500,convert_urls:!1,relative_urls:!1,branding:!1,base_url:"/tinymce",suffix:".min"}},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>FormlySelectDisableFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var formly_select_disable_field_componentngResource=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource"),formly_select_disable_field_componentngResource_default=__webpack_require__.n(formly_select_disable_field_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),ngx_formly_bootstrap_form_field=__webpack_require__("./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),Observable=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/Observable.js"),combineLatest=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js"),map=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),info_circle_tooltip_component=__webpack_require__("./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.ts");let FormlySelectDisableFieldComponent=class FormlySelectDisableFieldComponent extends ngx_formly_bootstrap_form_field.P{static{this.EMPTY_OPTION_LABEL="------"}static{this.EMPTY_OPTION_VALUE=null}ngOnInit(){const templateOptions=this.props,formControl=this.formControl,model=this.model,options$=this.props.options;if(!(options$ instanceof Observable.c))throw"InvalidSelectOptionsException. You tried to create a FormlySelectDisableComponent - field, but provided an option that wasn't an Observable!";const isOptionDisabled$=(0,this.props.additionalProperties.disabledExpression)(options$,templateOptions,formControl,model);this.selectOptions$=(0,combineLatest.z)({options:options$,isDisabledList:isOptionDisabled$}).pipe((0,map.T)((({options,isDisabledList})=>options.map(((opt,index)=>({value:opt,enabled:!isDisabledList[index]})))))),this.setModelValue()}ngOnChanges(){this.setModelValue()}setModelValue(){const key=this.key,model=this.field.model;this.modelValue=model[key]}};FormlySelectDisableFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-formly-select-disable",template:'\n
\n \n \n\n @let selectOptions = selectOptions$ | async;\n @if (selectOptions) {\n
\n @for (entry of selectOptions; track entry) {\n \n {{ entry.value[props["labelProp"]] }}\n \n }\n \n }\n
\n',standalone:!0,imports:[info_circle_tooltip_component.$,fesm2022_forms.X1,ngx_formly_core.qy,common.AsyncPipe],styles:[formly_select_disable_field_componentngResource_default()]})],FormlySelectDisableFieldComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/design/templates/organization/organization.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoPermission:()=>NoPermission,__namedExportsOrder:()=>__namedExportsOrder,default:()=>organization_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),ngx_formly_core=__webpack_require__("./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),validators=__webpack_require__("./src/app/_services/formly/validators.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var organization_componentngResource=__webpack_require__("./src/design/templates/organization/organization.component.scss?ngResource"),organization_componentngResource_default=__webpack_require__.n(organization_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),image_carousel_card_component=__webpack_require__("./src/design/organisms/image-carousel-card/image-carousel-card.component.ts"),editable_text_component=__webpack_require__("./src/design/organisms/editable-text/editable-text.component.ts"),list_component=__webpack_require__("./src/design/molecules/list/list.component.ts"),article_footer_component=__webpack_require__("./src/design/molecules/article-footer/article-footer.component.ts");let OrganizationComponent=class OrganizationComponent{constructor(routingService){this.routingService=routingService,this.organization=core.input.required(),this.organizationServerModel=core.input.required(),this.serverUrl=core.input.required(),this.imageServerModel=core.input.required(),this.canUpdate=core.input.required(),this.canCreate=core.input.required(),this.canDelete=core.input.required(),this.createImage=new core.EventEmitter,this.deleteImage=new core.EventEmitter,this.updateImage=new core.EventEmitter,this.organizationDelete=new core.EventEmitter,this.organizationUpdate=(0,core.output)(),this.overviewUrl=(0,core.computed)((()=>{const campaignName=this.organization().campaign_details?.name;return this.routingService.getRoutePath("organization-overview",{campaign:campaignName})})),this.updateUrl=(0,core.computed)((()=>{const campaignName=this.organization().campaign_details?.name;return this.routingService.getRoutePath("organization-update",{campaign:campaignName,name:this.organization().name})})),this.organizationMembers=(0,core.computed)((()=>this.organization().members?.map((member=>({label:member.name,link:this.routingService.getRoutePath("character",{campaign:this.organization().campaign_details?.name,name:member.name})})))??[])),this.headquarterUrl=(0,core.computed)((()=>{const campaignName=this.organization().campaign_details?.name;return this.routingService.getRoutePath("location",{campaign:campaignName,name:this.organization().headquarter_details?.name,parent_name:this.organization().headquarter_details?.parent_name})})),this.leaderUrl=(0,core.computed)((()=>{const campaignName=this.organization().campaign_details?.name;return this.routingService.getRoutePath("character",{campaign:campaignName,name:this.organization().leader})}))}routeToCharacterCreation(){this.routingService.routeToPath("character-create",{campaign:this.organization().campaign_details?.name})}onDescriptionUpdate(description){const itemToUpdate=void 0!==this.organizationServerModel()?this.organizationServerModel():this.organization();itemToUpdate&&this.organizationUpdate.emit({...itemToUpdate,description})}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={organization:[{type:core.Input,args:[{isSignal:!0,alias:"organization",required:!0,transform:void 0}]}],organizationServerModel:[{type:core.Input,args:[{isSignal:!0,alias:"organizationServerModel",required:!0,transform:void 0}]}],serverUrl:[{type:core.Input,args:[{isSignal:!0,alias:"serverUrl",required:!0,transform:void 0}]}],imageServerModel:[{type:core.Input,args:[{isSignal:!0,alias:"imageServerModel",required:!0,transform:void 0}]}],canUpdate:[{type:core.Input,args:[{isSignal:!0,alias:"canUpdate",required:!0,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!0,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!0,transform:void 0}]}],createImage:[{type:core.Output}],deleteImage:[{type:core.Output}],updateImage:[{type:core.Output}],organizationDelete:[{type:core.Output}],organizationUpdate:[{type:core.Output,args:["organizationUpdate"]}]}}};OrganizationComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-organization",template:'\n \n @if (canUpdate()) {\n \n }\n\n \x3c!-- Heading --\x3e\n \n
\n {{ organization().name }}\n \n \x3c!-- Leader-Subheading --\x3e\n
\n\n \x3c!-- Headquarters Subheading --\x3e\n
\n
\n\n \x3c!-- Image Gallery --\x3e\n \n\n \x3c!-- Description --\x3e\n \n\n \x3c!-- Members --\x3e\n \n\n \x3c!-- Footer (Move to other Article + Delete Article) --\x3e\n \n \n \nUnknown \n',standalone:!0,imports:[page_container_component.i,router.Wk,button_component.Q,common.NgTemplateOutlet,image_carousel_card_component.r,editable_text_component.T,list_component.s,article_footer_component.D],styles:[organization_componentngResource_default()]})],OrganizationComponent);const organization_stories={title:"DesignSystem/Templates/OrganizationComponent",component:OrganizationComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,ngx_formly_core.qy.forRoot({types:[{name:"file",component:molecules.JS,wrappers:["form-field"]}],validationMessages:[validators.h9,validators.zG],validators:[validators.yt,validators.jp]})],declarations:[]})],args:{imageServerModel:void 0,canCreate:!0,canUpdate:!0,canDelete:!0,organization:{pk:123,name:"Order of the Silver Lance",description:"A knightly order dedicated to protecting the innocent.",leader:"Sir Cedric",headquarter:456,headquarter_details:{name:"Castle Silverkeep",parent_name:"Kingdom of Arathia",pk:456,name_full:"Castle Silverkeep, Kingdom of Arathia"},members:[{name:"Sir Cedric",pk:789,alive:!0,organization_id:123,role:"Grandmaster"},{name:"Lady Elspeth",pk:790,alive:!0,organization_id:123,role:"Commander"},{name:"Sir Richard",pk:791,alive:!1,organization_id:123,role:"Knight"}],images:[{pk:234,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Order Emblem",organization_article:123,article_type:"Organization"},{pk:235,image:"/breeds/mastiff-tibetan/n02108551_5830.jpg",name:"Order Emblem",organization_article:123,article_type:"Organization"}],campaign:1,campaign_details:{id:1,name:"Campaign of Adventures"},creation_datetime:"2022-04-01T12:00:00Z",update_datetime:"2022-04-03T09:30:00Z",getAbsoluteRouterUrl:()=>"https://example.com/organizations/123"},serverUrl:"https://images.dog.ceo"}},Template=args=>({props:{...args,createImage:(0,dist.XI)("createImage"),deleteImage:(0,dist.XI)("deleteImage"),updateImage:(0,dist.XI)("updateImage"),organizationDelete:(0,dist.XI)("organizationDelete")}}),Default=Template.bind({});Default.args={};const NoPermission=Template.bind({});NoPermission.args={canDelete:!1,canUpdate:!1,canCreate:!1};const __namedExportsOrder=["Default","NoPermission"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createImage: action('createImage'),\n deleteImage: action('deleteImage'),\n updateImage: action('updateImage'),\n organizationDelete: action('organizationDelete')\n }\n})",...Default.parameters?.docs?.source}}},NoPermission.parameters={...NoPermission.parameters,docs:{...NoPermission.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createImage: action('createImage'),\n deleteImage: action('deleteImage'),\n updateImage: action('updateImage'),\n organizationDelete: action('organizationDelete')\n }\n})",...NoPermission.parameters?.docs?.source}}}},"./src/design/atoms/html-text/html-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/info-circle-tooltip/info-circle-tooltip.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/editable-text/editable-text.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-block;\n}\n\n.heading {\n margin-bottom: var(--spacer-2);\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--spacer-3);\n}\n.heading__edit-text {\n margin: var(--spacer-0);\n}\n.heading__edit-button:focus, .heading__edit-button:focus-within, .heading__edit-button:hover {\n border-radius: var(--bs-border-radius);\n outline: var(--focus-outline);\n}\n\n.field {\n text-align: unset;\n border-radius: var(--bs-border-radius);\n}\n.field--display {\n min-height: 1rem;\n width: 100%;\n}\n.field--display:focus, .field--display:hover {\n color: unset;\n background-color: var(--bs-secondary);\n}\n.field--hidden {\n display: none;\n}\n.field__buttons {\n display: flex;\n flex-direction: row;\n gap: var(--spacer-3);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/formly-select-disable/formly-select-disable-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".warning {\n color: var(--lightest-red);\n font-size: 80%;\n}\n\napp-spinner {\n --thickness: 30px;\n}\n\n.field {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/organization/organization.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".organization__edit-container {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n}\n.organization__heading {\n text-align: center;\n}\n.organization__subheading {\n text-align: center;\n}\n.organization__members {\n margin-bottom: var(--spacer-5);\n}\n.organization__images {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n.organization__description {\n width: 100%;\n margin-bottom: var(--spacer-5);\n}\n\n.subheading__icon {\n margin-left: var(--spacer-1);\n margin-right: var(--spacer-1);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-profile-profile-stories.2916b564.iframe.bundle.js b/design-templates-profile-profile-stories.2916b564.iframe.bundle.js
deleted file mode 100644
index 903cf3b5c..000000000
--- a/design-templates-profile-profile-stories.2916b564.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8823],{"./src/app/_models/token.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>CampaignRoles});const CampaignRoles=["member","admin","guest","globalguest","globalmember"]},"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/utils/token.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{B:()=>TokenService});var TokenService_1,tslib__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_common_http__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/common/fesm2022/http.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),src_app_models_token__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/app/_models/token.ts"),src_environments_environment__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/environments/environment.ts"),src_utils_logging__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/logging.ts");let TokenService=class TokenService{static{TokenService_1=this}static{this.USER_DATA_KEY="user_data"}constructor(http){this.http=http,this.apiUrl=src_environments_environment__WEBPACK_IMPORTED_MODULE_0__.c.apiUrl,this.jwtTokenUrl=`${this.apiUrl}/token`,this.refreshTokenUrl=`${this.apiUrl}/token/refresh`,this.ID_IDENTIFIER_PREFIX="id_"}login(loginData){return this.http.post(this.jwtTokenUrl,loginData)}logout(){}refreshUserData(){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_1__.R)(this.refreshUserData.name);const refreshToken=TokenService_1.getRefreshToken()?.token;if(!refreshToken)return;const httpHeaders=(new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.Lr).set("Authorization",`Bearer ${refreshToken}`);return this.http.post(this.refreshTokenUrl,{refresh:refreshToken},{headers:httpHeaders})}invalidateJWTToken(){}static getUserData(){const rawUserData=localStorage.getItem(TokenService_1.USER_DATA_KEY);return null!=rawUserData&&"undefined"!==rawUserData?JSON.parse(rawUserData):void 0}static getAccessToken(){return this.getUserData()?.accessToken}static getRefreshToken(){return this.getUserData()?.refreshToken}setUserData(data){localStorage.setItem(TokenService_1.USER_DATA_KEY,JSON.stringify(data))}getCampaignRole(data,campaignName){if(null==campaignName)return;const memberships=this.getCampaignMemberships(data);if(null==memberships)return;const role=memberships[campaignName.toLowerCase()];return src_app_models_token__WEBPACK_IMPORTED_MODULE_3__.u.some((roleName=>roleName===role))?role:void 0}getCampaignMemberships(data){if(null==data)return;const campaignMemberships={};for(const campaignIdentifier of Object.keys(data.campaignMemberships)){campaignIdentifier.startsWith(this.ID_IDENTIFIER_PREFIX)||(campaignMemberships[campaignIdentifier.toLowerCase()]=data.campaignMemberships[campaignIdentifier])}return campaignMemberships}isAccessTokenExpired(){return this.isTokenExpired(TokenService_1.getAccessToken())}isRefreshTokenExpired(){return this.isTokenExpired(TokenService_1.getRefreshToken())}isTokenExpired(token){if(null==token)return!0;const expiryTimestamp=token.exp,currentTimestamp=Math.floor((new Date).getTime()/1e3),isExpired=currentTimestamp>=expiryTimestamp;if(isExpired){const currentDate=new Date(1e3*currentTimestamp).toString(),expiryDate=new Date(1e3*expiryTimestamp).toString(),tokenName=token.type.toLocaleUpperCase();console.log(`\n ${tokenName} Token is expired. \n Request timestamp: ${currentDate}. \n Token expiry timestamp: ${expiryDate}\n `)}return isExpired}static{this.ctorParameters=()=>[{type:_angular_common_http__WEBPACK_IMPORTED_MODULE_2__.Qq}]}};TokenService=TokenService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_4__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Injectable)({providedIn:"root"})],TokenService)},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/profile/profile.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>profile_stories});var TokenMockService_1,testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),of=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),token=__webpack_require__("./src/app/_models/token.ts");const dummyUserData={accessToken:{token:"abcdef123456",exp:1678923456,type:"access"},refreshToken:{token:"ghijkl789012",exp:1678923456,type:"refresh"},userId:123,userName:"john_doe",isAdmin:!0,isSuperUser:!1,campaignMemberships:{campaign1:"admin",campaign2:"member",campaign3:"guest"}};let TokenMockService=TokenMockService_1=class TokenMockService{constructor(){this.ID_IDENTIFIER_PREFIX="id_"}login(userModel){return(0,of.of)(dummyUserData)}refreshUserData(){return(0,of.of)(dummyUserData)}invalidateJWTToken(){}static getUserData(){return dummyUserData}hasTokens(){return null!=TokenMockService_1.getUserData()&&(!!TokenMockService_1.getAccessToken()&&!!TokenMockService_1.getRefreshToken())}hasValidJWTToken(){return!!this.hasTokens()&&!this.isTokenExpired(TokenMockService_1.getRefreshToken())}static getAccessToken(){return this.getUserData().accessToken}static getRefreshToken(){return this.getUserData().refreshToken}setUserData(data){console.log("set user data: ",data)}removeJWTTokenFromLocalStorage(){console.log("removeJWTTokenFromLocalStorage")}getCurrentUserPk(){return TokenMockService_1.getUserData().userId}isAdmin(){const data=TokenMockService_1.getUserData();return null!=data&&data.isAdmin}isSuperUser(){const data=TokenMockService_1.getUserData();return null!=data&&data.isSuperUser}getCurrentUserName(){return TokenMockService_1.getUserData()?.userName}isCampaignMember(campaignName){const role=this.getCampaignRole(campaignName);return null!=role&&(this.isSuperUser()||this.isAdmin()||"member"===role||"admin"===role)}isCampaignAdmin(campaignName){return this.isSuperUser()||this.isAdmin()||"admin"===this.getCampaignRole(campaignName)}isCampaignGuest(campaignName){return this.isSuperUser()||this.isAdmin()||"guest"===this.getCampaignRole(campaignName)}getCampaignRole(campaignName){if(null==campaignName)return;const memberships=this.getCampaignMemberships();if(null==memberships)return;const role=memberships[campaignName.toLowerCase()];return token.u.some((roleName=>roleName===role))?role:void 0}getCampaignMemberships(){const data=TokenMockService_1.getUserData(),campaignMemberships={};for(const campaignIdentifier of Object.keys(data.campaignMemberships)){campaignIdentifier.startsWith(this.ID_IDENTIFIER_PREFIX)||(campaignMemberships[campaignIdentifier.toLowerCase()]=data.campaignMemberships[campaignIdentifier])}return campaignMemberships}isAccessTokenExpired(){return this.isTokenExpired(TokenMockService_1.getAccessToken())}isRefreshTokenExpired(){return this.isTokenExpired(TokenMockService_1.getRefreshToken())}isTokenExpired(token){const expiryTimestamp=token.exp,currentTimestamp=Math.floor((new Date).getTime()/1e3),isExpired=currentTimestamp>=expiryTimestamp;return isExpired&&console.log(`${token.type} Token is expired. Request timestamp: ${new Date(1e3*currentTimestamp).toString()}. Token expiry timestamp: ${new Date(1e3*expiryTimestamp).toString()}`),isExpired}};TokenMockService=TokenMockService_1=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],TokenMockService);var token_service=__webpack_require__("./src/app/_services/utils/token.service.ts");var profile_componentngResource=__webpack_require__("./src/design/templates/profile/profile.component.scss?ngResource"),profile_componentngResource_default=__webpack_require__.n(profile_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),alert_component=__webpack_require__("./src/design/atoms/alert/alert.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),confirmation_toggle_button_component=__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts"),form_component=__webpack_require__("./src/design/molecules/form/form.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts");let ProfileComponent=class ProfileComponent{constructor(formlyService){this.formlyService=formlyService,this.canDeleteProfile=!1,this.showProfileEditForm=!1,this.showPasswordEditForm=!1,this.backUrl=core.input.required(),this.profileUpdate=new core.EventEmitter,this.passwordUpdate=new core.EventEmitter,this.campaignLeave=new core.EventEmitter,this.profileDelete=new core.EventEmitter,this.passwordModel={},this.passwordFields=[this.formlyService.buildSinglePasswordConfig({key:"oldPassword",label:"Your old password"}),this.formlyService.buildConfirmedPasswordConfig({label:"New Password"})],this.profileModel={},this.profileFields=[this.formlyService.buildInputConfig({key:"username",inputKind:"STRING"}),this.formlyService.buildInputConfig({key:"email",required:!1,inputKind:"STRING"})]}toggleProfileEditState(){this.showProfileEditForm=!this.showProfileEditForm,this.showProfileEditForm&&(this.profileModel={username:this.user.username,email:this.user.email})}submitProfileUpdate(){this.profileUpdate.emit(this.profileModel),this.showProfileEditForm=!1}togglePasswordEditState(){this.showPasswordEditForm=!this.showPasswordEditForm,this.showPasswordEditForm&&(this.passwordModel={})}updatePassword(){const hasNewPassword=null!=this.passwordModel.password,hasOldPassword=null!=this.passwordModel.oldPassword;hasNewPassword&&hasOldPassword&&(this.passwordUpdate.emit(this.passwordModel),this.showPasswordEditForm=!1)}toggleLeaveCampaignState(membership){membership.isLeaving=!membership.isLeaving}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={user:[{type:core.Input}],memberships:[{type:core.Input}],canDeleteProfile:[{type:core.Input}],showProfileEditForm:[{type:core.Input}],showPasswordEditForm:[{type:core.Input}],campaignName:[{type:core.Input}],backUrl:[{type:core.Input,args:[{isSignal:!0,alias:"backUrl",required:!0,transform:void 0}]}],profileUpdate:[{type:core.Output}],passwordUpdate:[{type:core.Output}],campaignLeave:[{type:core.Output}],profileDelete:[{type:core.Output}]}}};ProfileComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-profile",template:'\n \n \x3c!-- Section Heading --\x3e\n \n
\n \n Profile\n \n\n \x3c!-- Header Buttons --\x3e\n
\n \n\n \n
\n
\n\n \n\n \x3c!-- Profile --\x3e\n @if (!showProfileEditForm) {\n \n
Profile Data \n
Username
\n
{{ user.username }}
\n
Email
\n
{{ user.email }}
\n
\n \n
Campaign Memberships \n @for (membership of memberships; track membership; let i = $index) {\n
\n \n
\n }\n
\n } @else {\n \n \n \n }\n\n \x3c!-- Password Form --\x3e\n @if (showPasswordEditForm) {\n \n \n \n }\n\n \n
\n\n @if (canDeleteProfile) {\n
\n }\n
\n \n \n\n\n \n
{{ context.membership.campaignName | titlecase }}
\n
{{ context.membership.role | titlecase }}
\n
\n \n
\n
\n \n\n\n \n \n Permanently leave \'{{\n context.membership.campaignName | titlecase\n }}\'? \n
\n \n \n \n \n',standalone:!0,imports:[page_container_component.i,icon_component.R,button_component.Q,separator_component.F,common.NgTemplateOutlet,card_component.i,form_component.s,router.Wk,confirmation_toggle_button_component.T,alert_component.C,common.TitleCasePipe],styles:[profile_componentngResource_default()]})],ProfileComponent);const profile_stories={title:"DesignSystem/Templates/ProfileComponent",component:ProfileComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,formly_constants.d_],providers:[{provide:token_service.B,useClass:TokenMockService}]})],args:{user:{username:"john_doe",password:"password123",pk:1,api_permissions:["read","write"],groups:[1,2],group_details:[{name:"Group A",pk:1},{name:"Group B",pk:2}],is_staff:!1,is_superuser:!1,email:"john_doe@example-long-email-address.com",is_active:!0},campaignName:"Aldrune",memberships:[{campaignName:"Campaign A",role:"admin",isLeaving:!1},{campaignName:"Campaign B",role:"member",isLeaving:!1},{campaignName:"Campaign C",role:"guest",isLeaving:!1}],canDeleteProfile:!0,showProfileEditForm:!1,showPasswordEditForm:!1}},Default=(args=>({props:{...args,profileUpdate:(0,dist.XI)("profileUpdate"),profileDelete:(0,dist.XI)("profileDelete"),campaignLeave:(0,dist.XI)("campaignLeave"),passwordUpdate:(0,dist.XI)("passwordUpdate")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n profileUpdate: action('profileUpdate'),\n profileDelete: action('profileDelete'),\n campaignLeave: action('campaignLeave'),\n passwordUpdate: action('passwordUpdate')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/profile/profile.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".profile__data {\n margin-bottom: var(--spacer-4);\n}\n\n.heading {\n display: flex;\n justify-content: space-between;\n}\n.heading__text {\n margin-bottom: var(--spacer-0);\n}\n.heading__buttons {\n position: relative;\n display: flex;\n align-self: flex-end;\n justify-content: flex-end;\n top: 1px;\n}\n.heading__button {\n border: var(--bs-white) 1px solid;\n border-radius: var(--bs-border-radius);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-profile-profile-stories.c01d8f07.iframe.bundle.js b/design-templates-profile-profile-stories.c01d8f07.iframe.bundle.js
new file mode 100644
index 000000000..2ea5f5653
--- /dev/null
+++ b/design-templates-profile-profile-stories.c01d8f07.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[8823],{"./src/app/_models/token.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{u:()=>CampaignRoles});const CampaignRoles=["member","admin","guest","globalguest","globalmember"]},"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/utils/token.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{B:()=>TokenService});var TokenService_1,tslib__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_common_http__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/common/fesm2022/http.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),src_app_models_token__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./src/app/_models/token.ts"),src_environments_environment__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/environments/environment.ts"),src_utils_logging__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/logging.ts");let TokenService=class TokenService{static{TokenService_1=this}static{this.USER_DATA_KEY="user_data"}constructor(http){this.http=http,this.apiUrl=src_environments_environment__WEBPACK_IMPORTED_MODULE_0__.c.apiUrl,this.jwtTokenUrl=`${this.apiUrl}/token`,this.refreshTokenUrl=`${this.apiUrl}/token/refresh`,this.ID_IDENTIFIER_PREFIX="id_"}login(loginData){return this.http.post(this.jwtTokenUrl,loginData)}logout(){}refreshUserData(){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_1__.R)(this.refreshUserData.name);const refreshToken=TokenService_1.getRefreshToken()?.token;if(!refreshToken)return;const httpHeaders=(new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__.Lr).set("Authorization",`Bearer ${refreshToken}`);return this.http.post(this.refreshTokenUrl,{refresh:refreshToken},{headers:httpHeaders})}invalidateJWTToken(){}static getUserData(){const rawUserData=localStorage.getItem(TokenService_1.USER_DATA_KEY);return null!=rawUserData&&"undefined"!==rawUserData?JSON.parse(rawUserData):void 0}static getAccessToken(){return this.getUserData()?.accessToken}static getRefreshToken(){return this.getUserData()?.refreshToken}setUserData(data){localStorage.setItem(TokenService_1.USER_DATA_KEY,JSON.stringify(data))}getCampaignRole(data,campaignName){if(null==campaignName)return;const memberships=this.getCampaignMemberships(data);if(null==memberships)return;const role=memberships[campaignName.toLowerCase()];return src_app_models_token__WEBPACK_IMPORTED_MODULE_3__.u.some((roleName=>roleName===role))?role:void 0}getCampaignMemberships(data){if(null==data)return;const campaignMemberships={};for(const campaignIdentifier of Object.keys(data.campaignMemberships)){campaignIdentifier.startsWith(this.ID_IDENTIFIER_PREFIX)||(campaignMemberships[campaignIdentifier.toLowerCase()]=data.campaignMemberships[campaignIdentifier])}return campaignMemberships}isAccessTokenExpired(){return this.isTokenExpired(TokenService_1.getAccessToken())}isRefreshTokenExpired(){return this.isTokenExpired(TokenService_1.getRefreshToken())}isTokenExpired(token){if(null==token)return!0;const expiryTimestamp=token.exp,currentTimestamp=Math.floor((new Date).getTime()/1e3),isExpired=currentTimestamp>=expiryTimestamp;if(isExpired){const currentDate=new Date(1e3*currentTimestamp).toString(),expiryDate=new Date(1e3*expiryTimestamp).toString(),tokenName=token.type.toLocaleUpperCase();console.log(`\n ${tokenName} Token is expired. \n Request timestamp: ${currentDate}. \n Token expiry timestamp: ${expiryDate}\n `)}return isExpired}static{this.ctorParameters=()=>[{type:_angular_common_http__WEBPACK_IMPORTED_MODULE_2__.Qq}]}};TokenService=TokenService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_4__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Injectable)({providedIn:"root"})],TokenService)},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/profile/profile.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>profile_stories});var TokenMockService_1,testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),of=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),token=__webpack_require__("./src/app/_models/token.ts");const dummyUserData={accessToken:{token:"abcdef123456",exp:1678923456,type:"access"},refreshToken:{token:"ghijkl789012",exp:1678923456,type:"refresh"},userId:123,userName:"john_doe",isAdmin:!0,isSuperUser:!1,campaignMemberships:{campaign1:"admin",campaign2:"member",campaign3:"guest"}};let TokenMockService=TokenMockService_1=class TokenMockService{constructor(){this.ID_IDENTIFIER_PREFIX="id_"}login(userModel){return(0,of.of)(dummyUserData)}refreshUserData(){return(0,of.of)(dummyUserData)}invalidateJWTToken(){}static getUserData(){return dummyUserData}hasTokens(){return null!=TokenMockService_1.getUserData()&&(!!TokenMockService_1.getAccessToken()&&!!TokenMockService_1.getRefreshToken())}hasValidJWTToken(){return!!this.hasTokens()&&!this.isTokenExpired(TokenMockService_1.getRefreshToken())}static getAccessToken(){return this.getUserData().accessToken}static getRefreshToken(){return this.getUserData().refreshToken}setUserData(data){console.log("set user data: ",data)}removeJWTTokenFromLocalStorage(){console.log("removeJWTTokenFromLocalStorage")}getCurrentUserPk(){return TokenMockService_1.getUserData().userId}isAdmin(){const data=TokenMockService_1.getUserData();return null!=data&&data.isAdmin}isSuperUser(){const data=TokenMockService_1.getUserData();return null!=data&&data.isSuperUser}getCurrentUserName(){return TokenMockService_1.getUserData()?.userName}isCampaignMember(campaignName){const role=this.getCampaignRole(campaignName);return null!=role&&(this.isSuperUser()||this.isAdmin()||"member"===role||"admin"===role)}isCampaignAdmin(campaignName){return this.isSuperUser()||this.isAdmin()||"admin"===this.getCampaignRole(campaignName)}isCampaignGuest(campaignName){return this.isSuperUser()||this.isAdmin()||"guest"===this.getCampaignRole(campaignName)}getCampaignRole(campaignName){if(null==campaignName)return;const memberships=this.getCampaignMemberships();if(null==memberships)return;const role=memberships[campaignName.toLowerCase()];return token.u.some((roleName=>roleName===role))?role:void 0}getCampaignMemberships(){const data=TokenMockService_1.getUserData(),campaignMemberships={};for(const campaignIdentifier of Object.keys(data.campaignMemberships)){campaignIdentifier.startsWith(this.ID_IDENTIFIER_PREFIX)||(campaignMemberships[campaignIdentifier.toLowerCase()]=data.campaignMemberships[campaignIdentifier])}return campaignMemberships}isAccessTokenExpired(){return this.isTokenExpired(TokenMockService_1.getAccessToken())}isRefreshTokenExpired(){return this.isTokenExpired(TokenMockService_1.getRefreshToken())}isTokenExpired(token){const expiryTimestamp=token.exp,currentTimestamp=Math.floor((new Date).getTime()/1e3),isExpired=currentTimestamp>=expiryTimestamp;return isExpired&&console.log(`${token.type} Token is expired. Request timestamp: ${new Date(1e3*currentTimestamp).toString()}. Token expiry timestamp: ${new Date(1e3*expiryTimestamp).toString()}`),isExpired}};TokenMockService=TokenMockService_1=(0,tslib_es6.Cg)([(0,core.Injectable)({providedIn:"root"})],TokenMockService);var token_service=__webpack_require__("./src/app/_services/utils/token.service.ts");var profile_componentngResource=__webpack_require__("./src/design/templates/profile/profile.component.scss?ngResource"),profile_componentngResource_default=__webpack_require__.n(profile_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),alert_component=__webpack_require__("./src/design/atoms/alert/alert.component.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),confirmation_toggle_button_component=__webpack_require__("./src/design/molecules/confirmation-toggle-button/confirmation-toggle-button.component.ts"),form_component=__webpack_require__("./src/design/molecules/form/form.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts");let ProfileComponent=class ProfileComponent{constructor(formlyService){this.formlyService=formlyService,this.canDeleteProfile=!1,this.showProfileEditForm=!1,this.showPasswordEditForm=!1,this.backUrl=core.input.required(),this.profileUpdate=new core.EventEmitter,this.passwordUpdate=new core.EventEmitter,this.campaignLeave=new core.EventEmitter,this.profileDelete=new core.EventEmitter,this.passwordModel={},this.passwordFields=[this.formlyService.buildSinglePasswordConfig({key:"oldPassword",label:"Your old password"}),this.formlyService.buildConfirmedPasswordConfig({label:"New Password"})],this.profileModel={},this.profileFields=[this.formlyService.buildInputConfig({key:"username",inputKind:"STRING"}),this.formlyService.buildInputConfig({key:"email",required:!1,inputKind:"STRING"})]}toggleProfileEditState(){this.showProfileEditForm=!this.showProfileEditForm,this.showProfileEditForm&&(this.profileModel={username:this.user.username,email:this.user.email})}submitProfileUpdate(){this.profileUpdate.emit(this.profileModel),this.showProfileEditForm=!1}togglePasswordEditState(){this.showPasswordEditForm=!this.showPasswordEditForm,this.showPasswordEditForm&&(this.passwordModel={})}updatePassword(){const hasNewPassword=null!=this.passwordModel.password,hasOldPassword=null!=this.passwordModel.oldPassword;hasNewPassword&&hasOldPassword&&(this.passwordUpdate.emit(this.passwordModel),this.showPasswordEditForm=!1)}toggleLeaveCampaignState(membership){membership.isLeaving=!membership.isLeaving}static{this.ctorParameters=()=>[{type:formly_service_service.$}]}static{this.propDecorators={user:[{type:core.Input}],memberships:[{type:core.Input}],canDeleteProfile:[{type:core.Input}],showProfileEditForm:[{type:core.Input}],showPasswordEditForm:[{type:core.Input}],campaignName:[{type:core.Input}],backUrl:[{type:core.Input,args:[{isSignal:!0,alias:"backUrl",required:!0,transform:void 0}]}],profileUpdate:[{type:core.Output}],passwordUpdate:[{type:core.Output}],campaignLeave:[{type:core.Output}],profileDelete:[{type:core.Output}]}}};ProfileComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-profile",template:'\n \n \x3c!-- Section Heading --\x3e\n \n
\n \n Profile\n \n\n \x3c!-- Header Buttons --\x3e\n
\n \n\n \n
\n
\n\n \n\n \x3c!-- Profile --\x3e\n @if (!showProfileEditForm) {\n \n
Profile Data \n
Username
\n
{{ user.username }}
\n
Email
\n
{{ user.email }}
\n
\n \n
Campaign Memberships \n @for (membership of memberships; track membership; let i = $index) {\n
\n \n
\n }\n
\n } @else {\n \n \n \n }\n\n \x3c!-- Password Form --\x3e\n @if (showPasswordEditForm) {\n \n \n \n }\n\n \n
\n\n @if (canDeleteProfile) {\n
\n }\n
\n \n \n\n\n \n
{{ context.membership.campaignName | titlecase }}
\n
{{ context.membership.role | titlecase }}
\n
\n \n
\n
\n \n\n\n \n \n Permanently leave \'{{\n context.membership.campaignName | titlecase\n }}\'? \n
\n \n \n \n \n',standalone:!0,imports:[page_container_component.i,icon_component.R,button_component.Q,separator_component.F,common.NgTemplateOutlet,card_component.i,form_component.s,router.Wk,confirmation_toggle_button_component.T,alert_component.C,common.TitleCasePipe],styles:[profile_componentngResource_default()]})],ProfileComponent);const profile_stories={title:"DesignSystem/Templates/ProfileComponent",component:ProfileComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[testing.c,formly_constants.d_],providers:[{provide:token_service.B,useClass:TokenMockService}]})],args:{user:{username:"john_doe",password:"password123",pk:1,api_permissions:["read","write"],groups:[1,2],group_details:[{name:"Group A",pk:1},{name:"Group B",pk:2}],is_staff:!1,is_superuser:!1,email:"john_doe@example-long-email-address.com",is_active:!0},campaignName:"Aldrune",memberships:[{campaignName:"Campaign A",role:"admin",isLeaving:!1},{campaignName:"Campaign B",role:"member",isLeaving:!1},{campaignName:"Campaign C",role:"guest",isLeaving:!1}],canDeleteProfile:!0,showProfileEditForm:!1,showPasswordEditForm:!1}},Default=(args=>({props:{...args,profileUpdate:(0,dist.XI)("profileUpdate"),profileDelete:(0,dist.XI)("profileDelete"),campaignLeave:(0,dist.XI)("campaignLeave"),passwordUpdate:(0,dist.XI)("passwordUpdate")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n profileUpdate: action('profileUpdate'),\n profileDelete: action('profileDelete'),\n campaignLeave: action('campaignLeave'),\n passwordUpdate: action('passwordUpdate')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/profile/profile.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".profile__data {\n margin-bottom: var(--spacer-4);\n}\n\n.heading {\n display: flex;\n justify-content: space-between;\n}\n.heading__text {\n margin-bottom: var(--spacer-0);\n}\n.heading__buttons {\n position: relative;\n display: flex;\n align-self: flex-end;\n justify-content: flex-end;\n top: 1px;\n}\n.heading__button {\n border: var(--bs-white) 1px solid;\n border-radius: var(--bs-border-radius);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-quest-overview-quest-overview-stories.7a9f6c07.iframe.bundle.js b/design-templates-quest-overview-quest-overview-stories.7a9f6c07.iframe.bundle.js
deleted file mode 100644
index f45fcb208..000000000
--- a/design-templates-quest-overview-quest-overview-stories.7a9f6c07.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2841],{"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/design/organisms/quest-table/quest-table.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{w:()=>QuestTableComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var quest_table_componentngResource=__webpack_require__("./src/design/organisms/quest-table/quest-table.component.scss?ngResource"),quest_table_componentngResource_default=__webpack_require__.n(quest_table_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let QuestTableComponent=class QuestTableComponent{constructor(){this.DISPLAY_STATES=["Default","All","Completed","Failed","On hold","In progress"],this.STATE_ICON_MAPPING={Completed:"square-check","On Hold":"hourglass-half",Failed:"times","In progress":"spinner"},this.STATE_TABLE_TYPE_MAPPING={Completed:"success","On Hold":"warning",Failed:"danger","In progress":""},this.state="Default"}ngOnInit(){this.filterQuests()}ngOnChanges(){this.filterQuests()}filterQuests(){this.displayQuests=this.quests.filter((quest=>this.shouldDisplayQuest(quest)))}shouldDisplayQuest(quest){if("all"===this.state.toLowerCase())return!0;if(this.state.toLowerCase()===quest.status?.toLowerCase())return!0;const isDefaultState="Default"===this.state,isMatchingDefault=["in progress","on hold"].includes(quest.status?.toLowerCase());return isDefaultState&&isMatchingDefault}static{this.propDecorators={questTaker:[{type:core.Input}],quests:[{type:core.Input}]}}};QuestTableComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-quest-table",template:'\n
\n \x3c!-- Outer Table Heading --\x3e\n
{{ questTaker }}\'s Quests \n\n \x3c!-- Filterselect --\x3e\n \n @for (state of DISPLAY_STATES; track state) {\n \n {{ state }}\n \n }\n \n \n\n
\n
\n \x3c!-- Inner Table Heading --\x3e\n \n \n Name \n \n Description\n \n Status \n \n \n\n \x3c!-- Table Body --\x3e\n \n @for (quest of displayQuests; track $index) {\n \n \x3c!-- Quest Name Column --\x3e\n \n \n {{ quest.name }} \n \n \n\n \x3c!-- Quest Abstract --\x3e\n \n {{ quest.abstract }}\n \n\n \x3c!-- Quest Status --\x3e\n @if (quest.status) {\n \n \n \n } @else {\n \n }\n \n }\n \n
\n
\n
\n\n\n \n \n',standalone:!0,imports:[fesm2022_forms.YN,router.Wk,icon_component.R,common.NgTemplateOutlet],styles:[quest_table_componentngResource_default()]})],QuestTableComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./src/design/templates/quest-overview/quest-overview.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>quest_overview_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var quest_overview_componentngResource=__webpack_require__("./src/design/templates/quest-overview/quest-overview.component.scss?ngResource"),quest_overview_componentngResource_default=__webpack_require__.n(quest_overview_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),quest_table_component=__webpack_require__("./src/design/organisms/quest-table/quest-table.component.ts");let QuestOverviewComponent=class QuestOverviewComponent{constructor(routingService){this.routingService=routingService,this.quests=core.input.required(),this.campaignName=core.input.required(),this.homeUrl=(0,core.computed)((()=>this.routingService.getRoutePath("home",{campaign:this.campaignName}))),this.createUrl=(0,core.computed)((()=>this.routingService.getRoutePath("quest-create",{campaign:this.campaignName}))),this.groupedQuests=(0,core.computed)((()=>this.groupQuestsByTaker(this.quests())))}groupQuestsByTaker(itemArray){const groupedQuests=itemArray.reduce(((accumulator,quest)=>{const questTaker=quest.taker_details?.name;return accumulator.hasOwnProperty(questTaker)?accumulator[questTaker].push(quest):accumulator[questTaker]=[quest],accumulator}),{}),sortedResults=Object.keys(groupedQuests).map((key=>({key,value:groupedQuests[key]}))).sort(((objA,objB)=>"Group"===objA.key?-1:"Group"===objB.key||objA.key>objB.key?1:objA.key===objB.key?0:-1)),statusValues={"In progress":1,"On Hold":2,Completed:3,Failed:4};for(const[index,quest]of sortedResults.entries())sortedResults[index].value=quest.value.sort(((objA,objB)=>objA.status===objB.status?(objA.name??"")>(objB.name??"")?1:(objA.name??"")<(objB.name??"")?-1:0:statusValues[objA.status]-statusValues[objB.status]));return sortedResults}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={quests:[{type:core.Input,args:[{isSignal:!0,alias:"quests",required:!0,transform:void 0}]}],campaignName:[{type:core.Input,args:[{isSignal:!0,alias:"campaignName",required:!0,transform:void 0}]}]}}};QuestOverviewComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-quest-overview",template:'\n \n \x3c!-- Heading --\x3e\n Quests \n\n \n\n \n @for (questGroup of groupedQuests(); track questGroup.key) {\n
\n }\n
\n\n \x3c!-- Footer --\x3e\n \n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[page_container_component.i,router.Wk,button_component.Q,quest_table_component.w],styles:[quest_overview_componentngResource_default()]})],QuestOverviewComponent);const quest_overview_stories={title:"DesignSystem/Templates/QuestOverviewComponent",component:QuestOverviewComponent,decorators:[(0,dist.moduleMetadata)({imports:[testing.c],declarations:[]})],args:{quests:[{article_type:"quest",name:"The Black Knight",name_full:"The Black Knight - A quest to defeat a powerful undead warrior",description:"The players are hired to find and defeat the Black Knight, a powerful undead warrior who is terrorizing the countryside",update_datetime:"2022-05-10",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/345",pk:345,taker_details:{name:"Franz",name_full:"Franz the warrior",pk:1},status:"In progress"},{article_type:"quest",name:"The Dragon's Hoard",name_full:"The Dragon's Hoard - A quest to recover a stolen treasure hoard",description:"The players must find and recover a stolen treasure hoard from a fearsome dragon who is guarding it in a remote mountain cave",update_datetime:"2022-05-12",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/346",pk:346,taker_details:{name:"Gwen",name_full:"Gwen the rogue",pk:2},status:"Completed"},{article_type:"quest",name:"The Lost Artifact",name_full:"The Lost Artifact - A quest to recover a powerful magical artifact",description:"The players are hired to find and recover a powerful magical artifact that has been lost for centuries",update_datetime:"2022-05-14",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/347",pk:347,taker_details:{name:"Lucas",name_full:"Lucas the mage",pk:3},status:"On Hold"},{article_type:"quest",name:"The Bandit King",name_full:"The Bandit King - A quest to defeat a powerful bandit leader",description:"The players are hired to find and defeat a powerful bandit leader who has been raiding caravans and terrorizing the local towns",update_datetime:"2022-05-16",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/348",pk:348,taker_details:{name:"Ella",name_full:"Ella the paladin",pk:4},status:"Failed"},{article_type:"quest",name:"The Abandoned Mine",name_full:"The Abandoned Mine - A quest to investigate a mysterious mine",description:"The players are hired to investigate a mysterious mine that was abandoned years ago",update_datetime:"2022-05-20",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/350",pk:350,taker_details:{name:"Gwen",name_full:"Gwen the rogue",pk:2},status:"In progress"},{article_type:"quest",name:"The Cursed Castle",name_full:"The Cursed Castle - A quest to break a powerful curse",description:"The players are hired to break a powerful curse that has plagued a local castle for generations",update_datetime:"2022-05-22",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/351",pk:351,taker_details:{name:"Lucas",name_full:"Lucas the mage",pk:3},status:"In progress"},{article_type:"quest",name:"The Goblin King",name_full:"The Goblin King - A quest to defeat a powerful goblin leader",description:"The players are hired to find and defeat a powerful goblin leader who has been raiding villages and hoarding treasure",update_datetime:"2022-05-24",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/352",pk:352,taker_details:{name:"Ella",name_full:"Ella the paladin",pk:4},status:"Completed"},{article_type:"quest",name:"The Forbidden Forest",name_full:"The Forbidden Forest - A quest to explore a dangerous forest",description:"The players are hired to explore a dangerous forest that is said to be home to powerful monsters and ancient magic",update_datetime:"2022-05-26",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/353",pk:353,taker_details:{name:"Franz",name_full:"Franz the warrior",pk:1},status:"On Hold"},{article_type:"quest",name:"The Haunted Mansion",name_full:"The Haunted Mansion - A quest to investigate a haunted mansion",description:"The players are hired to investigate a haunted mansion that is said to be cursed and haunted by vengeful spirits",update_datetime:"2022-05-28",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/354",pk:354,taker_details:{name:"Gwen",name_full:"Gwen the rogue",pk:2},status:"In progress"}],campaignName:"Aldrune"},parameters:{layout:"fullscreen"}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/quest-table/quest-table.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --table-bg: var(--bs-gray-dark);\n --table-striped-bg: #3a3a3a;\n --warning-bg-color: rgba(255, 200, 36, 0.3);\n --success-bg-color: rgba(147, 196, 125, 0.3);\n --danger-bg-color: rgba(206, 10, 10, 0.3);\n}\n\n.heading {\n margin-bottom: var(--spacer-3);\n}\n.heading__text {\n margin-top: auto;\n margin-bottom: auto;\n padding-left: var(--spacer-0) !important;\n padding-right: var(--spacer-0) !important;\n}\n.heading__select {\n background-color: var(--table-striped-bg);\n height: 2rem;\n border: 1px solid var(--table-bg);\n border-radius: var(--bs-border-radius);\n color: var(--bs-white);\n}\n\n.table {\n padding-bottom: var(--spacer-2);\n}\n.table__element {\n padding: var(--spacer-3) var(--spacer-2) !important;\n}\n.table__element :hover {\n color: var(--bs-link-hover-color);\n}\n.table__element--desktop-only {\n display: none;\n}\n@media (min-width: 768px) {\n .table__element--desktop-only {\n display: table-cell;\n }\n}\n.table__element--status {\n text-align: center;\n width: var(--spacer-0);\n padding-left: var(--spacer-1);\n padding-right: var(--spacer-1);\n}\n.table-warning {\n --bs-table-bg: var(--warning-bg-color) !important;\n --bs-table-accent-bg: var(--warning-bg-color) !important;\n --bs-table-striped-bg: var(--warning-bg-color) !important;\n color: var(--bs-white) !important;\n}\n.table-success {\n --bs-table-bg: var(--success-bg-color) !important;\n --bs-table-accent-bg: var(--success-bg-color) !important;\n --bs-table-striped-bg: var(--success-bg-color) !important;\n color: var(--bs-white) !important;\n}\n.table-danger {\n --bs-table-bg: var(--danger-bg-color) !important;\n --bs-table-accent-bg: var(--danger-bg-color) !important;\n --bs-table-striped-bg: var(--danger-bg-color) !important;\n color: var(--bs-white) !important;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/quest-overview/quest-overview.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".quests__heading {\n margin-bottom: var(--spacer-3);\n border-bottom: 1px solid var(--bs-gray);\n}\n.quests__table {\n margin-bottom: var(--spacer-3);\n}\n.quests__tables {\n margin-bottom: var(--spacer-4);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-quest-overview-quest-overview-stories.c1813c69.iframe.bundle.js b/design-templates-quest-overview-quest-overview-stories.c1813c69.iframe.bundle.js
new file mode 100644
index 000000000..8315513ce
--- /dev/null
+++ b/design-templates-quest-overview-quest-overview-stories.c1813c69.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[2841],{"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/design/organisms/quest-table/quest-table.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{w:()=>QuestTableComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var quest_table_componentngResource=__webpack_require__("./src/design/organisms/quest-table/quest-table.component.scss?ngResource"),quest_table_componentngResource_default=__webpack_require__.n(quest_table_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let QuestTableComponent=class QuestTableComponent{constructor(){this.DISPLAY_STATES=["Default","All","Completed","Failed","On hold","In progress"],this.STATE_ICON_MAPPING={Completed:"square-check","On Hold":"hourglass-half",Failed:"times","In progress":"spinner"},this.STATE_TABLE_TYPE_MAPPING={Completed:"success","On Hold":"warning",Failed:"danger","In progress":""},this.state="Default"}ngOnInit(){this.filterQuests()}ngOnChanges(){this.filterQuests()}filterQuests(){this.displayQuests=this.quests.filter((quest=>this.shouldDisplayQuest(quest)))}shouldDisplayQuest(quest){if("all"===this.state.toLowerCase())return!0;if(this.state.toLowerCase()===quest.status?.toLowerCase())return!0;const isDefaultState="Default"===this.state,isMatchingDefault=["in progress","on hold"].includes(quest.status?.toLowerCase());return isDefaultState&&isMatchingDefault}static{this.propDecorators={questTaker:[{type:core.Input}],quests:[{type:core.Input}]}}};QuestTableComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-quest-table",template:'\n
\n \x3c!-- Outer Table Heading --\x3e\n
{{ questTaker }}\'s Quests \n\n \x3c!-- Filterselect --\x3e\n \n @for (state of DISPLAY_STATES; track state) {\n \n {{ state }}\n \n }\n \n \n\n
\n
\n \x3c!-- Inner Table Heading --\x3e\n \n \n Name \n \n Description\n \n Status \n \n \n\n \x3c!-- Table Body --\x3e\n \n @for (quest of displayQuests; track $index) {\n \n \x3c!-- Quest Name Column --\x3e\n \n \n {{ quest.name }} \n \n \n\n \x3c!-- Quest Abstract --\x3e\n \n {{ quest.abstract }}\n \n\n \x3c!-- Quest Status --\x3e\n @if (quest.status) {\n \n \n \n } @else {\n \n }\n \n }\n \n
\n
\n
\n\n\n \n \n',standalone:!0,imports:[fesm2022_forms.YN,router.Wk,icon_component.R,common.NgTemplateOutlet],styles:[quest_table_componentngResource_default()]})],QuestTableComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./src/design/templates/quest-overview/quest-overview.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>quest_overview_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var quest_overview_componentngResource=__webpack_require__("./src/design/templates/quest-overview/quest-overview.component.scss?ngResource"),quest_overview_componentngResource_default=__webpack_require__.n(quest_overview_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),quest_table_component=__webpack_require__("./src/design/organisms/quest-table/quest-table.component.ts");let QuestOverviewComponent=class QuestOverviewComponent{constructor(routingService){this.routingService=routingService,this.quests=core.input.required(),this.campaignName=core.input.required(),this.homeUrl=(0,core.computed)((()=>this.routingService.getRoutePath("home",{campaign:this.campaignName}))),this.createUrl=(0,core.computed)((()=>this.routingService.getRoutePath("quest-create",{campaign:this.campaignName}))),this.groupedQuests=(0,core.computed)((()=>this.groupQuestsByTaker(this.quests())))}groupQuestsByTaker(itemArray){const groupedQuests=itemArray.reduce(((accumulator,quest)=>{const questTaker=quest.taker_details?.name;return accumulator.hasOwnProperty(questTaker)?accumulator[questTaker].push(quest):accumulator[questTaker]=[quest],accumulator}),{}),sortedResults=Object.keys(groupedQuests).map((key=>({key,value:groupedQuests[key]}))).sort(((objA,objB)=>"Group"===objA.key?-1:"Group"===objB.key||objA.key>objB.key?1:objA.key===objB.key?0:-1)),statusValues={"In progress":1,"On Hold":2,Completed:3,Failed:4};for(const[index,quest]of sortedResults.entries())sortedResults[index].value=quest.value.sort(((objA,objB)=>objA.status===objB.status?(objA.name??"")>(objB.name??"")?1:(objA.name??"")<(objB.name??"")?-1:0:statusValues[objA.status]-statusValues[objB.status]));return sortedResults}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={quests:[{type:core.Input,args:[{isSignal:!0,alias:"quests",required:!0,transform:void 0}]}],campaignName:[{type:core.Input,args:[{isSignal:!0,alias:"campaignName",required:!0,transform:void 0}]}]}}};QuestOverviewComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-quest-overview",template:'\n \n \x3c!-- Heading --\x3e\n Quests \n\n \n\n \n @for (questGroup of groupedQuests(); track questGroup.key) {\n
\n }\n
\n\n \x3c!-- Footer --\x3e\n \n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[page_container_component.i,router.Wk,button_component.Q,quest_table_component.w],styles:[quest_overview_componentngResource_default()]})],QuestOverviewComponent);const quest_overview_stories={title:"DesignSystem/Templates/QuestOverviewComponent",component:QuestOverviewComponent,decorators:[(0,dist.moduleMetadata)({imports:[testing.c],declarations:[]})],args:{quests:[{article_type:"quest",name:"The Black Knight",name_full:"The Black Knight - A quest to defeat a powerful undead warrior",description:"The players are hired to find and defeat the Black Knight, a powerful undead warrior who is terrorizing the countryside",update_datetime:"2022-05-10",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/345",pk:345,taker_details:{name:"Franz",name_full:"Franz the warrior",pk:1},status:"In progress"},{article_type:"quest",name:"The Dragon's Hoard",name_full:"The Dragon's Hoard - A quest to recover a stolen treasure hoard",description:"The players must find and recover a stolen treasure hoard from a fearsome dragon who is guarding it in a remote mountain cave",update_datetime:"2022-05-12",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/346",pk:346,taker_details:{name:"Gwen",name_full:"Gwen the rogue",pk:2},status:"Completed"},{article_type:"quest",name:"The Lost Artifact",name_full:"The Lost Artifact - A quest to recover a powerful magical artifact",description:"The players are hired to find and recover a powerful magical artifact that has been lost for centuries",update_datetime:"2022-05-14",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/347",pk:347,taker_details:{name:"Lucas",name_full:"Lucas the mage",pk:3},status:"On Hold"},{article_type:"quest",name:"The Bandit King",name_full:"The Bandit King - A quest to defeat a powerful bandit leader",description:"The players are hired to find and defeat a powerful bandit leader who has been raiding caravans and terrorizing the local towns",update_datetime:"2022-05-16",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/348",pk:348,taker_details:{name:"Ella",name_full:"Ella the paladin",pk:4},status:"Failed"},{article_type:"quest",name:"The Abandoned Mine",name_full:"The Abandoned Mine - A quest to investigate a mysterious mine",description:"The players are hired to investigate a mysterious mine that was abandoned years ago",update_datetime:"2022-05-20",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/350",pk:350,taker_details:{name:"Gwen",name_full:"Gwen the rogue",pk:2},status:"In progress"},{article_type:"quest",name:"The Cursed Castle",name_full:"The Cursed Castle - A quest to break a powerful curse",description:"The players are hired to break a powerful curse that has plagued a local castle for generations",update_datetime:"2022-05-22",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/351",pk:351,taker_details:{name:"Lucas",name_full:"Lucas the mage",pk:3},status:"In progress"},{article_type:"quest",name:"The Goblin King",name_full:"The Goblin King - A quest to defeat a powerful goblin leader",description:"The players are hired to find and defeat a powerful goblin leader who has been raiding villages and hoarding treasure",update_datetime:"2022-05-24",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/352",pk:352,taker_details:{name:"Ella",name_full:"Ella the paladin",pk:4},status:"Completed"},{article_type:"quest",name:"The Forbidden Forest",name_full:"The Forbidden Forest - A quest to explore a dangerous forest",description:"The players are hired to explore a dangerous forest that is said to be home to powerful monsters and ancient magic",update_datetime:"2022-05-26",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/353",pk:353,taker_details:{name:"Franz",name_full:"Franz the warrior",pk:1},status:"On Hold"},{article_type:"quest",name:"The Haunted Mansion",name_full:"The Haunted Mansion - A quest to investigate a haunted mansion",description:"The players are hired to investigate a haunted mansion that is said to be cursed and haunted by vengeful spirits",update_datetime:"2022-05-28",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/354",pk:354,taker_details:{name:"Gwen",name_full:"Gwen the rogue",pk:2},status:"In progress"}],campaignName:"Aldrune"},parameters:{layout:"fullscreen"}},Default=(args=>({props:{...args}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/quest-table/quest-table.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --table-bg: var(--bs-gray-dark);\n --table-striped-bg: #3a3a3a;\n --warning-bg-color: rgba(255, 200, 36, 0.3);\n --success-bg-color: rgba(147, 196, 125, 0.3);\n --danger-bg-color: rgba(206, 10, 10, 0.3);\n}\n\n.heading {\n margin-bottom: var(--spacer-3);\n}\n.heading__text {\n margin-top: auto;\n margin-bottom: auto;\n padding-left: var(--spacer-0) !important;\n padding-right: var(--spacer-0) !important;\n}\n.heading__select {\n background-color: var(--table-striped-bg);\n height: 2rem;\n border: 1px solid var(--table-bg);\n border-radius: var(--bs-border-radius);\n color: var(--bs-white);\n}\n\n.table {\n padding-bottom: var(--spacer-2);\n}\n.table__element {\n padding: var(--spacer-3) var(--spacer-2) !important;\n}\n.table__element :hover {\n color: var(--bs-link-hover-color);\n}\n.table__element--desktop-only {\n display: none;\n}\n@media (min-width: 768px) {\n .table__element--desktop-only {\n display: table-cell;\n }\n}\n.table__element--status {\n text-align: center;\n width: var(--spacer-0);\n padding-left: var(--spacer-1);\n padding-right: var(--spacer-1);\n}\n.table-warning {\n --bs-table-bg: var(--warning-bg-color) !important;\n --bs-table-accent-bg: var(--warning-bg-color) !important;\n --bs-table-striped-bg: var(--warning-bg-color) !important;\n color: var(--bs-white) !important;\n}\n.table-success {\n --bs-table-bg: var(--success-bg-color) !important;\n --bs-table-accent-bg: var(--success-bg-color) !important;\n --bs-table-striped-bg: var(--success-bg-color) !important;\n color: var(--bs-white) !important;\n}\n.table-danger {\n --bs-table-bg: var(--danger-bg-color) !important;\n --bs-table-accent-bg: var(--danger-bg-color) !important;\n --bs-table-striped-bg: var(--danger-bg-color) !important;\n color: var(--bs-white) !important;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/quest-overview/quest-overview.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".quests__heading {\n margin-bottom: var(--spacer-3);\n border-bottom: 1px solid var(--bs-gray);\n}\n.quests__table {\n margin-bottom: var(--spacer-3);\n}\n.quests__tables {\n margin-bottom: var(--spacer-4);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-search-search-stories.7495b3c0.iframe.bundle.js b/design-templates-search-search-stories.7495b3c0.iframe.bundle.js
deleted file mode 100644
index c6b966dca..000000000
--- a/design-templates-search-search-stories.7495b3c0.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[4905],{"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/_models/search-preferences.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{y:()=>DEFAULT_SEARCH_PREFERENCES});const DEFAULT_SEARCH_PREFERENCES=[{label:"Character",active:!1,color:"--character-color"},{label:"Creature",active:!1,color:"--creature-color"},{label:"Diaryentry",active:!1,color:"--diaryentry-color"},{label:"Encounter",active:!1,color:"--encounter-color"},{label:"Item",active:!1,color:"--item-color"},{label:"Location",active:!1,color:"--location-color"},{label:"Map",active:!1,color:"--map-color"},{label:"Organization",active:!1,color:"--organization-color"},{label:"Quest",active:!1,color:"--quest-color"},{label:"SessionAudio",active:!1,color:"--sessionaudio-color"},{label:"Rules",active:!1,color:"--rules-color"},{label:"Spell",active:!1,color:"--spell-color"}]},"./src/design/molecules/search-field/search-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{q:()=>SearchFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var search_field_componentngResource=__webpack_require__("./src/design/molecules/search-field/search-field.component.scss?ngResource"),search_field_componentngResource_default=__webpack_require__.n(search_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let SearchFieldComponent=class SearchFieldComponent{constructor(){this.NON_NORMAL_CHARACTER_REGEXP=/[^a-zA-Z0-9']/g,this.TWO_OR_MORE_WHITESPACE_REGEXP=/\s\s+/g,this.placeholder=(0,core.input)("Enter Search Query"),this.btnAriaLabel=(0,core.input)("Trigger a search"),this.appSearch=new core.EventEmitter,this.searchString=""}startSearch(){null!=this.searchString&&(this.searchString=this.cleanText(this.searchString),null!=this.searchString&&""!==this.searchString&&(console.log("Emit with",this.searchString),this.appSearch.emit(this.searchString)))}cleanText(str){return str.replace(this.NON_NORMAL_CHARACTER_REGEXP," ").trim().replace(this.TWO_OR_MORE_WHITESPACE_REGEXP," ")}static{this.propDecorators={placeholder:[{type:core.Input,args:[{isSignal:!0,alias:"placeholder",required:!1,transform:void 0}]}],btnAriaLabel:[{type:core.Input,args:[{isSignal:!0,alias:"btnAriaLabel",required:!1,transform:void 0}]}],appSearch:[{type:core.Output}]}}};SearchFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-search-field",template:'\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[button_component.Q,fesm2022_forms.YN],styles:[search_field_componentngResource_default()]})],SearchFieldComponent)},"./src/design/molecules/sidebar-legend/sidebar-legend.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{N:()=>SidebarLegendComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var sidebar_legend_componentngResource=__webpack_require__("./src/design/molecules/sidebar-legend/sidebar-legend.component.scss?ngResource"),sidebar_legend_componentngResource_default=__webpack_require__.n(sidebar_legend_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");var selectable_entry_componentngResource=__webpack_require__("./src/design/atoms/selectable-entry/selectable-entry.component.scss?ngResource"),selectable_entry_componentngResource_default=__webpack_require__.n(selectable_entry_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let SelectableEntryComponent=class SelectableEntryComponent{constructor(){this.label=core.input.required(),this.isSelectable=(0,core.input)(!1),this.isActive=(0,core.input)(!1),this.borderColorVar=(0,core.input)("secondary"),this.entryClick=(0,core.output)()}static{this.propDecorators={label:[{type:core.Input,args:[{isSignal:!0,alias:"label",required:!0,transform:void 0}]}],isSelectable:[{type:core.Input,args:[{isSignal:!0,alias:"isSelectable",required:!1,transform:void 0}]}],isActive:[{type:core.Input,args:[{isSignal:!0,alias:"isActive",required:!1,transform:void 0}]}],borderColorVar:[{type:core.Input,args:[{isSignal:!0,alias:"borderColorVar",required:!1,transform:void 0}]}],entryClick:[{type:core.Output,args:["entryClick"]}]}}};SelectableEntryComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-selectable-entry",standalone:!0,imports:[common.NgClass,icon_component.R,common.NgTemplateOutlet],template:'@if (isSelectable()) {\n \n \n \n} @else {\n \n}\n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[selectable_entry_componentngResource_default()]})],SelectableEntryComponent);var search_preferences=__webpack_require__("./src/design/molecules/_models/search-preferences.ts");let SidebarLegendComponent=class SidebarLegendComponent{constructor(){this.interactable=(0,core.input)(!1),this.sidebarEntries=(0,core.input)(search_preferences.y),this.sidebarChange=new core.EventEmitter}onSidebarEntryClick(clickedOptionIndex){if(!this.interactable)return;const entry=this.sidebarEntries()[clickedOptionIndex];entry.active=!entry.active,this.sidebarChange.emit(this.sidebarEntries())}static{this.ctorParameters=()=>[]}static{this.propDecorators={interactable:[{type:core.Input,args:[{isSignal:!0,alias:"interactable",required:!1,transform:void 0}]}],sidebarEntries:[{type:core.Input,args:[{isSignal:!0,alias:"sidebarEntries",required:!1,transform:void 0}]}],sidebarChange:[{type:core.Output}]}}};SidebarLegendComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-sidebar-legend",template:'\n
\n @for (option of sidebarEntries(); track $index) {\n
\n }\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[SelectableEntryComponent],styles:[sidebar_legend_componentngResource_default()]})],SidebarLegendComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/design/organisms/search-hit/search-hit.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>SearchHitComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var search_hit_componentngResource=__webpack_require__("./src/design/organisms/search-hit/search-hit.component.scss?ngResource"),search_hit_componentngResource_default=__webpack_require__.n(search_hit_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs");let SearchHitComponent=class SearchHitComponent{constructor(){this.article=core.input.required()}static{this.propDecorators={article:[{type:core.Input,args:[{isSignal:!0,alias:"article",required:!0,transform:void 0}]}]}}};SearchHitComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-search-hit",template:'\n \n
\n {{ article().name }} \n \n \n\n \n {{ article().description }}\n
\n \n',standalone:!0,imports:[router.Wk],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[search_hit_componentngResource_default()]})],SearchHitComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./src/design/templates/search/search.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoArticlesFound:()=>NoArticlesFound,__namedExportsOrder:()=>__namedExportsOrder,default:()=>search_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var search_componentngResource=__webpack_require__("./src/design/templates/search/search.component.scss?ngResource"),search_componentngResource_default=__webpack_require__.n(search_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),sidebar_legend_component=__webpack_require__("./src/design/molecules/sidebar-legend/sidebar-legend.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),search_field_component=__webpack_require__("./src/design/molecules/search-field/search-field.component.ts"),search_hit_component=__webpack_require__("./src/design/organisms/search-hit/search-hit.component.ts");let SearchComponent=class SearchComponent{constructor(routingService){this.routingService=routingService,this.foundArticles=core.input.required(),this.emptySearchSubtitle=core.input.required(),this.searchString=core.input.required(),this.campaignName=core.input.required(),this.allCategories=(0,core.signal)([]),this.activeCategoryLabels=(0,core.computed)((()=>this.allCategories().filter((category=>category.active)).map((category=>category.label.toLowerCase())).reduce(((accumulatorSet,currentValue)=>accumulatorSet.add(currentValue)),new Set))),this.filteredArticles=(0,core.computed)((()=>{const activeCategoryLabels=this.activeCategoryLabels();return 0===activeCategoryLabels.size?this.foundArticles():this.foundArticles().filter((article=>activeCategoryLabels.has(article.article_type.toLowerCase())))})),this.homeUrl=(0,core.computed)((()=>this.routingService.getRoutePath("home",{campaign:this.campaignName})))}onCategorySelect(allCategories){this.allCategories.set([...allCategories])}search(searchTerm){null!=searchTerm&&""!==searchTerm&&this.routingService.routeToPath("search",{campaign:this.campaignName(),searchString:searchTerm})}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={foundArticles:[{type:core.Input,args:[{isSignal:!0,alias:"foundArticles",required:!0,transform:void 0}]}],emptySearchSubtitle:[{type:core.Input,args:[{isSignal:!0,alias:"emptySearchSubtitle",required:!0,transform:void 0}]}],searchString:[{type:core.Input,args:[{isSignal:!0,alias:"searchString",required:!0,transform:void 0}]}],campaignName:[{type:core.Input,args:[{isSignal:!0,alias:"campaignName",required:!0,transform:void 0}]}]}}};SearchComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-search",template:'\n \n \x3c!-- Heading --\x3e\n \n
Search Results \n \n\n \n\n \n\n \x3c!-- Article List --\x3e\n \n @if (foundArticles().length > 0) {\n @for (article of filteredArticles(); track article.pk) {\n
\n }\n } @else {\n
\n
We couldn\'t find any hits for \'{{ searchString() }}\' \n {{ emptySearchSubtitle() }} \n \n }\n
\n\n \x3c!-- Footer --\x3e\n \n \n \n',standalone:!0,imports:[page_container_component.i,sidebar_legend_component.N,search_hit_component.z,router.Wk,button_component.Q,search_field_component.q],styles:[search_componentngResource_default()]})],SearchComponent);const search_stories={title:"DesignSystem/Templates/SearchComponent",component:SearchComponent,decorators:[(0,dist.moduleMetadata)({imports:[testing.c],declarations:[]})],args:{foundArticles:[{article_type:"location",name:"Castle Black",name_full:"Castle Black - The Night’s Watch",description:"The primary headquarters of the Night’s Watch",update_datetime:"2022-03-15",parent_location_details:{name:"The Wall",pk:123},getAbsoluteRouterUrl:()=>"/locations/456",pk:456,campaign_details:{id:789,name:"Dungeons and Dragons"}},{article_type:"character",name:"Jon Snow",name_full:"Jon Snow - The Bastard of Winterfell",description:"A member of the Night’s Watch and former Lord Commander",update_datetime:"2022-04-01",player_character:!0,images:[],getAbsoluteRouterUrl:()=>"/characters/789",pk:789,campaign_details:{id:789,name:"Dungeons and Dragons"}},{article_type:"diaryentry",name:"Jon Snow - Journal Entry #1",name_full:"Jon Snow - Journal Entry #1 - First Day on the Wall",description:"My first day at Castle Black was...interesting",update_datetime:"2022-04-05",session_details:{pk:234,session_number:1,is_main_session:!0,is_main_session_int:1},author_details:{pk:789,name:"Jon Snow"},getAbsoluteRouterUrl:()=>"/diaryentries/345",pk:345,campaign_details:{id:789,name:"Dungeons and Dragons"}},{article_type:"item",name:"Longclaw",name_full:"Longclaw - The Valyrian steel sword of Jon Snow",description:"A bastard sword made of Valyrian steel, with a hilt fashioned like a wolf",update_datetime:"2022-04-10",campaign_details:{id:567,name:"Game of Thrones RPG"},getAbsoluteRouterUrl:()=>"/items/890",pk:890},{article_type:"sessionaudio",name:"Game of Thrones RPG - Session 1",name_full:"Game of Thrones RPG - Session 1 - Beginning of the campaign",update_datetime:"2022-04-15",audio_url:"https://example.com/gameofthrones-session1.mp3",download_url:"https://example.com/gameofthrones-session1-download.mp3",session_details:{pk:234,session_number:1,is_main_session:!0,is_main_session_int:1},getAbsoluteRouterUrl:()=>"/session-audios/901",pk:901,campaign_details:{id:789,name:"Dungeons and Dragons"}},{article_type:"encounter",name:"Ambush in the Kingsroad",name_full:"Ambush in the Kingsroad - A band of bandits attack the party",description:"The party is ambushed while travelling on the Kingsroad, by a group of bandits led by a dangerous outlaw",update_datetime:"2022-04-20",icon:"swords-crossed",campaign_details:{id:567,name:"Game of Thrones RPG"},getAbsoluteRouterUrl:()=>"/encounters/123",pk:123},{article_type:"spell",name:"Fireball",name_full:"Fireball - A powerful explosion of fire",description:"A spell that creates a powerful explosion of fire, causing damage to all creatures within a certain area",update_datetime:"2022-04-25",campaign_details:{id:789,name:"Dungeons and Dragons"},getAbsoluteRouterUrl:()=>"/spells/234",pk:234},{article_type:"rules",name:"Critical Hits and Misses",name_full:"Critical Hits and Misses - Rules for critical hits and misses in combat",description:"A set of rules for determining the effects of critical hits and misses during combat",update_datetime:"2022-04-30",campaign_details:{id:789,name:"Dungeons and Dragons"},getAbsoluteRouterUrl:()=>"/rules/567",pk:567},{article_type:"quest",name:"The Black Knight",name_full:"The Black Knight - A quest to defeat a powerful undead warrior",description:"The players are hired to find and defeat the Black Knight, a powerful undead warrior who is terrorizing the countryside",update_datetime:"2022-05-10",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/345",pk:345,taker_details:{name:"Franz",name_full:"Franz the warrior",pk:1}},{article_type:"organization",name:"The Thieves Guild",name_full:"The Thieves Guild - A secret organization of skilled thieves",description:"The Thieves Guild is a secret organization of skilled thieves, who operate in the shadows and have their own code of honor",update_datetime:"2022-05-15",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/organizations/678",pk:678},{article_type:"creature",name:"Beholder",name_full:"Beholder - A monstrous creature with numerous eyes and deadly abilities",description:"The Beholder is a monstrous creature with a large central eye and numerous smaller eyes around its head, each with a different deadly ability",update_datetime:"2022-05-20",campaign_details:{id:789,name:"Dungeons and Dragons"},getAbsoluteRouterUrl:()=>"/creatures/901",pk:901},{getAbsoluteRouterUrl:()=>"/map/1",article_type:"map",description:"A map of Aldrune",pk:1,name_full:"Aldrune",name:"Aldrune",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-06-26T17:10:35.352119Z",icon:"/media/map"}],emptySearchSubtitle:"Found nothing empty subtitle",searchString:"Search String thing",campaignName:"Aldrune"}},Template=args=>({props:{...args}}),Default=Template.bind({});Default.args={};const NoArticlesFound=Template.bind({});NoArticlesFound.args={foundArticles:[]};const __namedExportsOrder=["Default","NoArticlesFound"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}},NoArticlesFound.parameters={...NoArticlesFound.parameters,docs:{...NoArticlesFound.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...NoArticlesFound.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/selectable-entry/selectable-entry.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".sidebar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: var(--spacer-2);\n padding-bottom: var(--spacer-2);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n}\n\n.sidebar-border {\n display: flex;\n border-left: solid 10px;\n}\n\nbutton {\n outline: unset;\n}\nbutton:hover {\n color: var(--bs-white);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/search-field/search-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"/* SEARCHBAR CSS */\ninput[type=search]::-webkit-search-decoration,\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-results-button,\ninput[type=search]::-webkit-search-results-decoration {\n display: none;\n}\n\n.search {\n margin-bottom: var(--spacer-4);\n}\n.search__form {\n flex: 1;\n}\n.search__bar {\n display: flex;\n align-items: center;\n background-color: var(--bs-gray-800);\n padding-left: var(--spacer-2);\n border-color: var(--bs-white);\n border: solid 2px var(--bs-white);\n border-radius: var(--bs-border-radius);\n}\n.search__input {\n background-color: var(--bs-gray-800);\n border: none;\n outline: none;\n width: 100%;\n padding: var(--spacer-2);\n color: var(--bs-white);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/sidebar-legend/sidebar-legend.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".row-entry {\n padding: 0;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/search-hit/search-hit.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --search-border-color: var(--bs-white);\n}\n\n.search-hit {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding-top: var(--spacer-2);\n padding-bottom: var(--spacer-2);\n border-left: solid 7px var(--search-border-color);\n text-decoration: none;\n font-weight: unset;\n}\n.search-hit__heading {\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.search-hit__body {\n font-size: 16px;\n}\n.search-hit:hover {\n box-shadow: inset 0 0 30px var(--bs-link-hover-color);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/search/search.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".search__heading {\n text-align: center;\n}\n.search__results {\n margin-top: var(--spacer-5);\n margin-bottom: var(--spacer-5);\n}\n.search__home {\n display: inline-block;\n width: fit-content;\n}\n.search__empty-results {\n display: flex;\n align-items: center;\n flex-direction: column;\n text-align: center;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-search-search-stories.e879462b.iframe.bundle.js b/design-templates-search-search-stories.e879462b.iframe.bundle.js
new file mode 100644
index 000000000..f658d97bf
--- /dev/null
+++ b/design-templates-search-search-stories.e879462b.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[4905],{"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/design/atoms/_models/icon.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{bS:()=>toIconKind,eN:()=>ALL_REGULAR_ICONS,xy:()=>ALL_ICONS,zN:()=>ALL_SOLID_ICONS});const ALL_REGULAR_ICONS=["calendar","circle-user","clock","copy","envelope","hourglass","map","plus-square","user"],REGULAR_ICON_SET=new Set(ALL_REGULAR_ICONS),ALL_SOLID_ICONS=["anchor","arrow-down-long","arrow-left-long","arrow-left","arrow-right-long","arrow-right","arrow-up-long","bars","book-open","book","calendar-alt","check","chess-rook","chevron-down","chevron-left","chevron-right","chevron-up","circle-exclamation","clipboard","cog","comments","compass","copy","crown","cut","home","database","desktop","diamond","dice","down-long","download","dragon","dungeon","exclamation","expand","file-audio","file-import","file","gear","gavel","globe-americas","hammer","hand-sparkles","hat-wizard","diagram-project","hotel","hourglass-half","info-circle","info","location-dot","lock","link","magic","male","minus","monument","moon","mountain","paw","pen","pencil","place-of-worship","plus","question-circle","redo-alt","refresh","right-from-bracket","search","sign-out-alt","sitemap","spinner","square-check","store","table","tag","th-list","times","tint","trash","tree","triangle-exclamation","umbrella-beach","university","up-long","upload","user-cog","user-plus","users-gear","volume-up","water","xmark"],SOLID_ICONS_SET=new Set(ALL_SOLID_ICONS),ALL_BRAND_ICONS=["fort-awesome"],BRAND_ICON_SET=new Set(ALL_BRAND_ICONS),ALL_ICONS=[...ALL_REGULAR_ICONS,...ALL_SOLID_ICONS,...ALL_BRAND_ICONS];function toIconKind(icon){const ico=icon;if(SOLID_ICONS_SET.has(ico))return"fa-solid";if(BRAND_ICON_SET.has(ico))return"fa-brands";if(REGULAR_ICON_SET.has(ico))return"fa-regular";throw new Error("Invalid icon: "+icon)}},"./src/design/atoms/button/button.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Q:()=>ButtonComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var button_componentngResource=__webpack_require__("./src/design/atoms/button/button.component.scss?ngResource"),button_componentngResource_default=__webpack_require__.n(button_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts");let ButtonComponent=class ButtonComponent{constructor(){this.kind=core.input.required(),this.text=(0,core.input)(),this.icon=(0,core.input)(),this.size=(0,core.input)("MEDIUM"),this.type=(0,core.input)("button"),this.isLoading=(0,core.input)(!1),this.disabled=(0,core.input)(!1),this.sizeClass=(0,core.computed)((()=>{switch(this.size()){case"SMALL":return"btn-sm";case"MEDIUM":return"";case"LARGE":return"btn-lg"}})),this.kindClasses=(0,core.computed)((()=>{switch(this.kind()){case"PRIMARY":return"btn-primary";case"SECONDARY":return"btn-secondary";case"DARK":return"btn-dark";case"WARNING":return"btn-warning";case"DANGER":return"btn-danger";case"LIGHT":return"btn-light";case"INFO":return"btn-info";case"PRIMARY-OUTLINE":return"btn-outline-primary";case"SECONDARY-OUTLINE":return"btn-outline-secondary";case"DARK-OUTLINE":return"btn-outline-dark";case"WARNING-OUTLINE":return"btn-outline-warning";case"DANGER-OUTLINE":return"btn-outline-danger";case"LIGHT-OUTLINE":return"btn-outline-light";case"INFO-OUTLINE":return"btn-outline-info";case"NONE":return"btn-none"}})),this.btnClass=(0,core.computed)((()=>"NONE"!==this.kind()?"btn":"")),this.classes=(0,core.computed)((()=>`${this.btnClass()} ${this.sizeClass()} ${this.kindClasses()}`))}static{this.propDecorators={kind:[{type:core.Input,args:[{isSignal:!0,alias:"kind",required:!0,transform:void 0}]}],text:[{type:core.Input,args:[{isSignal:!0,alias:"text",required:!1,transform:void 0}]}],icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!1,transform:void 0}]}],size:[{type:core.Input,args:[{isSignal:!0,alias:"size",required:!1,transform:void 0}]}],type:[{type:core.Input,args:[{isSignal:!0,alias:"type",required:!1,transform:void 0}]}],isLoading:[{type:core.Input,args:[{isSignal:!0,alias:"isLoading",required:!1,transform:void 0}]}],disabled:[{type:core.Input,args:[{isSignal:!0,alias:"disabled",required:!1,transform:void 0}]}]}}};ButtonComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"button[btn]",template:'@let iconVal = icon();\n@if (iconVal) {\n \n}\n\n {{ text() }}\n \n\n@if (isLoading()) {\n \n}\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,spinner_component.t],host:{"[class]":"classes()","[type]":"type()","[disabled]":"isLoading() || disabled()"},styles:[button_componentngResource_default()]})],ButtonComponent)},"./src/design/atoms/icon/icon.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>IconComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var icon_componentngResource=__webpack_require__("./src/design/atoms/icon/icon.component.scss?ngResource"),icon_componentngResource_default=__webpack_require__.n(icon_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon=__webpack_require__("./src/design/atoms/_models/icon.ts");let IconComponent=class IconComponent{constructor(){this.icon=core.input.required(),this.iconType=(0,core.computed)((()=>(0,icon.bS)(this.icon())))}static{this.propDecorators={icon:[{type:core.Input,args:[{isSignal:!0,alias:"icon",required:!0,transform:void 0}]}]}}};IconComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-icon",template:'
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[icon_componentngResource_default()]})],IconComponent)},"./src/design/atoms/spinner/spinner.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{t:()=>SpinnerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var spinner_componentngResource=__webpack_require__("./src/design/atoms/spinner/spinner.component.scss?ngResource"),spinner_componentngResource_default=__webpack_require__.n(spinner_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let SpinnerComponent=class SpinnerComponent{constructor(){this.spinnerBorder=!0}static{this.propDecorators={spinnerBorder:[{type:core.HostBinding,args:["class.spinner-border"]}]}}};SpinnerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-spinner",template:"",changeDetection:core.ChangeDetectionStrategy.OnPush,imports:[],standalone:!0,styles:[spinner_componentngResource_default()]})],SpinnerComponent)},"./src/design/molecules/_models/search-preferences.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{y:()=>DEFAULT_SEARCH_PREFERENCES});const DEFAULT_SEARCH_PREFERENCES=[{label:"Character",active:!1,color:"--character-color"},{label:"Creature",active:!1,color:"--creature-color"},{label:"Diaryentry",active:!1,color:"--diaryentry-color"},{label:"Encounter",active:!1,color:"--encounter-color"},{label:"Item",active:!1,color:"--item-color"},{label:"Location",active:!1,color:"--location-color"},{label:"Map",active:!1,color:"--map-color"},{label:"Organization",active:!1,color:"--organization-color"},{label:"Quest",active:!1,color:"--quest-color"},{label:"SessionAudio",active:!1,color:"--sessionaudio-color"},{label:"Rules",active:!1,color:"--rules-color"},{label:"Spell",active:!1,color:"--spell-color"}]},"./src/design/molecules/search-field/search-field.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{q:()=>SearchFieldComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var search_field_componentngResource=__webpack_require__("./src/design/molecules/search-field/search-field.component.scss?ngResource"),search_field_componentngResource_default=__webpack_require__.n(search_field_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),fesm2022_forms=__webpack_require__("./node_modules/@angular/forms/fesm2022/forms.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts");let SearchFieldComponent=class SearchFieldComponent{constructor(){this.NON_NORMAL_CHARACTER_REGEXP=/[^a-zA-Z0-9']/g,this.TWO_OR_MORE_WHITESPACE_REGEXP=/\s\s+/g,this.placeholder=(0,core.input)("Enter Search Query"),this.btnAriaLabel=(0,core.input)("Trigger a search"),this.appSearch=new core.EventEmitter,this.searchString=""}startSearch(){null!=this.searchString&&(this.searchString=this.cleanText(this.searchString),null!=this.searchString&&""!==this.searchString&&(console.log("Emit with",this.searchString),this.appSearch.emit(this.searchString)))}cleanText(str){return str.replace(this.NON_NORMAL_CHARACTER_REGEXP," ").trim().replace(this.TWO_OR_MORE_WHITESPACE_REGEXP," ")}static{this.propDecorators={placeholder:[{type:core.Input,args:[{isSignal:!0,alias:"placeholder",required:!1,transform:void 0}]}],btnAriaLabel:[{type:core.Input,args:[{isSignal:!0,alias:"btnAriaLabel",required:!1,transform:void 0}]}],appSearch:[{type:core.Output}]}}};SearchFieldComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-search-field",template:'\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[button_component.Q,fesm2022_forms.YN],styles:[search_field_componentngResource_default()]})],SearchFieldComponent)},"./src/design/molecules/sidebar-legend/sidebar-legend.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{N:()=>SidebarLegendComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var sidebar_legend_componentngResource=__webpack_require__("./src/design/molecules/sidebar-legend/sidebar-legend.component.scss?ngResource"),sidebar_legend_componentngResource_default=__webpack_require__.n(sidebar_legend_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");var selectable_entry_componentngResource=__webpack_require__("./src/design/atoms/selectable-entry/selectable-entry.component.scss?ngResource"),selectable_entry_componentngResource_default=__webpack_require__.n(selectable_entry_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts");let SelectableEntryComponent=class SelectableEntryComponent{constructor(){this.label=core.input.required(),this.isSelectable=(0,core.input)(!1),this.isActive=(0,core.input)(!1),this.borderColorVar=(0,core.input)("secondary"),this.entryClick=(0,core.output)()}static{this.propDecorators={label:[{type:core.Input,args:[{isSignal:!0,alias:"label",required:!0,transform:void 0}]}],isSelectable:[{type:core.Input,args:[{isSignal:!0,alias:"isSelectable",required:!1,transform:void 0}]}],isActive:[{type:core.Input,args:[{isSignal:!0,alias:"isActive",required:!1,transform:void 0}]}],borderColorVar:[{type:core.Input,args:[{isSignal:!0,alias:"borderColorVar",required:!1,transform:void 0}]}],entryClick:[{type:core.Output,args:["entryClick"]}]}}};SelectableEntryComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-selectable-entry",standalone:!0,imports:[common.NgClass,icon_component.R,common.NgTemplateOutlet],template:'@if (isSelectable()) {\n \n \n \n} @else {\n \n}\n\n\n \n \n',changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[selectable_entry_componentngResource_default()]})],SelectableEntryComponent);var search_preferences=__webpack_require__("./src/design/molecules/_models/search-preferences.ts");let SidebarLegendComponent=class SidebarLegendComponent{constructor(){this.interactable=(0,core.input)(!1),this.sidebarEntries=(0,core.input)(search_preferences.y),this.sidebarChange=new core.EventEmitter}onSidebarEntryClick(clickedOptionIndex){if(!this.interactable)return;const entry=this.sidebarEntries()[clickedOptionIndex];entry.active=!entry.active,this.sidebarChange.emit(this.sidebarEntries())}static{this.ctorParameters=()=>[]}static{this.propDecorators={interactable:[{type:core.Input,args:[{isSignal:!0,alias:"interactable",required:!1,transform:void 0}]}],sidebarEntries:[{type:core.Input,args:[{isSignal:!0,alias:"sidebarEntries",required:!1,transform:void 0}]}],sidebarChange:[{type:core.Output}]}}};SidebarLegendComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-sidebar-legend",template:'\n
\n @for (option of sidebarEntries(); track $index) {\n
\n }\n
\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[SelectableEntryComponent],styles:[sidebar_legend_componentngResource_default()]})],SidebarLegendComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/design/organisms/search-hit/search-hit.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{z:()=>SearchHitComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var search_hit_componentngResource=__webpack_require__("./src/design/organisms/search-hit/search-hit.component.scss?ngResource"),search_hit_componentngResource_default=__webpack_require__.n(search_hit_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs");let SearchHitComponent=class SearchHitComponent{constructor(){this.article=core.input.required()}static{this.propDecorators={article:[{type:core.Input,args:[{isSignal:!0,alias:"article",required:!0,transform:void 0}]}]}}};SearchHitComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-search-hit",template:'\n \n
\n {{ article().name }} \n \n \n\n \n {{ article().description }}\n
\n \n',standalone:!0,imports:[router.Wk],changeDetection:core.ChangeDetectionStrategy.OnPush,styles:[search_hit_componentngResource_default()]})],SearchHitComponent)},"./src/utils/logging.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{R:()=>log});var _angular_core__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");function log(debugSymbol,...data){(0,_angular_core__WEBPACK_IMPORTED_MODULE_0__.isDevMode)()&&(console.groupCollapsed(`[DEBUG] ${debugSymbol}:`,data),console.trace(),console.groupEnd())}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./src/utils/string.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";function capitalize(x){return`${x[0].toUpperCase()}${x.slice(1)}`}function uncapitalize(x){return`${x[0].toLowerCase()}${x.slice(1)}`}function ellipsize(x,length){return x.length>=length?`${x.slice(0,length-3)}...`:x}function camelToSnake(str){return str.replace(/([A-Z])/g,"_$1").toLowerCase()}function snakeToCamel(str){return str.replace(/_([a-z])/g,((match,group)=>group.toUpperCase()))}__webpack_require__.d(__webpack_exports__,{C8:()=>camelToSnake,YF:()=>uncapitalize,ZH:()=>capitalize,mc:()=>ellipsize,sF:()=>snakeToCamel})},"./src/design/templates/search/search.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,NoArticlesFound:()=>NoArticlesFound,__namedExportsOrder:()=>__namedExportsOrder,default:()=>search_stories});var testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var search_componentngResource=__webpack_require__("./src/design/templates/search/search.component.scss?ngResource"),search_componentngResource_default=__webpack_require__.n(search_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),sidebar_legend_component=__webpack_require__("./src/design/molecules/sidebar-legend/sidebar-legend.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),search_field_component=__webpack_require__("./src/design/molecules/search-field/search-field.component.ts"),search_hit_component=__webpack_require__("./src/design/organisms/search-hit/search-hit.component.ts");let SearchComponent=class SearchComponent{constructor(routingService){this.routingService=routingService,this.foundArticles=core.input.required(),this.emptySearchSubtitle=core.input.required(),this.searchString=core.input.required(),this.campaignName=core.input.required(),this.allCategories=(0,core.signal)([]),this.activeCategoryLabels=(0,core.computed)((()=>this.allCategories().filter((category=>category.active)).map((category=>category.label.toLowerCase())).reduce(((accumulatorSet,currentValue)=>accumulatorSet.add(currentValue)),new Set))),this.filteredArticles=(0,core.computed)((()=>{const activeCategoryLabels=this.activeCategoryLabels();return 0===activeCategoryLabels.size?this.foundArticles():this.foundArticles().filter((article=>activeCategoryLabels.has(article.article_type.toLowerCase())))})),this.homeUrl=(0,core.computed)((()=>this.routingService.getRoutePath("home",{campaign:this.campaignName})))}onCategorySelect(allCategories){this.allCategories.set([...allCategories])}search(searchTerm){null!=searchTerm&&""!==searchTerm&&this.routingService.routeToPath("search",{campaign:this.campaignName(),searchString:searchTerm})}static{this.ctorParameters=()=>[{type:routing_service.O}]}static{this.propDecorators={foundArticles:[{type:core.Input,args:[{isSignal:!0,alias:"foundArticles",required:!0,transform:void 0}]}],emptySearchSubtitle:[{type:core.Input,args:[{isSignal:!0,alias:"emptySearchSubtitle",required:!0,transform:void 0}]}],searchString:[{type:core.Input,args:[{isSignal:!0,alias:"searchString",required:!0,transform:void 0}]}],campaignName:[{type:core.Input,args:[{isSignal:!0,alias:"campaignName",required:!0,transform:void 0}]}]}}};SearchComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-search",template:'\n \n \x3c!-- Heading --\x3e\n \n
Search Results \n \n\n \n\n \n\n \x3c!-- Article List --\x3e\n \n @if (foundArticles().length > 0) {\n @for (article of filteredArticles(); track article.pk) {\n
\n }\n } @else {\n
\n
We couldn\'t find any hits for \'{{ searchString() }}\' \n {{ emptySearchSubtitle() }} \n \n }\n
\n\n \x3c!-- Footer --\x3e\n \n \n \n',standalone:!0,imports:[page_container_component.i,sidebar_legend_component.N,search_hit_component.z,router.Wk,button_component.Q,search_field_component.q],styles:[search_componentngResource_default()]})],SearchComponent);const search_stories={title:"DesignSystem/Templates/SearchComponent",component:SearchComponent,decorators:[(0,dist.moduleMetadata)({imports:[testing.c],declarations:[]})],args:{foundArticles:[{article_type:"location",name:"Castle Black",name_full:"Castle Black - The Night’s Watch",description:"The primary headquarters of the Night’s Watch",update_datetime:"2022-03-15",parent_location_details:{name:"The Wall",pk:123},getAbsoluteRouterUrl:()=>"/locations/456",pk:456,campaign_details:{id:789,name:"Dungeons and Dragons"}},{article_type:"character",name:"Jon Snow",name_full:"Jon Snow - The Bastard of Winterfell",description:"A member of the Night’s Watch and former Lord Commander",update_datetime:"2022-04-01",player_character:!0,images:[],getAbsoluteRouterUrl:()=>"/characters/789",pk:789,campaign_details:{id:789,name:"Dungeons and Dragons"}},{article_type:"diaryentry",name:"Jon Snow - Journal Entry #1",name_full:"Jon Snow - Journal Entry #1 - First Day on the Wall",description:"My first day at Castle Black was...interesting",update_datetime:"2022-04-05",session_details:{pk:234,session_number:1,is_main_session:!0,is_main_session_int:1},author_details:{pk:789,name:"Jon Snow"},getAbsoluteRouterUrl:()=>"/diaryentries/345",pk:345,campaign_details:{id:789,name:"Dungeons and Dragons"}},{article_type:"item",name:"Longclaw",name_full:"Longclaw - The Valyrian steel sword of Jon Snow",description:"A bastard sword made of Valyrian steel, with a hilt fashioned like a wolf",update_datetime:"2022-04-10",campaign_details:{id:567,name:"Game of Thrones RPG"},getAbsoluteRouterUrl:()=>"/items/890",pk:890},{article_type:"sessionaudio",name:"Game of Thrones RPG - Session 1",name_full:"Game of Thrones RPG - Session 1 - Beginning of the campaign",update_datetime:"2022-04-15",audio_url:"https://example.com/gameofthrones-session1.mp3",download_url:"https://example.com/gameofthrones-session1-download.mp3",session_details:{pk:234,session_number:1,is_main_session:!0,is_main_session_int:1},getAbsoluteRouterUrl:()=>"/session-audios/901",pk:901,campaign_details:{id:789,name:"Dungeons and Dragons"}},{article_type:"encounter",name:"Ambush in the Kingsroad",name_full:"Ambush in the Kingsroad - A band of bandits attack the party",description:"The party is ambushed while travelling on the Kingsroad, by a group of bandits led by a dangerous outlaw",update_datetime:"2022-04-20",icon:"swords-crossed",campaign_details:{id:567,name:"Game of Thrones RPG"},getAbsoluteRouterUrl:()=>"/encounters/123",pk:123},{article_type:"spell",name:"Fireball",name_full:"Fireball - A powerful explosion of fire",description:"A spell that creates a powerful explosion of fire, causing damage to all creatures within a certain area",update_datetime:"2022-04-25",campaign_details:{id:789,name:"Dungeons and Dragons"},getAbsoluteRouterUrl:()=>"/spells/234",pk:234},{article_type:"rules",name:"Critical Hits and Misses",name_full:"Critical Hits and Misses - Rules for critical hits and misses in combat",description:"A set of rules for determining the effects of critical hits and misses during combat",update_datetime:"2022-04-30",campaign_details:{id:789,name:"Dungeons and Dragons"},getAbsoluteRouterUrl:()=>"/rules/567",pk:567},{article_type:"quest",name:"The Black Knight",name_full:"The Black Knight - A quest to defeat a powerful undead warrior",description:"The players are hired to find and defeat the Black Knight, a powerful undead warrior who is terrorizing the countryside",update_datetime:"2022-05-10",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/quests/345",pk:345,taker_details:{name:"Franz",name_full:"Franz the warrior",pk:1}},{article_type:"organization",name:"The Thieves Guild",name_full:"The Thieves Guild - A secret organization of skilled thieves",description:"The Thieves Guild is a secret organization of skilled thieves, who operate in the shadows and have their own code of honor",update_datetime:"2022-05-15",campaign_details:{id:456,name:"Medieval Fantasy RPG"},getAbsoluteRouterUrl:()=>"/organizations/678",pk:678},{article_type:"creature",name:"Beholder",name_full:"Beholder - A monstrous creature with numerous eyes and deadly abilities",description:"The Beholder is a monstrous creature with a large central eye and numerous smaller eyes around its head, each with a different deadly ability",update_datetime:"2022-05-20",campaign_details:{id:789,name:"Dungeons and Dragons"},getAbsoluteRouterUrl:()=>"/creatures/901",pk:901},{getAbsoluteRouterUrl:()=>"/map/1",article_type:"map",description:"A map of Aldrune",pk:1,name_full:"Aldrune",name:"Aldrune",campaign_details:{name:"Aldrune",id:1},update_datetime:"2021-06-26T17:10:35.352119Z",icon:"/media/map"}],emptySearchSubtitle:"Found nothing empty subtitle",searchString:"Search String thing",campaignName:"Aldrune"}},Template=args=>({props:{...args}}),Default=Template.bind({});Default.args={};const NoArticlesFound=Template.bind({});NoArticlesFound.args={foundArticles:[]};const __namedExportsOrder=["Default","NoArticlesFound"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...Default.parameters?.docs?.source}}},NoArticlesFound.parameters={...NoArticlesFound.parameters,docs:{...NoArticlesFound.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args\n }\n})",...NoArticlesFound.parameters?.docs?.source}}}},"./src/design/atoms/button/button.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacer-1);\n}\n:host :disabled {\n cursor: not-allowed;\n}\n\n.btn__text--large {\n font-weight: bold;\n}\n.btn__spinner {\n margin-left: var(--spacer-2);\n width: 20px;\n height: 20px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/icon/icon.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/selectable-entry/selectable-entry.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".sidebar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: var(--spacer-2);\n padding-bottom: var(--spacer-2);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n}\n\n.sidebar-border {\n display: flex;\n border-left: solid 10px;\n}\n\nbutton {\n outline: unset;\n}\nbutton:hover {\n color: var(--bs-white);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/atoms/spinner/spinner.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --thickness: var(--bs-body-font-size);\n font-size: var(--thickness);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/search-field/search-field.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,"/* SEARCHBAR CSS */\ninput[type=search]::-webkit-search-decoration,\ninput[type=search]::-webkit-search-cancel-button,\ninput[type=search]::-webkit-search-results-button,\ninput[type=search]::-webkit-search-results-decoration {\n display: none;\n}\n\n.search {\n margin-bottom: var(--spacer-4);\n}\n.search__form {\n flex: 1;\n}\n.search__bar {\n display: flex;\n align-items: center;\n background-color: var(--bs-gray-800);\n padding-left: var(--spacer-2);\n border-color: var(--bs-white);\n border: solid 2px var(--bs-white);\n border-radius: var(--bs-border-radius);\n}\n.search__input {\n background-color: var(--bs-gray-800);\n border: none;\n outline: none;\n width: 100%;\n padding: var(--spacer-2);\n color: var(--bs-white);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/molecules/sidebar-legend/sidebar-legend.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".row-entry {\n padding: 0;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/search-hit/search-hit.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,":host {\n --search-border-color: var(--bs-white);\n}\n\n.search-hit {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding-top: var(--spacer-2);\n padding-bottom: var(--spacer-2);\n border-left: solid 7px var(--search-border-color);\n text-decoration: none;\n font-weight: unset;\n}\n.search-hit__heading {\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.search-hit__body {\n font-size: 16px;\n}\n.search-hit:hover {\n box-shadow: inset 0 0 30px var(--bs-link-hover-color);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/search/search.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".search__heading {\n text-align: center;\n}\n.search__results {\n margin-top: var(--spacer-5);\n margin-bottom: var(--spacer-5);\n}\n.search__home {\n display: inline-block;\n width: fit-content;\n}\n.search__empty-results {\n display: flex;\n align-items: center;\n flex-direction: column;\n text-align: center;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-site-admin-site-admin-stories.68d04afe.iframe.bundle.js b/design-templates-site-admin-site-admin-stories.68d04afe.iframe.bundle.js
new file mode 100644
index 000000000..23fc95266
--- /dev/null
+++ b/design-templates-site-admin-site-admin-stories.68d04afe.iframe.bundle.js
@@ -0,0 +1 @@
+(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6719],{"./src/app/_services/article/group.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>dummyGroups});const dummyGroups=[{url:"https://example.com/group1",name:"Group 1",permissions:["read","write"],id:1},{url:"https://example.com/group2",name:"Group 2",permissions:["read","delete"],id:2},{url:"https://example.com/group3",name:"Group 3",permissions:["write","execute"],id:3},{url:"https://example.com/admin",name:"Admin",permissions:["read","write","delete","execute"],id:4},{url:"https://example.com/guest",name:"Guest",permissions:["read"],id:5},{url:"https://example.com/member",name:"Member",permissions:["read","write"],id:6}]},"./src/app/_services/article/user.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{d:()=>dummyUsers});const dummyUsers=[{username:"isofruit",pk:3,email:"philippmdoerner@web.de",is_staff:!0,is_superuser:!0,is_active:!0,groups:[3,4],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Aldrune_campaign_admin_group",pk:4}]},{username:"Rhiannon",pk:6,email:"dianaday@gmx.net",is_staff:!1,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"SamDay",pk:7,email:void 0,is_staff:!0,is_superuser:!1,is_active:!0,groups:[],group_details:[]},{username:"Murtagh",pk:8,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,6],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_guest_campaign_group",pk:6}]},{username:"Ailis",pk:9,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Caitriona",pk:10,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,7,8],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_campaign_group",pk:7},{name:"Jōzai Corporation_campaign_admin_group",pk:8}]},{username:"Fen",pk:11,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"Bathilde",pk:12,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,7],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Guest",pk:14,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Relentless",pk:15,email:"philipp3000doerner@web.de",is_staff:!0,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"Guest2",pk:16,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Mipp1",pk:17,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Spleeti",pk:18,email:"Laura.spleet@posteo.de",is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Christian",pk:19,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Norbert",pk:20,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Papa",pk:21,email:"Dr.KlemensDoerner@gmx.de",is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Tecatin",pk:22,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[7],group_details:[{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Roach",pk:23,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5,7],group_details:[{name:"Aldrune_guest_campaign_group",pk:5},{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Mav",pk:25,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Sam",pk:28,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[4],group_details:[{name:"Aldrune_campaign_admin_group",pk:4}]}]},"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);switch(config.inputKind){case"NUMBER":validators.push("notInteger");break;case"NAME":validators.push("hasSpecialCharacters");break;case"NUMBER_FRACTION":validators.push("notNumber")}let innerInputType;if("NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(`${config.key}`),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/app/_services/utils/campaign.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{_B:()=>dummyCampaigns,jr:()=>dummyCampaign,mE:()=>dummyStatistics});const dummyCampaigns=[{pk:1,name:"Aldrune",subtitle:"A campaign made by Samuel Day and recorded by Philipp Dörner through the eyes of Relentless",background_image:"/media/campaign_backgrounds/bg.jpg",is_deactivated:!1,has_audio_recording_permission:!0,icon:"/media/campaign_icons/favicon-128x128.png",default_map:1,default_map_details:{icon:"map",image:"pic05_sMT2d6M.jpg",name:"Aldrune",id:1},duration:{start_date:"2020-04-07T00:00:00.000000Z",last_date:"2023-04-11T00:00:00.000000Z"}},{pk:2,name:"Jōzai Corp",subtitle:"Welcome to Jōzai Corp, please enjoy your employment.",background_image:"/media/campaign_backgrounds/shanghai_city_snlaYDd.jpg",is_deactivated:!1,has_audio_recording_permission:!1,icon:"/media/campaign_icons/icon.png",default_map:void 0,default_map_details:void 0,duration:{start_date:"2022-01-15T00:00:00.000000Z",last_date:"2022-02-19T00:00:00.000000Z"}}],dummyStatistics={character_count:265,item_count:142,location_count:229,creature_count:42,diaryentry_count:101,encounter_count:954,organization_count:46,quest_count:69,quote_count:203,session_audio_count:69,timestamp_count:1121,map_count:7,marker_count:136,spell_count:22,session_count:90,rule_count:17},dummyCampaign={name:"Aldrune",subtitle:"A campaign for testing",pk:1,background_image:"/assets/default_images/audio_pic_default.webp",icon:"https://www.aldrune.com/media/campaign_icons/favicon-128x128.png",default_map:123,default_map_details:{id:123,name:"Default Map",icon:"plus",image:"blub.jpg"},is_deactivated:!1,has_audio_recording_permission:!0,members:[{username:"isofruit",password:"password1",pk:1,api_permissions:["permission1","permission2"],groups:[1,2],group_details:[{name:"group1",pk:1},{name:"group2",pk:2}],is_staff:!0,is_superuser:!1,email:"user1@example.com",is_active:!0},{username:"user2",password:"password2",pk:2,api_permissions:["permission3","permission4"],groups:[1,3],group_details:[{name:"group1",pk:1},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user2@example.com",is_active:!0}],admins:[{username:"admin",password:"adminpassword",pk:3,api_permissions:["permission1","permission2","permission3","permission4"],groups:[1,2,3],group_details:[{name:"group1",pk:1},{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!0,is_superuser:!0,email:"admin@example.com",is_active:!0},{username:"user3",password:"password3",pk:4,api_permissions:["permission1"],groups:[1],group_details:[{name:"group1",pk:1}],is_staff:!1,is_superuser:!1,email:"user3@example.com",is_active:!0}],guests:[{username:"user4",password:"password4",pk:5,api_permissions:["permission2","permission3"],groups:[2,3],group_details:[{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user4@example.com",is_active:!0},{username:"user5",password:"password5",pk:6,api_permissions:["permission4"],groups:[3],group_details:[{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user5@example.com",is_active:!0}],member_group_name:"Members",admin_group_name:"Admins",guest_group_name:"Guests",emptySearchResponses:[{id:1,text:"Empty response 1",campaign:1},{id:2,text:"Empty response 2",campaign:1}]}},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/design/organisms/user-row/user-row.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>UserRowComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var user_row_componentngResource=__webpack_require__("./src/design/organisms/user-row/user-row.component.scss?ngResource"),user_row_componentngResource_default=__webpack_require__.n(user_row_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");let UserRowComponent=class UserRowComponent{constructor(){this.user=core.input.required(),this.groups=(0,core.input)(),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.addGroup=new core.EventEmitter,this.removeGroup=new core.EventEmitter,this.deleteUser=new core.EventEmitter,this.userGroupEntries=(0,core.computed)((()=>this.user().group_details?.map((group=>({badgeValue:group.pk,text:group.name})))??[]))}static{this.propDecorators={user:[{type:core.Input,args:[{isSignal:!0,alias:"user",required:!0,transform:void 0}]}],groups:[{type:core.Input,args:[{isSignal:!0,alias:"groups",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],addGroup:[{type:core.Output}],removeGroup:[{type:core.Output}],deleteUser:[{type:core.Output}]}}};UserRowComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-user-row",template:'\n
\n \n
\n {{ user().username | titlecase }}\n @if (!user().is_active) {\n
(†) \n }\n
\n \n\n
\n\n
\n
\n
{{ user().email ?? "Not Provided" }}
\n
\n\n @if (user().is_active) {\n
\n }\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,molecules.pn,common.TitleCasePipe,molecules.Ts],styles:[user_row_componentngResource_default()]})],UserRowComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/site-admin/site-admin.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>site_admin_stories});var common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),group_service_mock=__webpack_require__("./src/app/_services/article/group.service.mock.ts"),user_mock_service=__webpack_require__("./src/app/_services/article/user.mock.service.ts"),campaign_mock_service=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var site_admin_componentngResource=__webpack_require__("./src/design/templates/site-admin/site-admin.component.scss?ngResource"),site_admin_componentngResource_default=__webpack_require__.n(site_admin_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts"),collapsible_panel_component=__webpack_require__("./src/design/molecules/collapsible-panel/collapsible-panel.component.ts"),form_component=__webpack_require__("./src/design/molecules/form/form.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),user_row_component=__webpack_require__("./src/design/organisms/user-row/user-row.component.ts");let SiteAdminComponent=class SiteAdminComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.createCampaign=new core.EventEmitter,this.createUser=new core.EventEmitter,this.addUserGroup=new core.EventEmitter,this.removeUserGroup=new core.EventEmitter,this.downloadDatabase=new core.EventEmitter,this.deleteUser=new core.EventEmitter,this.userState="DISPLAY",this.userFields=[this.formlyService.buildInputConfig({key:"username",inputKind:"NAME",required:!0}),this.formlyService.buildConfirmedPasswordConfig({}),this.formlyService.buildInputConfig({key:"email",inputKind:"NAME",required:!1})],this.campaignState="DISPLAY",this.campaignFields=[this.formlyService.buildInputConfig({key:"name",inputKind:"NAME",required:!0,maxLength:40,placeholder:"Your campaign's name..."}),this.formlyService.buildInputConfig({key:"subtitle",inputKind:"STRING",required:!1,maxLength:400,placeholder:"The subtitle to show on the home page"}),this.formlyService.buildFileFieldConfig({key:"background_image",required:!0,fileButtonType:"DARK"}),this.formlyService.buildFileFieldConfig({key:"icon",required:!0,fileButtonType:"DARK"})]}ngOnInit(){this.setCampaignOverviewUrl()}ngOnChanges(){this.setUserCards()}setUserState(newState){this.userState=newState,"CREATE"===this.userState&&(this.userModel={})}createNewUser(newUser){this.createUser.emit(newUser)}setCampaignState(newState){this.campaignState=newState,"CREATE"===this.campaignState&&(this.campaignModel={})}createNewCampaign(newCampaign){this.createCampaign.emit(newCampaign)}setUserCards(){this.userCards=this.users?.map((user=>({isOpen:!1,user})))?.sort(((entry1,entry2)=>entry1.user.username.toLowerCase()>entry2.user.username.toLowerCase()?1:-1))??[]}setCampaignOverviewUrl(){this.campaignOverviewUrl=this.routingService.getRoutePath("campaign-overview")}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={users:[{type:core.Input}],campaigns:[{type:core.Input}],allGroups:[{type:core.Input}],statistics:[{type:core.Input}],serverUrl:[{type:core.Input}],createCampaign:[{type:core.Output}],createUser:[{type:core.Output}],addUserGroup:[{type:core.Output}],removeUserGroup:[{type:core.Output}],downloadDatabase:[{type:core.Output}],deleteUser:[{type:core.Output}]}}};SiteAdminComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-site-admin",template:'\n \n \n \n \n\n \x3c!-- Users Section --\x3e\n \n \x3c!-- Section Heading --\x3e\n
\n
\n \n Users\n \n\n \x3c!-- Heading Buttons --\x3e\n
\n \x3c!-- Add Users --\x3e\n \n
\n
\n\n
\n\n \x3c!-- New Table Entry --\x3e\n @if (userState === "CREATE") {\n
\n Adding new User \n \x3c!-- Form --\x3e\n \n \n }\n\n \x3c!-- Table --\x3e\n @if (userState === "DISPLAY") {\n @for (card of userCards; track card.user.pk) {\n
\n \n {{ card.user.username | titlecase }}\n \n\n \n \n }\n
(†): Deactivated/Deleted Account
\n }\n
\n\n \x3c!-- Database Section --\x3e\n \n \x3c!-- Section Heading --\x3e\n
\n
\n \n Database\n \n\n \x3c!-- Heading Buttons --\x3e\n
\n \x3c!-- Download Database --\x3e\n
\n\n \x3c!-- Clear Tokens --\x3e\n \x3c!--
\n \n Clear > 7 day old Tokens\n
--\x3e\n
\n
\n\n
\n\n \x3c!-- Section Body --\x3e\n \x3c!-- Statistics --\x3e\n
\n @for (statistic of statistics | keyvalue; track statistic.key) {\n
\n
{{ statistic.key }}
\n
{{ statistic.value }}
\n
\n }\n
\n
\n\n \x3c!-- Campaign Section --\x3e\n \n \x3c!-- Section Heading --\x3e\n
\n
\n \n Campaigns\n @if (campaignState === "WAIT_WHILE_CREATING") {\n \n }\n \n\n \x3c!-- Heading Buttons --\x3e\n
\n \x3c!-- Add Campaign --\x3e\n \n
\n
\n\n
\n\n \x3c!-- Section Body --\x3e\n @if (campaignState === "DISPLAY") {\n
\n @for (campaign of campaigns; track campaign.pk) {\n
\n
\n
\n
{{ campaign.name }} \n
\n
\n {{ campaign.admins?.length ?? 0 }} Admins\n
\n
\n {{ campaign.members?.length ?? 0 }} Members\n
\n
\n {{ campaign.guests?.length ?? 0 }} Guests\n
\n
\n }\n
\n }\n\n \x3c!-- New Campaign Entry --\x3e\n @if (campaignState === "CREATE") {\n
\n Adding new Campaign \n \x3c!-- Form --\x3e\n \n \n }\n
\n\n \n \n \n \n \n',standalone:!0,imports:[page_container_component.i,router.Wk,button_component.Q,icon_component.R,separator_component.F,card_component.i,form_component.s,collapsible_panel_component.e,user_row_component.D,spinner_component.t,common.TitleCasePipe,common.KeyValuePipe],styles:[site_admin_componentngResource_default()]})],SiteAdminComponent);const site_admin_stories={title:"DesignSystem/Templates/SiteAdminComponent",component:SiteAdminComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[common.CommonModule,ng_bootstrap.UN,testing.c,formly_constants.d_],declarations:[]})],args:{users:user_mock_service.d,campaigns:campaign_mock_service._B,allGroups:group_service_mock.F,statistics:campaign_mock_service.mE,serverUrl:"https://www.aldrune.com"}},Default=(args=>({props:{...args,createCampaign:(0,dist.XI)("createCampaign"),createUser:(0,dist.XI)("createUser"),addUserGroup:(0,dist.XI)("addUserGroup"),removeUserGroup:(0,dist.XI)("removeUserGroup"),downloadDatabase:(0,dist.XI)("downloadDatabase"),deleteUser:(0,dist.XI)("deleteUser")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createCampaign: action('createCampaign'),\n createUser: action('createUser'),\n addUserGroup: action('addUserGroup'),\n removeUserGroup: action('removeUserGroup'),\n downloadDatabase: action('downloadDatabase'),\n deleteUser: action('deleteUser')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/user-row/user-row.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".user-card__row {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n.user-card__row--delete {\n margin-top: var(--spacer-4);\n display: flex;\n justify-content: flex-end;\n}\n.user-card__row--heading {\n margin-top: var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/site-admin/site-admin.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".site-admin__user-section {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n.site-admin__campaign-section {\n margin-bottom: var(--spacer-3);\n}\n.site-admin__separator {\n --separator-margin-top: var(--spacer-0);\n}\n\n.user-section__user {\n display: inline-block;\n width: 100%;\n margin-top: var(--spacer-1);\n margin-bottom: var(--spacer-1);\n}\n\n.campaign-section__heading {\n display: flex;\n justify-content: space-between;\n}\n.campaign-section__body {\n margin-bottom: var(--spacer-5);\n}\n\n.body__icon {\n margin-right: var(--spacer-3);\n max-height: 2rem;\n}\n\n.heading__text {\n margin-bottom: var(--spacer-0);\n}\n.heading__text--loading {\n margin-left: var(--spacer-3);\n}\n.heading__button {\n align-self: flex-end;\n position: relative;\n top: 1px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design-templates-site-admin-site-admin-stories.b3533ee3.iframe.bundle.js b/design-templates-site-admin-site-admin-stories.b3533ee3.iframe.bundle.js
deleted file mode 100644
index 821062b0c..000000000
--- a/design-templates-site-admin-site-admin-stories.b3533ee3.iframe.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunknimstoryfont_gui=self.webpackChunknimstoryfont_gui||[]).push([[6719],{"./src/app/_services/article/group.service.mock.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{F:()=>dummyGroups});const dummyGroups=[{url:"https://example.com/group1",name:"Group 1",permissions:["read","write"],id:1},{url:"https://example.com/group2",name:"Group 2",permissions:["read","delete"],id:2},{url:"https://example.com/group3",name:"Group 3",permissions:["write","execute"],id:3},{url:"https://example.com/admin",name:"Admin",permissions:["read","write","delete","execute"],id:4},{url:"https://example.com/guest",name:"Guest",permissions:["read"],id:5},{url:"https://example.com/member",name:"Member",permissions:["read","write"],id:6}]},"./src/app/_services/article/user.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{d:()=>dummyUsers});const dummyUsers=[{username:"isofruit",pk:3,email:"philippmdoerner@web.de",is_staff:!0,is_superuser:!0,is_active:!0,groups:[3,4],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Aldrune_campaign_admin_group",pk:4}]},{username:"Rhiannon",pk:6,email:"dianaday@gmx.net",is_staff:!1,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"SamDay",pk:7,email:void 0,is_staff:!0,is_superuser:!1,is_active:!0,groups:[],group_details:[]},{username:"Murtagh",pk:8,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,6],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_guest_campaign_group",pk:6}]},{username:"Ailis",pk:9,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Caitriona",pk:10,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,7,8],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_campaign_group",pk:7},{name:"Jōzai Corporation_campaign_admin_group",pk:8}]},{username:"Fen",pk:11,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"Bathilde",pk:12,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[3,7],group_details:[{name:"Aldrune_campaign_group",pk:3},{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Guest",pk:14,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Relentless",pk:15,email:"philipp3000doerner@web.de",is_staff:!0,is_superuser:!1,is_active:!0,groups:[3],group_details:[{name:"Aldrune_campaign_group",pk:3}]},{username:"Guest2",pk:16,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Mipp1",pk:17,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Spleeti",pk:18,email:"Laura.spleet@posteo.de",is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Christian",pk:19,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Norbert",pk:20,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Papa",pk:21,email:"Dr.KlemensDoerner@gmx.de",is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Tecatin",pk:22,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[7],group_details:[{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Roach",pk:23,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5,7],group_details:[{name:"Aldrune_guest_campaign_group",pk:5},{name:"Jōzai Corporation_campaign_group",pk:7}]},{username:"Mav",pk:25,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[5],group_details:[{name:"Aldrune_guest_campaign_group",pk:5}]},{username:"Sam",pk:28,email:void 0,is_staff:!1,is_superuser:!1,is_active:!0,groups:[4],group_details:[{name:"Aldrune_campaign_admin_group",pk:4}]}]},"./src/app/_services/formly/formly-service.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{$:()=>FormlyService});var tslib__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),rxjs__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/observable/of.js"),rxjs__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/rxjs/dist/esm5/internal/operators/map.js"),src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/design/organisms/formly-select-disable/formly-select-disable-field.component.ts"),src_utils_array__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./src/utils/array.ts"),src_utils_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/string.ts");let FormlyService=class FormlyService{buildOverviewSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildDisableSelectConfig(config){const options$=config.required??!0?config.options$:this.addEmptyOption(config.options$,config),sortedOptions$=this.sortOptions(options$,config),validators=this.getValidators(config);return{key:config.key,type:"select-disable",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),labelProp:config.labelProp,valueProp:config.valueProp??"pk",options:sortedOptions$,required:config.required??!0,warningMessage:config.warningMessage,additionalProperties:{disabledExpression:config.disabledExpression,tooltipMessage:config.tooltipMessage??"WHAT",showWrapperLabel:config.showWrapperLabel??!0}},validators:{validation:validators}}}buildStaticSelectConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"select",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),options:config.options,required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildStaticStringSelectConfig(partialConfig){let options=partialConfig.options.map((str=>({label:str,value:str})));const config={...partialConfig,options};return this.buildStaticSelectConfig(config)}buildInputConfig(config){const validators=this.getValidators(config);let innerInputType;if("NUMBER"===config.inputKind&&validators.push("notInteger"),"NAME"===config.inputKind&&validators.push("hasSpecialCharacters"),"NUMBER"===config.inputKind)innerInputType="number";else innerInputType="string";return{key:config.key,type:"input",className:config.className,wrappers:config.wrappers,hideExpression:config.hide??!1,parsers:config.parsers,props:{maxLength:config.maxLength,minLength:config.minLength,label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),type:innerInputType,required:config.required??!0,disabled:!!config.disabled,placeholder:config.placeholder??void 0},validators:{validation:validators}}}buildSinglePasswordConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"input",className:config.className,fieldGroupClassName:config.fieldGroupClassName,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Your password",disabled:config.disabled},validators:{validation:validators}}}buildConfirmedPasswordConfig(config){const validators=config.validators??[];validators.push("required");return{validators:{validation:[{name:"fieldMatch",options:{errorPath:"passwordConfirm"}}]},fieldGroup:[{key:"password",type:"input",className:config.className,templateOptions:{label:config.label??"Password",type:"password",required:!0,placeholder:"Password, at least 7 characters",disabled:config.disabled},validators:{validation:validators}},{key:"passwordConfirm",type:"input",className:config.className,templateOptions:{label:config.label?"Confirm "+config.label:"Password Confirmation",type:"password",required:!0,placeholder:"Please re-enter your password",disabled:config.disabled}}]}}buildCheckboxConfig(config){return{key:config.key,type:"checkbox",className:config.className,wrappers:config.wrappers,defaultValue:config.defaultValue,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled}}}buildDatepickerConfig(config){const validators=this.getValidators(config);return validators.push("date"),{key:config.key,type:"datepicker",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildFileFieldConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"file",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{buttonType:config.fileButtonType??"SECONDARY",fileFieldKind:config.fileFieldKind??"IMAGE",label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:!!config.disabled},validators:{validation:validators}}}buildEditorConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"text-editor",className:config.className,wrappers:config.wrappers,hideExpression:config.hide,props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled},validators:{validation:validators}}}buildAutocompleteConfig(config){const validators=this.getValidators(config);return{key:config.key,type:"autocomplete",className:config.className,wrappers:[...config.wrappers??[],"form-field"],props:{label:config.label??(0,src_utils_string__WEBPACK_IMPORTED_MODULE_1__.ZH)(config.key),required:config.required??!0,disabled:config.disabled,additionalProperties:{optionLabelProp:config.optionLabelProp,optionValueProp:config.optionValueProp,optionKeyProp:config.optionKeyProp,loadOptions:config.loadOptions,initialValue$:config.initialValue$}},validators:{validation:validators}}}toUpdateForm(fields){return fields.filter((field=>!("file"===field.type)))}getValidators(config){const validators=config.validators??[];return config.required&&validators.push("required"),validators}addEmptyOption(list,config){return Array.isArray(list)?(0,rxjs__WEBPACK_IMPORTED_MODULE_2__.of)([this.createEmptyOption(config),...list]):list.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((values=>[this.createEmptyOption(config),...values])))}createEmptyOption(config){const emptyOption={};emptyOption[config.labelProp]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_LABEL;return emptyOption[config.valueProp??config.key]=src_design_organisms_formly_select_disable_formly_select_disable_field_component__WEBPACK_IMPORTED_MODULE_0__.D.EMPTY_OPTION_VALUE,emptyOption}sortOptions(list$,config){const{sortProp,sortDirection}=config;return sortProp?list$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_3__.T)((list=>(0,src_utils_array__WEBPACK_IMPORTED_MODULE_4__.Z)(list,sortProp,sortDirection??"asc")))):list$}};FormlyService=(0,tslib__WEBPACK_IMPORTED_MODULE_5__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.Injectable)({providedIn:"root"})],FormlyService)},"./src/app/_services/routing.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{O:()=>RoutingService});var RoutingService_1,tslib__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("./node_modules/tslib/tslib.es6.mjs"),_angular_core__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),_angular_router__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),src_utils_logging__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/logging.ts"),src_utils_object__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/utils/object.ts");let RoutingService=class RoutingService{static{RoutingService_1=this}constructor(router){this.router=router,this.NONE_STRING="None",this.routeNodes=this.getRouteTree(),(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(`${RoutingService_1.name}-routeNodes`,this.routeNodes)}routeToPath(routeName,params){(0,src_utils_logging__WEBPACK_IMPORTED_MODULE_0__.R)(RoutingService_1.name,`Routing to ${routeName}`);const routePath=this.getRoutePath(routeName,params),cleanedObjectUrl=this.replaceSpecialUnicodeCharacters(routePath);this.router.navigateByUrl(cleanedObjectUrl)}getRoutePath(routeName,params={}){let variableRoutePath=this.getVariableRoutePathByName(routeName);if(this.hasPathVariables(variableRoutePath)){const variableNames=this.getPathVariableNames(variableRoutePath);for(let variableName of variableNames){const propertyKey=(0,src_utils_object__WEBPACK_IMPORTED_MODULE_1__.Ui)(params,variableName);if(null!=propertyKey)null===params[propertyKey]&&(params[propertyKey]=this.NONE_STRING),variableRoutePath=variableRoutePath.replace(`:${variableName}`,params[propertyKey]);else{const e=new Error(`Tried to create path for route '${routeName}' but lacked parameter '${variableName}' `);console.error(e,"Provided Params: ",params)}}}return`/${variableRoutePath}`}routeToErrorPage(error){if("number"!=typeof error&&!error.hasOwnProperty("status"))throw"Incorrect error input. The input does not contain an error status or an object with the error status. Can not route to error page without error status.";"number"!=typeof error&&error.hasOwnProperty("status")&&(error=error.status);const errorStatusParam=`${error}`;this.routeToPath("error",{errorStatus:errorStatusParam})}routeNameMatches(route,routeName){return route.snapshot.data.name===routeName}replaceSpecialUnicodeCharacters(routePath){return routePath.replace("(","%28").replace(")","%29").replace("?","?").replace("†","%E2%80%A0")}getVariableRoutePathByName(routeName){return this.getVariableRouteByName(routeName).fullPath}getVariableRouteByName(routeName){const route=this.routeNodes[routeName];if(null==route)throw`There is no route with the name ${routeName}. Please contact the Developer to use either a different route name or create a route for this name.`;return route}hasPathVariables(routePath){return routePath.includes("/:")}hasRoutePath(routeName){return null!=this.routeNodes[routeName]}getEndRoutes(route,parentPath=""){let path="";parentPath&&route.path?path=`${parentPath}/${route.path}`:parentPath?path=parentPath:route.path&&(path=route.path);return null==route.children?[{route,fullPath:path}]:route.children.map((route=>this.getEndRoutes(route,path))).flat()}getPathVariableNames(routePath){const pathVariables=routePath.split("/").filter((segment=>segment.startsWith(":")));return pathVariables.map((segment=>segment.slice(1)))}getRouteTree(){return this.router.config.map((route=>this.getEndRoutes(route))).flat().reduce(((acc,route)=>{const routeName=route.route?.data?.name;return null!=routeName&&(acc[routeName]=route),acc}),{})}static{this.ctorParameters=()=>[{type:_angular_router__WEBPACK_IMPORTED_MODULE_2__.Ix}]}};RoutingService=RoutingService_1=(0,tslib__WEBPACK_IMPORTED_MODULE_3__.Cg)([(0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Injectable)({providedIn:"root"})],RoutingService)},"./src/app/_services/utils/campaign.mock.service.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{_B:()=>dummyCampaigns,jr:()=>dummyCampaign,mE:()=>dummyStatistics});const dummyCampaigns=[{pk:1,name:"Aldrune",subtitle:"A campaign made by Samuel Day and recorded by Philipp Dörner through the eyes of Relentless",background_image:"/media/campaign_backgrounds/bg.jpg",is_deactivated:!1,has_audio_recording_permission:!0,icon:"/media/campaign_icons/favicon-128x128.png",default_map:1,default_map_details:{icon:"map",image:"pic05_sMT2d6M.jpg",name:"Aldrune",id:1},duration:{start_date:"2020-04-07T00:00:00.000000Z",last_date:"2023-04-11T00:00:00.000000Z"}},{pk:2,name:"Jōzai Corp",subtitle:"Welcome to Jōzai Corp, please enjoy your employment.",background_image:"/media/campaign_backgrounds/shanghai_city_snlaYDd.jpg",is_deactivated:!1,has_audio_recording_permission:!1,icon:"/media/campaign_icons/icon.png",default_map:void 0,default_map_details:void 0,duration:{start_date:"2022-01-15T00:00:00.000000Z",last_date:"2022-02-19T00:00:00.000000Z"}}],dummyStatistics={character_count:265,item_count:142,location_count:229,creature_count:42,diaryentry_count:101,encounter_count:954,organization_count:46,quest_count:69,quote_count:203,session_audio_count:69,timestamp_count:1121,map_count:7,marker_count:136,spell_count:22,session_count:90,rule_count:17},dummyCampaign={name:"Aldrune",subtitle:"A campaign for testing",pk:1,background_image:"/assets/default_images/audio_pic_default.webp",icon:"https://www.aldrune.com/media/campaign_icons/favicon-128x128.png",default_map:123,default_map_details:{id:123,name:"Default Map",icon:"plus",image:"blub.jpg"},is_deactivated:!1,has_audio_recording_permission:!0,members:[{username:"isofruit",password:"password1",pk:1,api_permissions:["permission1","permission2"],groups:[1,2],group_details:[{name:"group1",pk:1},{name:"group2",pk:2}],is_staff:!0,is_superuser:!1,email:"user1@example.com",is_active:!0},{username:"user2",password:"password2",pk:2,api_permissions:["permission3","permission4"],groups:[1,3],group_details:[{name:"group1",pk:1},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user2@example.com",is_active:!0}],admins:[{username:"admin",password:"adminpassword",pk:3,api_permissions:["permission1","permission2","permission3","permission4"],groups:[1,2,3],group_details:[{name:"group1",pk:1},{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!0,is_superuser:!0,email:"admin@example.com",is_active:!0},{username:"user3",password:"password3",pk:4,api_permissions:["permission1"],groups:[1],group_details:[{name:"group1",pk:1}],is_staff:!1,is_superuser:!1,email:"user3@example.com",is_active:!0}],guests:[{username:"user4",password:"password4",pk:5,api_permissions:["permission2","permission3"],groups:[2,3],group_details:[{name:"group2",pk:2},{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user4@example.com",is_active:!0},{username:"user5",password:"password5",pk:6,api_permissions:["permission4"],groups:[3],group_details:[{name:"group3",pk:3}],is_staff:!1,is_superuser:!1,email:"user5@example.com",is_active:!0}],member_group_name:"Members",admin_group_name:"Admins",guest_group_name:"Guests",emptySearchResponses:[{id:1,text:"Empty response 1",campaign:1},{id:2,text:"Empty response 2",campaign:1}]}},"./src/design/atoms/card/card.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>CardComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var card_componentngResource=__webpack_require__("./src/design/atoms/card/card.component.scss?ngResource"),card_componentngResource_default=__webpack_require__.n(card_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs");let CardComponent=class CardComponent{};CardComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-card",template:'\n \n
',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[],styles:[card_componentngResource_default()]})],CardComponent)},"./src/design/organisms/page-container/page-container.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{i:()=>PageContainerComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var page_container_componentngResource=__webpack_require__("./src/design/organisms/page-container/page-container.component.scss?ngResource"),page_container_componentngResource_default=__webpack_require__.n(page_container_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),animations=__webpack_require__("./node_modules/@angular/animations/fesm2022/animations.mjs");const fadeIn=(0,animations.hZ)("fadeIn",[(0,animations.kY)(":enter",[(0,animations.iF)({opacity:0}),(0,animations.i0)("250ms ease-in",(0,animations.iF)({opacity:1}))]),(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);(0,animations.hZ)("fadeOut",[(0,animations.kY)(":leave",[(0,animations.iF)({opacity:1}),(0,animations.i0)("250ms ease-out",(0,animations.iF)({opacity:0}))])]);let PageContainerComponent=class PageContainerComponent{};PageContainerComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-page-container",template:'\n',standalone:!0,imports:[],animations:[fadeIn],styles:[page_container_componentngResource_default()]})],PageContainerComponent)},"./src/design/organisms/user-row/user-row.component.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{D:()=>UserRowComponent});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var user_row_componentngResource=__webpack_require__("./src/design/organisms/user-row/user-row.component.scss?ngResource"),user_row_componentngResource_default=__webpack_require__.n(user_row_componentngResource),common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),molecules=__webpack_require__("./src/design/molecules/index.ts");let UserRowComponent=class UserRowComponent{constructor(){this.user=core.input.required(),this.groups=(0,core.input)(),this.canCreate=(0,core.input)(!1),this.canDelete=(0,core.input)(!1),this.addGroup=new core.EventEmitter,this.removeGroup=new core.EventEmitter,this.deleteUser=new core.EventEmitter,this.userGroupEntries=(0,core.computed)((()=>this.user().group_details?.map((group=>({badgeValue:group.pk,text:group.name})))??[]))}static{this.propDecorators={user:[{type:core.Input,args:[{isSignal:!0,alias:"user",required:!0,transform:void 0}]}],groups:[{type:core.Input,args:[{isSignal:!0,alias:"groups",required:!1,transform:void 0}]}],canCreate:[{type:core.Input,args:[{isSignal:!0,alias:"canCreate",required:!1,transform:void 0}]}],canDelete:[{type:core.Input,args:[{isSignal:!0,alias:"canDelete",required:!1,transform:void 0}]}],addGroup:[{type:core.Output}],removeGroup:[{type:core.Output}],deleteUser:[{type:core.Output}]}}};UserRowComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-user-row",template:'\n
\n \n
\n {{ user().username | titlecase }}\n @if (!user().is_active) {\n
(†) \n }\n
\n \n\n
\n\n
\n
\n
{{ user().email ?? "Not Provided" }}
\n
\n\n @if (user().is_active) {\n
\n }\n
\n',changeDetection:core.ChangeDetectionStrategy.OnPush,standalone:!0,imports:[icon_component.R,molecules.pn,common.TitleCasePipe,molecules.Ts],styles:[user_row_componentngResource_default()]})],UserRowComponent)},"./src/utils/array.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{U1:()=>replaceItem,Z:()=>sortByProp});const replaceItem=(list,item,key)=>{const newList=[...list],itemIndex=newList.findIndex((listItem=>listItem[key]===item[key]));if(-1===itemIndex)throw"Failed to find item in list";return newList[itemIndex]=item,newList},sortByProp=(list,prop,sortDirection="asc")=>{const newList=[...list];return newList.sort(((a,b)=>{const sortValue=a[prop]>b[prop]?1:-1;return"desc"===sortDirection?-1*sortValue:sortValue})),newList}},"./src/utils/object.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{Ui:()=>getCorrectKey,p:()=>getNestedProperty});var _string__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./src/utils/string.ts");function getCorrectKey(obj,key){if(key in obj)return key;const snakeCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.C8)(key);if(snakeCaseKey in obj)return snakeCaseKey;const camelCaseKey=(0,_string__WEBPACK_IMPORTED_MODULE_0__.sF)(key);return camelCaseKey in obj?camelCaseKey:void 0}function getNestedProperty(item,keyPath){const keys=keyPath.split(".");let currentValue=item;for(let key of keys){if(!(key in currentValue)){throw new Error(`Cannot find nested property '${keyPath}' in '${JSON.stringify(item)}'`)}currentValue=currentValue[key]}return currentValue}},"./node_modules/@storybook/addon-actions/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.d(__webpack_exports__,{XI:()=>action});var external_STORYBOOK_MODULE_PREVIEW_API_=__webpack_require__("storybook/internal/preview-api"),external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_=__webpack_require__("storybook/internal/preview-errors"),external_STORYBOOK_MODULE_GLOBAL_=__webpack_require__("@storybook/global"),v4=__webpack_require__("./node_modules/uuid/dist/esm-browser/v4.js"),ADDON_ID="storybook/actions",EVENT_ID=`${ADDON_ID}/action-event`,config={depth:10,clearOnStoryChange:!0,limit:50},findProto=(obj,callback)=>{let proto=Object.getPrototypeOf(obj);return!proto||callback(proto)?proto:findProto(proto,callback)},serializeArg=a=>{if("object"==typeof(e=a)&&e&&findProto(e,(proto=>/^Synthetic(?:Base)?Event$/.test(proto.constructor.name)))&&"function"==typeof e.persist){let e=Object.create(a.constructor.prototype,Object.getOwnPropertyDescriptors(a));e.persist();let viewDescriptor=Object.getOwnPropertyDescriptor(e,"view"),view=viewDescriptor?.value;return"object"==typeof view&&"Window"===view?.constructor.name&&Object.defineProperty(e,"view",{...viewDescriptor,value:Object.create(view.constructor.prototype)}),e}var e;return a},generateId=()=>"object"==typeof crypto&&"function"==typeof crypto.getRandomValues?(0,v4.A)():Date.now().toString(36)+Math.random().toString(36).substring(2);function action(name,options={}){let actionOptions={...config,...options},handler=function(...args){if(options.implicit){let storyRenderer=("__STORYBOOK_PREVIEW__"in external_STORYBOOK_MODULE_GLOBAL_.global?external_STORYBOOK_MODULE_GLOBAL_.global.__STORYBOOK_PREVIEW__:void 0)?.storyRenders.find((render=>"playing"===render.phase||"rendering"===render.phase));if(storyRenderer){let deprecated=!window?.FEATURES?.disallowImplicitActionsInRenderV8,error=new external_STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS_.ImplicitActionsDuringRendering({phase:storyRenderer.phase,name,deprecated});if(!deprecated)throw error;console.warn(error)}}let channel=external_STORYBOOK_MODULE_PREVIEW_API_.addons.getChannel(),id=generateId(),serializedArgs=args.map(serializeArg),normalizedArgs=args.length>1?serializedArgs:serializedArgs[0],actionDisplayToEmit={id,count:0,data:{name,args:normalizedArgs},options:{...actionOptions,maxDepth:5+(actionOptions.depth||3),allowFunction:actionOptions.allowFunction||!1}};channel.emit(EVENT_ID,actionDisplayToEmit)};return handler.isAction=!0,handler.implicit=options.implicit,handler}},"./src/design/templates/site-admin/site-admin.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Default:()=>Default,__namedExportsOrder:()=>__namedExportsOrder,default:()=>site_admin_stories});var common=__webpack_require__("./node_modules/@angular/common/fesm2022/common.mjs"),testing=__webpack_require__("./node_modules/@angular/router/fesm2022/testing.mjs"),ng_bootstrap=__webpack_require__("./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"),dist=__webpack_require__("./node_modules/@storybook/addon-actions/dist/index.mjs"),angular_dist=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),group_service_mock=__webpack_require__("./src/app/_services/article/group.service.mock.ts"),user_mock_service=__webpack_require__("./src/app/_services/article/user.mock.service.ts"),campaign_mock_service=__webpack_require__("./src/app/_services/utils/campaign.mock.service.ts"),formly_constants=__webpack_require__("./src/app/_modules/formly_constants.ts"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.mjs");var site_admin_componentngResource=__webpack_require__("./src/design/templates/site-admin/site-admin.component.scss?ngResource"),site_admin_componentngResource_default=__webpack_require__.n(site_admin_componentngResource),core=__webpack_require__("./node_modules/@angular/core/fesm2022/core.mjs"),router=__webpack_require__("./node_modules/@angular/router/fesm2022/router.mjs"),formly_service_service=__webpack_require__("./src/app/_services/formly/formly-service.service.ts"),routing_service=__webpack_require__("./src/app/_services/routing.service.ts"),button_component=__webpack_require__("./src/design/atoms/button/button.component.ts"),card_component=__webpack_require__("./src/design/atoms/card/card.component.ts"),icon_component=__webpack_require__("./src/design/atoms/icon/icon.component.ts"),separator_component=__webpack_require__("./src/design/atoms/separator/separator.component.ts"),spinner_component=__webpack_require__("./src/design/atoms/spinner/spinner.component.ts"),collapsible_panel_component=__webpack_require__("./src/design/molecules/collapsible-panel/collapsible-panel.component.ts"),form_component=__webpack_require__("./src/design/molecules/form/form.component.ts"),page_container_component=__webpack_require__("./src/design/organisms/page-container/page-container.component.ts"),user_row_component=__webpack_require__("./src/design/organisms/user-row/user-row.component.ts");let SiteAdminComponent=class SiteAdminComponent{constructor(routingService,formlyService){this.routingService=routingService,this.formlyService=formlyService,this.createCampaign=new core.EventEmitter,this.createUser=new core.EventEmitter,this.addUserGroup=new core.EventEmitter,this.removeUserGroup=new core.EventEmitter,this.downloadDatabase=new core.EventEmitter,this.deleteUser=new core.EventEmitter,this.userState="DISPLAY",this.userFields=[this.formlyService.buildInputConfig({key:"username",inputKind:"NAME",required:!0}),this.formlyService.buildConfirmedPasswordConfig({}),this.formlyService.buildInputConfig({key:"email",inputKind:"NAME",required:!1})],this.campaignState="DISPLAY",this.campaignFields=[this.formlyService.buildInputConfig({key:"name",inputKind:"NAME",required:!0,maxLength:40,placeholder:"Your campaign's name..."}),this.formlyService.buildInputConfig({key:"subtitle",inputKind:"STRING",required:!1,maxLength:400,placeholder:"The subtitle to show on the home page"}),this.formlyService.buildFileFieldConfig({key:"background_image",required:!0,fileButtonType:"DARK"}),this.formlyService.buildFileFieldConfig({key:"icon",required:!0,fileButtonType:"DARK"})]}ngOnInit(){this.setCampaignOverviewUrl()}ngOnChanges(){this.setUserCards()}setUserState(newState){this.userState=newState,"CREATE"===this.userState&&(this.userModel={})}createNewUser(newUser){this.createUser.emit(newUser)}setCampaignState(newState){this.campaignState=newState,"CREATE"===this.campaignState&&(this.campaignModel={})}createNewCampaign(newCampaign){this.createCampaign.emit(newCampaign)}setUserCards(){this.userCards=this.users?.map((user=>({isOpen:!1,user})))?.sort(((entry1,entry2)=>entry1.user.username.toLowerCase()>entry2.user.username.toLowerCase()?1:-1))??[]}setCampaignOverviewUrl(){this.campaignOverviewUrl=this.routingService.getRoutePath("campaign-overview")}static{this.ctorParameters=()=>[{type:routing_service.O},{type:formly_service_service.$}]}static{this.propDecorators={users:[{type:core.Input}],campaigns:[{type:core.Input}],allGroups:[{type:core.Input}],statistics:[{type:core.Input}],serverUrl:[{type:core.Input}],createCampaign:[{type:core.Output}],createUser:[{type:core.Output}],addUserGroup:[{type:core.Output}],removeUserGroup:[{type:core.Output}],downloadDatabase:[{type:core.Output}],deleteUser:[{type:core.Output}]}}};SiteAdminComponent=(0,tslib_es6.Cg)([(0,core.Component)({selector:"app-site-admin",template:'\n \n \n \n \n\n \x3c!-- Users Section --\x3e\n \n \x3c!-- Section Heading --\x3e\n
\n
\n \n Users\n \n\n \x3c!-- Heading Buttons --\x3e\n
\n \x3c!-- Add Users --\x3e\n \n
\n
\n\n
\n\n \x3c!-- New Table Entry --\x3e\n @if (userState === "CREATE") {\n
\n Adding new User \n \x3c!-- Form --\x3e\n \n \n }\n\n \x3c!-- Table --\x3e\n @if (userState === "DISPLAY") {\n @for (card of userCards; track card.user.pk) {\n
\n \n {{ card.user.username | titlecase }}\n \n\n \n \n }\n
(†): Deactivated/Deleted Account
\n }\n
\n\n \x3c!-- Database Section --\x3e\n \n \x3c!-- Section Heading --\x3e\n
\n
\n \n Database\n \n\n \x3c!-- Heading Buttons --\x3e\n
\n \x3c!-- Download Database --\x3e\n
\n\n \x3c!-- Clear Tokens --\x3e\n \x3c!--
\n \n Clear > 7 day old Tokens\n
--\x3e\n
\n
\n\n
\n\n \x3c!-- Section Body --\x3e\n \x3c!-- Statistics --\x3e\n
\n @for (statistic of statistics | keyvalue; track statistic.key) {\n
\n
{{ statistic.key }}
\n
{{ statistic.value }}
\n
\n }\n
\n
\n\n \x3c!-- Campaign Section --\x3e\n \n \x3c!-- Section Heading --\x3e\n
\n
\n \n Campaigns\n @if (campaignState === "WAIT_WHILE_CREATING") {\n \n }\n \n\n \x3c!-- Heading Buttons --\x3e\n
\n \x3c!-- Add Campaign --\x3e\n \n
\n
\n\n
\n\n \x3c!-- Section Body --\x3e\n @if (campaignState === "DISPLAY") {\n
\n @for (campaign of campaigns; track campaign.pk) {\n
\n
\n
\n
{{ campaign.name }} \n
\n
\n {{ campaign.admins?.length ?? 0 }} Admins\n
\n
\n {{ campaign.members?.length ?? 0 }} Members\n
\n
\n {{ campaign.guests?.length ?? 0 }} Guests\n
\n
\n }\n
\n }\n\n \x3c!-- New Campaign Entry --\x3e\n @if (campaignState === "CREATE") {\n
\n Adding new Campaign \n \x3c!-- Form --\x3e\n \n \n }\n
\n\n \n \n \n \n \n',standalone:!0,imports:[page_container_component.i,router.Wk,button_component.Q,icon_component.R,separator_component.F,card_component.i,form_component.s,collapsible_panel_component.e,user_row_component.D,spinner_component.t,common.TitleCasePipe,common.KeyValuePipe],styles:[site_admin_componentngResource_default()]})],SiteAdminComponent);const site_admin_stories={title:"DesignSystem/Templates/SiteAdminComponent",component:SiteAdminComponent,decorators:[(0,angular_dist.moduleMetadata)({imports:[common.CommonModule,ng_bootstrap.UN,testing.c,formly_constants.d_],declarations:[]})],args:{users:user_mock_service.d,campaigns:campaign_mock_service._B,allGroups:group_service_mock.F,statistics:campaign_mock_service.mE,serverUrl:"https://www.aldrune.com"}},Default=(args=>({props:{...args,createCampaign:(0,dist.XI)("createCampaign"),createUser:(0,dist.XI)("createUser"),addUserGroup:(0,dist.XI)("addUserGroup"),removeUserGroup:(0,dist.XI)("removeUserGroup"),downloadDatabase:(0,dist.XI)("downloadDatabase"),deleteUser:(0,dist.XI)("deleteUser")}})).bind({});Default.args={};const __namedExportsOrder=["Default"];Default.parameters={...Default.parameters,docs:{...Default.parameters?.docs,source:{originalSource:"args => ({\n props: {\n ...args,\n createCampaign: action('createCampaign'),\n createUser: action('createUser'),\n addUserGroup: action('addUserGroup'),\n removeUserGroup: action('removeUserGroup'),\n downloadDatabase: action('downloadDatabase'),\n deleteUser: action('deleteUser')\n }\n})",...Default.parameters?.docs?.source}}}},"./src/design/atoms/card/card.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".accordion {\n --bs-accordion-active-bg: var(--bs-gray-900) !important;\n}\n\nbutton.btn.btn-link:hover {\n text-decoration: none !important;\n}\n\nbutton.btn.btn-link:focus {\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n.card button.btn.btn-link {\n width: 100%;\n text-align: left;\n}\n\n.form-control {\n height: 2.75rem;\n font-size: 1.2rem;\n}\n\ninput.form-control {\n background-color: transparent !important;\n color: white !important;\n border: solid white 1px !important;\n}\n\ninput.form-control:focus {\n box-shadow: 3px blue;\n color: white;\n}\n\nselect.form-select {\n color: white !important;\n background-color: #4c4c4c !important;\n}\n\nselect:focus {\n background-color: #4c4c4c;\n box-shadow: 3px blue;\n color: white;\n}\n\noption {\n background-color: #1b1f22;\n color: white;\n font-size: 18px;\n}\n\n.custom-control.custom-checkbox {\n transform: scale(1.2);\n transform-origin: 0;\n}\n\n.visually-hidden {\n display: none;\n}\n\n.tooltip-inner {\n --bs-tooltip-bg: var(--bs-info-bg-subtle);\n --bs-tooltip-color: var(--bs-emphasis-color);\n}\n\n:host {\n --card-bg-color: #393e41 !important;\n --card-flex-direction: column;\n --card-padding: var(--spacer-4);\n}\n\n.card {\n background-color: var(--card-bg-color);\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n padding: var(--card-padding);\n flex-direction: var(--card-flex-direction);\n width: 100%;\n height: 100%;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/page-container/page-container.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".page {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.page__background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: -2;\n width: 100%;\n height: 100mvh;\n}\n.page__foreground {\n max-width: 60rem;\n width: 100%;\n background-color: var(--wiki-bg-transparent);\n padding: var(--spacer-3) var(--spacer-3) var(--spacer-5) var(--spacer-3);\n margin-bottom: var(--spacer-4);\n color: white;\n}\n@media (min-width: 768px) {\n .page__foreground {\n border-radius: var(--bs-border-radius);\n }\n}\n@media (min-width: 992px) {\n .page__foreground {\n padding: var(--spacer-4);\n }\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/organisms/user-row/user-row.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".user-card__row {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n.user-card__row--delete {\n margin-top: var(--spacer-4);\n display: flex;\n justify-content: flex-end;\n}\n.user-card__row--heading {\n margin-top: var(--spacer-0);\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()},"./src/design/templates/site-admin/site-admin.component.scss?ngResource":(module,__unused_webpack_exports,__webpack_require__)=>{var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"),___CSS_LOADER_EXPORT___=__webpack_require__("./node_modules/css-loader/dist/runtime/api.js")(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);___CSS_LOADER_EXPORT___.push([module.id,".site-admin__user-section {\n margin-top: var(--spacer-3);\n margin-bottom: var(--spacer-3);\n}\n.site-admin__campaign-section {\n margin-bottom: var(--spacer-3);\n}\n.site-admin__separator {\n --separator-margin-top: var(--spacer-0);\n}\n\n.user-section__user {\n display: inline-block;\n width: 100%;\n margin-top: var(--spacer-1);\n margin-bottom: var(--spacer-1);\n}\n\n.campaign-section__heading {\n display: flex;\n justify-content: space-between;\n}\n.campaign-section__body {\n margin-bottom: var(--spacer-5);\n}\n\n.body__icon {\n margin-right: var(--spacer-3);\n max-height: 2rem;\n}\n\n.heading__text {\n margin-bottom: var(--spacer-0);\n}\n.heading__text--loading {\n margin-left: var(--spacer-3);\n}\n.heading__button {\n align-self: flex-end;\n position: relative;\n top: 1px;\n}",""]),module.exports=___CSS_LOADER_EXPORT___.toString()}}]);
\ No newline at end of file
diff --git a/design/atoms/_models/icon.ts b/design/atoms/_models/icon.ts
index a1374b1b4..a513c5d81 100644
--- a/design/atoms/_models/icon.ts
+++ b/design/atoms/_models/icon.ts
@@ -52,6 +52,7 @@ export const ALL_SOLID_ICONS = [
'file-audio',
'file-import',
'file',
+ 'gear',
'gavel',
'globe-americas',
'hammer',
diff --git a/design/molecules/_models/search-preferences.ts b/design/molecules/_models/search-preferences.ts
index 2521d91aa..c04f91bea 100644
--- a/design/molecules/_models/search-preferences.ts
+++ b/design/molecules/_models/search-preferences.ts
@@ -1,4 +1,4 @@
-export interface SidebarOption {
+export interface ArticleCategory {
label: string;
active: boolean;
color: string;
@@ -17,4 +17,14 @@ export const DEFAULT_SEARCH_PREFERENCES = [
{ label: 'SessionAudio', active: false, color: '--sessionaudio-color' },
{ label: 'Rules', active: false, color: '--rules-color' },
{ label: 'Spell', active: false, color: '--spell-color' },
-] as const satisfies SidebarOption[];
+] as const satisfies ArticleCategory[];
+
+export type CategoryLabel =
+ (typeof DEFAULT_SEARCH_PREFERENCES)[number]['label'];
+
+export const GRAPH_CATEGORIES = [
+ 'Character',
+ 'Item',
+ 'Organization',
+ 'Location',
+] as const satisfies CategoryLabel[];
diff --git a/design/molecules/index.ts b/design/molecules/index.ts
index 5b762e557..e42da4002 100644
--- a/design/molecules/index.ts
+++ b/design/molecules/index.ts
@@ -2,7 +2,7 @@ export { BadgeListEntry, BadgeListSelectOptions } from './_models/badge-list';
export { ListEntry } from './_models/list';
export {
DEFAULT_SEARCH_PREFERENCES,
- SidebarOption,
+ ArticleCategory as SidebarOption,
} from './_models/search-preferences';
export { ToggleState } from './_models/toggle';
export { ArticleFooterComponent } from './article-footer/article-footer.component';
diff --git a/design/molecules/sidebar-legend/sidebar-legend.component.ts b/design/molecules/sidebar-legend/sidebar-legend.component.ts
index ae64a0528..5019821c0 100644
--- a/design/molecules/sidebar-legend/sidebar-legend.component.ts
+++ b/design/molecules/sidebar-legend/sidebar-legend.component.ts
@@ -7,8 +7,8 @@ import {
} from '@angular/core';
import { SelectableEntryComponent } from '../../atoms/selectable-entry/selectable-entry.component';
import {
+ ArticleCategory,
DEFAULT_SEARCH_PREFERENCES,
- SidebarOption,
} from '../_models/search-preferences';
@Component({
@@ -21,10 +21,10 @@ import {
})
export class SidebarLegendComponent {
interactable = input(false);
- sidebarEntries = input(DEFAULT_SEARCH_PREFERENCES);
+ sidebarEntries = input(DEFAULT_SEARCH_PREFERENCES);
- @Output() sidebarChange: EventEmitter = new EventEmitter<
- SidebarOption[]
+ @Output() sidebarChange: EventEmitter = new EventEmitter<
+ ArticleCategory[]
>();
constructor() {}
diff --git a/design/organisms/graph/data.ts b/design/organisms/_model/graph.ts
similarity index 76%
rename from design/organisms/graph/data.ts
rename to design/organisms/_model/graph.ts
index bb10d2be9..b3cd74d47 100644
--- a/design/organisms/graph/data.ts
+++ b/design/organisms/_model/graph.ts
@@ -24,6 +24,22 @@ export const SELECTORS = {
deleteLinkSelector: '#delete-link',
};
+export const GRAPH_SETTINGS = {
+ width: 1080,
+ minZoom: 0.5,
+ maxZoom: 12,
+ minHeight: 300,
+ linkAttractingForce: 0.5,
+ nodeRepellingForce: 50,
+ undirectedForce: 0.025,
+ circleSize: 6,
+ xForce: 1,
+ yForce: 1,
+ centeringTransitionTime: 1000,
+ hoverTransitionTime: 200,
+ strokeWidth: 0.5,
+};
+
export type NodeClickEvent = {
event: MouseEvent;
clickedNode: ArticleNode | undefined;
diff --git a/design/organisms/graph/graph-menu.service.ts b/design/organisms/graph/graph-menu.service.ts
index 7343cc576..2e239f562 100644
--- a/design/organisms/graph/graph-menu.service.ts
+++ b/design/organisms/graph/graph-menu.service.ts
@@ -9,8 +9,8 @@ import {
} from 'src/app/_models/nodeMap';
import { ArticleService } from 'src/app/_services/article/article.service';
import { ellipsize } from 'src/utils/string';
+import { LinkClickEvent, SELECTORS } from '../_model/graph';
import { SIDEBAR_ENTRIES } from '../_model/sidebar';
-import { LinkClickEvent, SELECTORS } from './data';
export type NodeMenuData = {
title: string | undefined;
diff --git a/design/organisms/graph/graph.component.html b/design/organisms/graph/graph.component.html
index dfc5c5e25..a6019ff17 100644
--- a/design/organisms/graph/graph.component.html
+++ b/design/organisms/graph/graph.component.html
@@ -14,9 +14,9 @@
#zoomControl
type="range"
aria-label="'Zoom level of graph'"
- [min]="settings.minZoom"
- [max]="settings.maxZoom"
- [value]="(zoomLevel$ | async) ?? settings.minZoom"
+ [min]="graphSettings().minZoom"
+ [max]="graphSettings().maxZoom"
+ [value]="(zoomLevel$ | async) ?? graphSettings().minZoom"
[step]="0.1"
(input)="zoomSliderEvents$.next(zoomControl.value)"
class="controls__slider"
diff --git a/design/organisms/graph/graph.component.ts b/design/organisms/graph/graph.component.ts
index 68418538e..454e389e0 100644
--- a/design/organisms/graph/graph.component.ts
+++ b/design/organisms/graph/graph.component.ts
@@ -15,23 +15,9 @@ import { filter, map, Subject, take } from 'rxjs';
import { NodeMap, NodeSelection } from 'src/app/_models/nodeMap';
import { ArticleService } from 'src/app/_services/article/article.service';
import { ButtonComponent } from 'src/design/atoms/button/button.component';
+import { GRAPH_SETTINGS } from '../_model/graph';
import { GraphService } from './graph.service';
-const GRAPH_SETTINGS = {
- width: 1080,
- minZoom: 0.5,
- maxZoom: 12,
- minHeight: 300,
- linkAttractingForce: 0.5,
- nodeRepellingForce: 50,
- circleSize: 6,
- xForce: 1,
- yForce: 1,
- centeringTransitionTime: 1000,
- hoverTransitionTime: 200,
- strokeWidth: 0.5,
-};
-
@Component({
selector: 'app-graph',
standalone: true,
@@ -43,6 +29,7 @@ const GRAPH_SETTINGS = {
export class GraphComponent {
data = input.required();
activeNodesData = input.required();
+ graphSettings = input.required();
articleService = inject(ArticleService);
graphService = inject(GraphService); //Accessible as the parent, GraphPageComponent, provides an instance
@@ -52,14 +39,19 @@ export class GraphComponent {
elements = toSignal(this.graphService.elements$);
zoomLevel$ = this.graphService.zoomLevelChangedEvent$;
- settings = GRAPH_SETTINGS;
-
zoomSliderEvents$ = new Subject();
constructor() {
- effect(() => this.graphService.createGraphEvents$.next(this.data()), {
- allowSignalWrites: true,
- });
+ effect(
+ () =>
+ this.graphService.createGraphEvents$.next({
+ data: this.data(),
+ settings: this.graphSettings(),
+ }),
+ {
+ allowSignalWrites: true,
+ },
+ );
// Replace graph in HTML if graph changes
effect(() => {
diff --git a/design/organisms/graph/graph.service.ts b/design/organisms/graph/graph.service.ts
index 73cb4339c..1b8c57d5a 100644
--- a/design/organisms/graph/graph.service.ts
+++ b/design/organisms/graph/graph.service.ts
@@ -38,25 +38,14 @@ import {
import { log } from 'src/utils/logging';
import { filterNil } from 'src/utils/rxjs-operators';
import { capitalize } from 'src/utils/string';
-import { LinkClickEvent, NodeClickEvent, SELECTORS } from './data';
+import {
+ GRAPH_SETTINGS,
+ LinkClickEvent,
+ NodeClickEvent,
+ SELECTORS,
+} from '../_model/graph';
import { GraphElement, GraphMenuService } from './graph-menu.service';
-export const GRAPH_SETTINGS = {
- width: 1080,
- minZoom: 0.5,
- maxZoom: 12,
- minHeight: 300,
- linkAttractingForce: 0.5,
- nodeRepellingForce: 50,
- undirectedForce: 0.025,
- circleSize: 6,
- xForce: 1,
- yForce: 1,
- centeringTransitionTime: 1000,
- hoverTransitionTime: 200,
- strokeWidth: 0.5,
-};
-
type MyZoomBehavior = ZoomBehavior;
type ZoomElement = Selection;
type GraphElements = {
@@ -67,18 +56,21 @@ type GraphElements = {
@Injectable()
export class GraphService {
- public createGraphEvents$ = new ReplaySubject(1);
+ public createGraphEvents$ = new ReplaySubject<{
+ data: NodeMap;
+ settings: typeof GRAPH_SETTINGS;
+ }>(1);
private _elements$ = new Subject();
public elements$ = this._elements$.asObservable();
private _nodeClickEvents$ = new Subject();
public nodeClickEvents$ = this._nodeClickEvents$.pipe(
withLatestFrom(this.createGraphEvents$),
- map(([event, graphData]) => this.toNodeEvent(event, graphData)),
+ map(([event, graphData]) => this.toNodeEvent(event, graphData.data)),
);
private _nodeRightClickEvents$ = new Subject();
public nodeRightClickEvents$ = this._nodeRightClickEvents$.pipe(
withLatestFrom(this.createGraphEvents$),
- map(([event, graphData]) => this.toNodeEvent(event, graphData)),
+ map(([event, graphData]) => this.toNodeEvent(event, graphData.data)),
);
private linkRightClickEvents$ = new Subject();
public centerNodeEvents$ = new Subject();
@@ -119,7 +111,7 @@ export class GraphService {
tap(() => this._elements$.next(undefined)),
takeUntilDestroyed(),
)
- .subscribe((data) => this.createGraph(data));
+ .subscribe((data) => this.createGraph(data.data, data.settings));
}
/**
@@ -195,10 +187,6 @@ export class GraphService {
event.event,
event.clickedLink,
);
- // TODO:
- // 1. Figure out how to extract the clicked links from via event from links.
- // 2. Transform into the data needed to open a context menu
- // 3. render a context menu with its own html etc. Make sure that it has a delete option that is disabled if the link is not a custom link
});
}
@@ -216,10 +204,11 @@ export class GraphService {
filterNil(),
),
),
+ withLatestFrom(this.createGraphEvents$),
takeUntilDestroyed(),
)
- .subscribe(([centeredNodeData, zoomBehavior]) =>
- this.centerNodeInGraph(centeredNodeData, zoomBehavior),
+ .subscribe(([[centeredNodeData, zoomBehavior], { settings }]) =>
+ this.centerNodeInGraph(centeredNodeData, zoomBehavior, settings),
);
}
@@ -233,10 +222,10 @@ export class GraphService {
}
// HELPER FUNCTIONS
- private createGraph(nodeMap: NodeMap) {
- const height = this.inferGraphHeight(GRAPH_SETTINGS.width, getBreakpoint());
+ private createGraph(nodeMap: NodeMap, settings: typeof GRAPH_SETTINGS) {
+ const height = this.inferGraphHeight(settings.width, getBreakpoint());
const graphElement = create('svg')
- .attr('viewBox', [0, 0, GRAPH_SETTINGS.width, height])
+ .attr('viewBox', [0, 0, settings.width, height])
.attr(
'style',
'max-width: 100%; height: auto; min-height: 300px; cursor: move;',
@@ -246,8 +235,9 @@ export class GraphService {
const zoomBehavior = this.addZoomListener(
graphElement,
zoomContainer,
- GRAPH_SETTINGS.width,
+ settings.width,
height,
+ settings,
);
graphElement.on('click', (event: MouseEvent) =>
@@ -262,7 +252,11 @@ export class GraphService {
// Add a line for each link, and a circle for each node.
this.addLinks(zoomContainer, nodeMap.links);
- const allNodesElement = this.addNodes(zoomContainer, nodeMap.nodes);
+ const allNodesElement = this.addNodes(
+ zoomContainer,
+ nodeMap.nodes,
+ settings,
+ );
// Create a simulation with several forces.
const simulation = forceSimulation(nodeMap.nodes)
@@ -270,15 +264,15 @@ export class GraphService {
'link',
forceLink(nodeMap.links)
.id((d) => d.record.name)
- .strength(GRAPH_SETTINGS.linkAttractingForce),
+ .strength(settings.linkAttractingForce),
)
.force(
'charge',
- forceManyBody().strength(-1 * GRAPH_SETTINGS.nodeRepellingForce),
+ forceManyBody().strength(-1 * settings.nodeRepellingForce),
)
- .force('x', forceX().strength(GRAPH_SETTINGS.undirectedForce))
- .force('y', forceY().strength(GRAPH_SETTINGS.undirectedForce))
- .force('center', forceCenter(GRAPH_SETTINGS.width / 2, height / 2));
+ .force('x', forceX().strength(settings.undirectedForce))
+ .force('y', forceY().strength(settings.undirectedForce))
+ .force('center', forceCenter(settings.width / 2, height / 2));
addDragBehavior(allNodesElement, simulation);
// Set the position attributes of links and nodes each time the simulation ticks.
@@ -293,6 +287,7 @@ export class GraphService {
undefined
>,
nodeData: ArticleNode[],
+ settings: typeof GRAPH_SETTINGS,
) {
const nodes = hostElement
.append('g')
@@ -315,7 +310,7 @@ export class GraphService {
// imgGroups
nodes
.append('circle')
- .attr('r', GRAPH_SETTINGS.circleSize)
+ .attr('r', settings.circleSize)
.attr('stroke', 'black')
.attr('guid', (d) => d.guid)
.attr(
@@ -329,10 +324,10 @@ export class GraphService {
// Add Label
nodes
.append('text')
- .attr('y', GRAPH_SETTINGS.circleSize * 6)
+ .attr('y', settings.circleSize * 6)
.attr('text-anchor', 'middle')
.attr('stroke', '#000')
- .attr('stroke-width', GRAPH_SETTINGS.strokeWidth)
+ .attr('stroke-width', settings.strokeWidth)
.attr('transform', 'scale(0.3)')
.attr('guid', (d) => d.guid)
.text((d) => d.record.name);
@@ -455,12 +450,16 @@ export class GraphService {
);
}
- private centerNodeInGraph(node: ArticleNode, myZoom: MyZoomBehavior) {
+ private centerNodeInGraph(
+ node: ArticleNode,
+ myZoom: MyZoomBehavior,
+ settings: typeof GRAPH_SETTINGS,
+ ) {
const graph = select(SELECTORS.graphSelector);
if (graph.empty()) return;
myZoom.translateTo(
- graph.transition().duration(GRAPH_SETTINGS.centeringTransitionTime),
+ graph.transition().duration(settings.centeringTransitionTime),
node.x as number,
node.y as number,
);
@@ -509,13 +508,14 @@ export class GraphService {
zoomContainer: ZoomElement,
width: number,
height: number,
+ settings: typeof GRAPH_SETTINGS,
) {
const zoomBehavior = zoom()
.extent([
[0, 0],
[width, height],
])
- .scaleExtent([GRAPH_SETTINGS.minZoom, GRAPH_SETTINGS.maxZoom])
+ .scaleExtent([settings.minZoom, settings.maxZoom])
.on('zoom', (val) => {
zoomContainer.attr('transform', val.transform);
this.zoomLevelChangedEvent$.next(val.transform.k);
diff --git a/design/organisms/quote-field/quote-field.component.ts b/design/organisms/quote-field/quote-field.component.ts
index cfa147a14..4a9f7fefb 100644
--- a/design/organisms/quote-field/quote-field.component.ts
+++ b/design/organisms/quote-field/quote-field.component.ts
@@ -105,7 +105,10 @@ export class QuoteFieldComponent {
labelProp: 'name_full',
valueProp: 'pk',
}),
- this.formlyService.buildAutocompleteConfig({
+ this.formlyService.buildAutocompleteConfig<
+ Quote | QuoteRaw,
+ OverviewItem
+ >({
key: 'encounter',
required: false,
loadOptions: (searchTerm) =>
diff --git a/iframe.html b/iframe.html
index aed6b4f53..f231a349e 100644
--- a/iframe.html
+++ b/iframe.html
@@ -504,7 +504,7 @@
window['TAGS_OPTIONS'] = {"dev-only":{"excludeFromDocsStories":true},"docs-only":{"excludeFromSidebar":true},"test-only":{"excludeFromSidebar":true,"excludeFromDocsStories":true}};