{"version":3,"file":"bracco-ddec326b990b5362326080b04b975511.js","names":["Contact","_dec","computed","_dec2","_dec3","_dec4","_class","Ability","constructor","super","arguments","this","_descriptor","async","get","length","canDelete","count_provider_contacts","isAbleTo","canCreate","canUpdate","canRead","undefined","_applyDecoratedDescriptor","prototype","service","configurable","enumerable","writable","initializer","Object","getOwnPropertyDescriptor","_exports","default","Doi","_dec5","_dec6","_dec7","_dec8","_dec9","_dec10","_dec11","_dec12","_dec13","_dec14","canViewHealth","canViewState","canSource","canTransfer","canMove","canUpload","canModify","canEdit","canForm","canDetail","Index","canWrite","Message","Organization","Prefix","self","any","repository","Provider","canEditSalesforceField","canToken","Repository","equal","_initializerDefineProperty","_descriptor2","User","ApplicationAdapter","JSONAPIAdapter","_defineProperty","ENV","API_URL","headers","access_token","isPresent","Authorization","handleResponse","status","payload","includes","errors","_default","urlForFindRecord","id","modelName","snapshot","baseUrl","buildURL","query","adapterOptions","buildQuery","urlForUpdateRecord","urlForCreateRecord","pathForType","options","allowedKeys","queryParts","key","value","entries","push","join","Funder","CROSSREF_API_URL","init","set","Accept","authorize","Person","ORCID_API_URL","Ror","ROR_API_URL","Sentry","App","Application","config","modulePrefix","podModulePrefix","Resolver","loadInitializers","Globus","Base","restore","data","_validate","Promise","resolve","reject","authenticate","jwt","serverTokenEndpoint","fetch","method","body","then","response","text","json","JSON","parse","ok","responseJSON","SyntaxError","responseText","catch","invalidate","isEmpty","Jwt","OAuth2PasswordGrantAuthenticator","token_type","Oauth2","xs","sm","md","lg","xl","__COLOCATED_TEMPLATE__","_templateFactory","createTemplateFactory","block","moduleName","isStrictMode","about_links","name","FOOTER_LINKS","WHAT_WE_DO","NAME","url","URL","GOVERNANCE","STEERING_AND_WORKING_GROUPS","TEAM","JOB_OPPORTUNITIES","PROJECTS","work_with_us_links","CREATE_DOIS","INTEGRATE_WORKFLOWS","ENABLE_DISCOVERY","PROMOTE_REUSE","STRATEGIC_INITIATIVES","membership_links","BECOME_A_MEMBER","DATACITE_FEE_MODEL","MEMBERSHIP_ENQUIRY","DATACITE_MEMBERS","resources_links","METADATA_SCHEMA","contact_links","PRIVACY_POLICY","TERMS_AND_CONDITIONS","IMPRINT","ApplicationFooter","Component","didReceiveAttrs","htmlSafe","SITE_TITLE","_component","setComponentTemplate","ApplicationHeader","_descriptor3","_descriptor4","home","currentUser","typeOf","route","model","href","settings","router","currentRouteName","session","isAuthenticated","showLogo","role","transitionNoAccess","transitionTo","invalidateSession","action","BarChart","tagName","classNames","classNameBindings","_class2","Date","getFullYear","count","summarize","A","reduce","a","b","currentYear","findBy","toString","chartId","label","toLowerCase","schedule","send","barChartInt","formatYear","timeFormat","height","margin","startDate","endDate","domain","timeYears","width","x","scaleTime","rangeRound","y","scaleLinear","max","d","xAxis","axisBottom","scale","tickSize","ticks","select","selectAll","remove","chart","append","attr","enter","call","error","barChart","Tooltips","title","CcLicense","licenseURL","uri","URI","licenseLogo","hostname","labels","segment","split","unshift","val","sum","w","class","tooltip","pushObject","logo","CreateDoiButton","createDoi","CreatorShow","DoiAffiliation","organizations","updateAffiliation","organizationRecord","fragment","searchRor","store","sortBy","reason","console","debug","selectRor","ror","deleteAffiliation","creator","removeObject","alternateIdentifierTypeList","DoiAlternateIdentifier","selected","createOnEnter","e","keyCode","isOpen","highlighted","isBlank","searchText","alternateIdentifierTypes","actions","choose","updateAlternateIdentifier","selectAlternateIdentifierType","alternateIdentifierType","deleteAlternateIdentifier","DoiAlternateIdentifiers","addAlternateIdentifier","createFragment","toggleAlternateIdentifiers","showAlternateIdentifiers","DoiCitationBody","didRender","window","MathJax","typesetClear","element","innerHTML","typeset","DoiCitation","selectStyle","apa","vancouver","ieee","style","blob","statusText","isDestroying","isDestroyed","UploadFile","fromBlob","readAsText","result","err","doSelectStyle","humanContributorTypes","map","type","humanizeString","organizationalContributorTypes","personalContributorTypes","DoiContributor","PersonBaseComponent","humanContributorType","selectContributorType","contributorType","contributorTypeId","pascalCase","selectNameType","deleteContributorAction","selectContributorTypeAction","DoiContributors","addContributor","nameIdentifiers","affiliation","toggleContributors","showContributors","DoiCreator","deleteCreator","DoiCreators","addCreator","toggleCreators","showCreators","dateTypesCompleteList","DoiDate","dateTypes","updateDate","selectDateType","updateDateInformation","deleteDate","DoiDates","addDate","toggleDates","showDates","descriptionTypes","languageList","ISO6391","getAllNames","DoiDescription","extend","LanguageComputedMixin","isSeriesInformation","updateDescription","deleteDescription","selectDescriptionType","descriptionType","searchLanguage","languages","filter","language","startsWith","selectLanguage","getCode","DoiDescriptions","addDescription","toggleDescriptions","showDescriptions","stateList","draft","registered","findable","state","repositoryPrefixes","_super","setDefaultPrefix","sort","repositoryPrefix","generate","suffix","dois","doi","selectState","setStates","states","forEach","item","selectPrefix","prefix","selectSuffix","refresh","clear","FORMATS","keys","mime","_extensions","DoiFormat","formats","splice","index","searchFormat","input","ext","selectFormat","formatExtension","Array","from","deleteFormat","DoiFormats","addFormat","toggleFormats","showFormats","funderIdentifierTypeList","DoiFundingReference","funders","updateFunderSchemeAndType","scheme","updateFunderReference","funder","createOnEnterAction","funderIdentifierTypes","updateFunderIdentifierAction","selectFunderReferenceAction","updateFunderNameAction","selectFunderIdentifierTypeAction","updateSchemeUri","updateAwardNumberAction","updateAwardTitleAction","updateAwardUriAction","deleteFundingReferenceAction","searchFundingReferencesAction","DoiFundingReferences","addFundingReference","toggleFundingReferences","showFundingReferences","DoiGeoLocation","updateGeoLocationPlace","updateGeoLocationPointLongitude","updateGeoLocationPointLatitude","updateGeoLocationBoxWestLongitude","updateGeoLocationBoxEastLongitude","updateGeoLocationBoxNorthLatitude","updateGeoLocationBoxSouthLatitude","deleteGeoLocation","DoiGeoLocations","addGeoLocation","toggleGeoLocations","showGeoLocations","DoiHealth","redirectText","redirectCount","redirectUrls","helpText","isChecked","contentType","trim","bodyHasPid","hasSchemaOrg","DoiLanguage","getName","setLanguage","DoiList","isResearcherProfile","link","DoiMedia","DoiMetadata","summary","datacite","datacite_json","schema_org","citeproc","codemeta","bibtex","ris","jats","showMetadata","metadata","acceptHeaders","vkbeautify","stringify","xml","selectMetadata","DoiNameIdentifier","validateOrcidIdentifier","findRecord","person","joinNameParts","givenName","familyName","nameIdentifierScheme","validateRorIdentifier","substr","indexOf","updateNameIdentifier","test","updateNameIdentifierAction","deleteNameIdentifierAction","DoiPublisher","updatePublisher","updatePublisherIdentifier","relationTypeList","relatedIdentifierTypeList","resourceTypeGeneralList","DoiRelatedIdentifier","isMetadataRelationTypes","updateRelatedIdentifier","ark","lsid","purl","require_host","host_whitelist","arxiv","doiUrl","bibcode","urn","rrid","swid0","swid1","swid2","raid","selectResourceTypeGeneral","isURL","isISBN","selectRelationType","relationType","selectedRelationType","selectRelatedIdentifierType","relatedIdentifierType","resourceTypeGeneral","selectedResourceTypeGeneral","updateRelatedIdentifierAction","updateRelatedMetadataSchemeAction","updateSchemeURIAction","updateSchemeTypeAction","selectRelationTypeAction","updateRelationTypeInformationAction","selectRelatedIdentifierTypeAction","selectResourceTypeGeneralAction","deleteRelatedIdentifierAction","DoiRelatedIdentifiers","addRelatedIdentifier","toggleRelatedIdentifiers","showRelatedIdentifiers","DoiRelatedItemContributor","showPersonal","updateName","deleteRelatedItemContributor","DoiRelatedItemCreator","deleteRelatedItemCreator","relatedItemIdentifierTypeList","DoiRelatedItemIdentifier","relatedItemIdentifierType","updateRelatedItemIdentifier","selectRelatedItemIdentifierType","updateRelatedItemIdentifierAction","selectRelatedItemIdentifierTypeAction","relatedItemTypeList","DoiRelatedItem","selectRelatedItemType","relatedItemType","updateRelatedItemTitleAction","updateRelatedItemVolumeAction","updateRelatedItemIssueAction","updateRelatedItemNumberAction","updateRelatedItemPublicationYearAction","selectRelatedItemTypeAction","deleteRelatedItemAction","addRelatedItemCreatorAction","toggleRelatedItemCreatorsAction","showRelatedItemCreators","addRelatedItemContributorAction","toggleRelatedItemContributorsAction","showRelatedItemContributors","DoiRelatedItems","addRelatedItem","toggleRelatedItems","showRelatedItems","DoiRightsList","addRights","toggleRights","showRights","DoiRights","spdx","spdxList","updateRights","rights","seeAlso","spdxLicenseList","spdxLicenseListComplete","selectRights","updateRightsUri","deleteRights","searchRights","rightsFound","DoiSize","updateSize","selectSize","deleteSize","DoiSizes","addSize","toggleSizes","showSizes","DoiState","selectStateAction","setStatesAction","completeSubjectList","fosMapping","allLabels","DoiSubject","attributeBindings","replace","setSchemeUri","setScheme","setClassificationCode","subjectText","simple","subjects","updateSubject","fos","findSubjectByLabel","subject","subjectScheme","schemeUri","classificationCode","updateSubjectScheme","updateSubjectSchemeUri","updateClassificationCode","deleteSubject","searchSubject","DoiSubjects","addSubject","toggleSubjects","showSubjects","DoiSummary","titleTypes","DoiTitle","updateTitle","deleteTitle","selectTitleType","titleType","DoiTitles","addTitle","toggleTitles","showTitles","DoiTransfer","searchRepository","repositories","selectRepository","oldRepository","searchRepositoryAction","selectRepositoryAction","submitAction","save","cancelAction","DoiTypes","DoiUpload","b64DecodeUnicode","str","decodeURIComponent","atob","c","charCodeAt","slice","file","categoryList","DonutChart","doiLink","donutChart","formatFixed","format","categories","color","scaleOrdinal","range","schemeSet3","radius","myArc","arc","outerRadius","innerRadius","myPie","pie","donutChartAction","ExportBasicMetadata","exportBasicMetadata","types","resourceType","author","formatCreators","creators","publisher","publicationYear","csv","Papa","unparse","Blob","filename","currentDate","client_id","page","saveAs","FooterStatus","StatusPage","sp","success","querySelector","textContent","description","classList","add","indicator","HeadContent","layout","IndexHeader","parentElement","IndexInfo","promise","IndexShow","editAction","provider","LandingPage","ListLinks","MenuLinks","NAVMENU_TITLE","MetadataDashboardButton","metadataDashboardUrl","METADATA_DASHBOARD_URL","args","dashboardId","fabricaDeployTarget","openLink","document","activeElement","blur","open","MetricsCounter","placeholders","contact","organization","ModelSearch","notEmpty","relevance","search","params","assign","queryParams","doSearch","ModelValidationErrors","MonthChart","formatMonthYear","OrganizationList","PageNumbers","alias","pageItems","Number","currentPage","totalPages","i","current","dots","nextPage","previousPage","isReadonlyNameType","isReadonly","isReadonlyNameParts","updateGivenName","updateFamilyName","addNameIdentifier","addAffiliation","setReadOnly","PrefixAvailable","Validations","buildValidations","firstPrefix","validator","regex","message","lastPrefix","PrefixNew","addPrefixes","first","last","createRecord","new","submitFirstPrefixAction","submitLastPrefixAction","ProviderId","symbol","generateAction","refreshAction","clearAction","ProviderInfo","ProviderList","ProviderRor","ProviderSettings","certificateList","RepositoryCertificate","searchCertificate","certificates","certificate","selectCertificate","deleteCertificate","removeAt","RepositoryDoisTransfer","_descriptor5","flashMessages","intl","formatNumber","Math","ceil","timeout","sticky","RepositoryId","toUpperCase","RepositoryInfo","RepositoryIssn","RepositoryLanguage","languageName","selectedLanguageCode","deleteLanguage","RepositoryList","repositoryTypeList","RepositoryRepositoryType","searchRepositoryType","repositoryTypes","repositoryType","selectRepositoryType","certifyDisciplinaryRepository","deleteRepositoryType","RepositorySettings","RepositorySidebar","RepositorySubjects","RepositoryTransfer","providers","searchProvider","selectProvider","uid","searchProviderAction","selectProviderAction","canceAction","ShowProviderTabs","ShowRepositoryTabs","StateLabel","capitalize","SubjectLabel","match","UrlCheck","UserList","UserRole","UserShow","ApplicationController","Controller","AuthorizeController","ChangeController","togglePassword","password","getAttribute","setAttribute","toggle","toggleConfirmPassword","controller","rollbackAttributes","ShowController","DeleteController","providerId","backgroundReload","destroyRecord","setTimeout","EditController","DoisController","destroyAction","repositoryId","setEvent","stateChange","changedAttributes","nameIdentifier","nameType","contributor","date","dateType","dateInformation","identifier","relatedIdentifier","relatedMetadataScheme","geoLocation","point","geoLocationPoint","pointLongitude","pointLatitude","box","geoLocationBox","westBoundLongitude","eastBoundLongitude","southBoundLatitude","northBoundLatitude","polygon","geoLocationPolygon","isArray","geoLocationPlace","alternateIdentifier","size","fundingReference","funderName","funderIdentifier","funderIdentifierType","awardNumber","awardTitle","titles","ModifyController","TransferController","countryList","searchCountryAction","countries","country","selectCountryAction","IndexController","sessionAuthenticated","_loadCurrentUser","PasswordController","doSubmit","user","cancel","PrefixesController","ProviderPrefixesController","ProvidersController","code","provinceListCanada","provinceListChina","stateListAustralia","NewController","organizationTypeList","memberTypeList","focusAreaList","nonProfitStatusList","showStateSearch","consortia","searchState","searchOrganizationType","organizationTypes","organizationType","selectOrganizationType","searchMemberType","memberTypes","memberType","selectMemberType","features","isEnabled","searchFocusArea","focusAreas","focusArea","selectFocusArea","searchNonProfitStatus","nonProfitStatuses","nonProfitStatus","selectNonProfitStatus","searchConsortium","selectConsortium","consortium","selectBillingCountry","billingCountry","selectBillingState","billingState","didSelectFiles","readAsDataURL","m","roleName","email","activateCountryField","searchContact","filteredContacts","contacts","displayName","selectVotingContact","votingContact","selectServiceContact","serviceContact","selectSecondaryServiceContact","secondaryServiceContact","selectTechnicalContact","technicalContact","selectSecondaryTechnicalContact","secondaryTechnicalContact","selectBillingContact","billingContact","selectSecondaryBillingContact","secondaryBillingContact","_arr","isEqual","msg","danger","log","isCountryFieldActive","prefixes","searchPrefix","prefixes_service","get_prefixes","SHOW_N_PREFIXES","values","Error","searchPrefixAction","selectPrefixAction","providerPrefix","softwareList","clientTypeList","clientType","find","searchClientTypeAction","clientTypes","selectClientTypeAction","searchSoftwareAction","softwares","software","selectSoftwareAction","addLanguageAction","addCertificateAction","addRepositoryTypeAction","domains","assignedPrefix","firstObject","activateSoftwareField","SettingsController","RepositoriesController","togglePasswordAction","toggleConfirmPasswordAction","warning","componentName","UploadController","TransferRepositoryController","RepositoryPrefixesController","ResetController","sendLink","identification","SignInController","CDN_URL","showGlobus","globus","reasonUtil","UsersController","time","hhmmss","hour","minute","second","number","EUR","currency","minimumFractionDigits","maximumFractionDigits","USD","analyticsDashboardScriptUrl","ANALYTICS_URL","buildHelper","appVersion","_","hash","version","APP","versionOnly","hideSha","shaOnly","hideVersion","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","helper","cdnUrl","labelList","contactFormErrors","_ref","validations","mapBy","attribute","contentNegotiationUrl","mimeType","incr","parseInt","doiFormErrors","errorAttributes","mode","concat","contributors","alternateIdentifiers","relatedIdentifiers","fundingReferences","dates","geoLocations","rightsList","relatedItems","relatedItem","formatContact","formatCreator","limit","showOnly","formatLanguage","formatMetadata","container","published","_string","startCase","formatNumbers","counter","toFixed","entities","Entities","HtmlEntities","AllHtmlEntities","formatText","decode","sanitizedText","SanitizeHtml","allowedTags","out","checkForTex","words","len","homeUrl","HOME_URL","leftSide","rightSide","links","LINKS","orcidURL","ORCID_URL","pageTitle","pluralize","PrefixesAvailable","Helper","compute","provider_id","available","providerLabelList","confirmSymbol","globusUuid","rorId","systemEmail","organizationLabelList","providerFormErrors","randomNumber","floor","random","alternateName","repositoryFormErrors","searchURL","SEARCH_URL","settingsRoute","singularize","siteTitle","twitterUrl","twitter","initialize","initializerFactory","register","ContainerDebugAdapter","Inflector","inflector","setupContainer","ResponsiveInitializer","registry","rootURL","baseURL","Configuration","load","Adaptive","Cookie","LocalStorage","setupSession","setupSessionRestoration","Config","registerLibrary","after","Ember","Mixin","create","Affiliation","defaultValue","Fragment","presence","disabled","AlternateIdentifier","allowBlank","ContactFragment","confirmDelete","in","belongsTo","Model","_descriptor6","_descriptor7","_descriptor8","_descriptor9","_descriptor10","roleNameString","upperFirst","lowerCase","Contributor","fragmentArray","orcid","Creator","uncountable","Description","details","confirmDoi","on","dependentKeys","require_tld","onOrAfter","onOrBefore","precision","errorFormat","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_dec21","_dec22","_dec23","_dec24","_dec25","_dec26","_dec27","_dec28","_dec29","_dec30","_dec31","_dec32","_dec33","_dec34","_dec35","_dec36","_dec37","_dec38","_dec39","_dec40","_dec41","_dec42","_dec43","_dec44","_dec45","_dec46","_dec47","reads","_dec48","_dec49","_dec50","_descriptor11","_descriptor12","_descriptor13","_descriptor14","_descriptor15","_descriptor16","_descriptor17","_descriptor18","_descriptor19","_descriptor20","_descriptor21","_descriptor22","_descriptor23","_descriptor24","_descriptor25","_descriptor26","_descriptor27","_descriptor28","_descriptor29","_descriptor30","_descriptor31","_descriptor32","_descriptor33","_descriptor34","_descriptor35","_descriptor36","_descriptor37","_descriptor38","_descriptor39","_descriptor40","_descriptor41","_descriptor42","_descriptor43","_descriptor44","_descriptor45","_descriptor46","HANDLE_SERVER","schemaVersionString","schemaVersion","descriptions","maxMintFutureOffset","MAX_MINT_FUTURE_OFFSET","awardUri","FundingReference","allowString","gte","lte","ignoreBlank","GeoLocationBox","GeoLocationPoint","GeoLocation","Issn","NameIdentifier","hasMany","meta","createdAt","target","property","descriptor","context","defineProperty","decorators","desc","reverse","decorator","min","twitterHandle","groupEmail","passwordInput","validatePwdInputs","confirmPasswordInput","website","salesforceId","inverse","hasRequiredContacts","formattedBillingInformation","billingInformation","addressFormatter","road","address","city","postcode","postCode","countryCode","output","Publisher","RelatedIdentifier","RelatedItemContributor","RelatedItemCreator","relatedItemIdentifier","RelatedItemIdentifier","relatedItemContributors","validate","valid","validateSync","attributeDescription","RelatedItem","array","domainList","isDisciplinary","clearSubjects","ResourceType","rightsUri","protocols","Rights","subjectSchemeUri","Subject","Title","Types","totalDoiCount","totalResourceTypeCount","totalCitationCount","totalViewCount","totalDownloadCount","currentDoiCount","doiCount","Router","EmberRouter","path","ApplicationRoute","Route","setup","setLocale","isTokenAuthenticating","sessionInvalidated","AuthorizeRoute","FABRICA_URL","ChangeRoute","afterModel","can","cannot","IndexRoute","refreshModel","include","ShowRoute","contact_id","headData","queryParamsDidChange","DeleteRoute","modelFor","EditRoute","DoisRoute","year","source","facets","doi_id","endsWith","destroyOnClick","ModifyRoute","TransferRoute","admin","msg_zero","msg_min","InfoRoute","PasswordRoute","beforeModel","transition","requireAuthentication","PrefixesRoute","NewRoute","ProvidersRoute","region","isActive","logoUrl","redirect","consortiumId","ret","deleted","prefix_id","providerPrefixes","reload","setupController","controllerFor","issn","resetController","isExiting","RepositoriesRoute","repository_id","paramsFor","routeName","AnalyticsRoute","UploadRoute","filteredClientTypeList","object","refreshCurrentRoute","TransferRepositoryRoute","ResetRoute","prohibitAuthentication","close","SettingsRoute","SignInRoute","UsersRoute","parameters","user_id","all","hashA","hashB","JSONAPISerializer","keyForAttribute","normalizeFindRecordResponse","primaryModelClass","attributes","apply","modelNameFromPayloadKey","ApplicationSerializer","serialize","attrs","breason","bcontainer","contentUrl","metadataVersion","created","updated","citationCount","downloadCount","viewCount","keyForRelationship","JSONSerializer","normalizeArrayResponse","requestType","total","total_results","items","normalizeSingleResponse","underscore","eachAttribute","filterNull","ProviderPrefix","number_of_results","_normalizeRorRecord","names","preferredTypes","nameEntry","t","n","country_name","aliases","acronyms","CookiesService","CurrentUserService","Service","JWT_BLACKLISTED","cert","JWT_PUBLIC_KEY","nodeJsonWebToken","verify","algorithms","initUser","role_id","beta_tester","enable","Features","featureFlags","Media","MomentOverride","MomentService","moment","outputFormat","PrefixesService","MIN_PREFIXES_AVAILABLE","get_n_available","get_n_available_pp","prefix_list","tot","Session","BaseSessionService","handleAuthentication","getSpdxList","licenses","CookieStore","reference","isDeprecatedLicenseId","detailsUrl","referenceNumber","licenseId","isOsiApproved","isFsfLibre","Transform","deserialize","serialized","deserialized","BillingInformation","department","Country","FragmentArrayTransform","FragmentTransform","Wrapped","Xml","b64EncodeUnicode","btoa","encodeURIComponent","p1","String","fromCharCode","separator","today","dd","getDate","padStart","mm","getMonth","yyyy","mappingListVersion","originalUrl","dfgFields","dfgId","dfgLabel","fosId","fosLabel","findByIds","ids","Map","OECD_SCHEME","OECD_SCHEME_URI","fosFields","fosField","findByLabel","BillingState","BaseValidator","reopenClass","getDependentsFor","ContributorType","contributorTypes","DateFormat","edtf","EmailFormat","isEmail","IdentifierFormat","IssnFormat","isISSN","authorization","relationships","client","NumberRange","RelatedItemIdentifierFormat","UniqueDoi","content","UniqueEmail","UniqueProviderId","UniqueRepositoryId","UrlDomain","UrlFormat","defaultOptions","require_protocol","require_valid_protocol","allow_underscores","host_blacklist","allow_trailing_dot","allow_protocol_relative_urls","disallow_auth","UuidFormat","isUUID","validXml","parseString","define","FastBoot","metaName","rawConfig","exports","runningTests","require"],"sources":["vendor/ember-cli/app-prefix.js","bracco/abilities/contact.js","bracco/abilities/doi.js","bracco/abilities/index.js","bracco/abilities/message.js","bracco/abilities/organization.js","bracco/abilities/prefix.js","bracco/abilities/provider.js","bracco/abilities/repository.js","bracco/abilities/user.js","bracco/adapters/application.js","bracco/adapters/doi.js","bracco/adapters/funder.js","bracco/adapters/person.js","bracco/adapters/ror.js","bracco/app.js","bracco/authenticators/globus.js","bracco/authenticators/jwt.js","bracco/authenticators/oauth2.js","bracco/breakpoints.js","bracco/components/application-footer.js","bracco/components/application-header.js","bracco/components/bar-chart.js","bracco/components/cc-license.js","bracco/components/create-doi-button.js","bracco/components/creator-show.js","bracco/components/doi-affiliation.js","bracco/components/doi-alternate-identifier.js","bracco/components/doi-alternate-identifiers.js","bracco/components/doi-citation-body.js","bracco/components/doi-citation.js","bracco/components/doi-contributor.js","bracco/components/doi-contributors.js","bracco/components/doi-creator.js","bracco/components/doi-creators.js","bracco/components/doi-date.js","bracco/components/doi-dates.js","bracco/components/doi-description.js","bracco/components/doi-descriptions.js","bracco/components/doi-doi.js","bracco/components/doi-format.js","bracco/components/doi-formats.js","bracco/components/doi-funding-reference.js","bracco/components/doi-funding-references.js","bracco/components/doi-geo-location.js","bracco/components/doi-geo-locations.js","bracco/components/doi-health.js","bracco/components/doi-language.js","bracco/components/doi-list.js","bracco/components/doi-media.js","bracco/components/doi-metadata.js","bracco/components/doi-name-identifier.js","bracco/components/doi-publisher.js","bracco/components/doi-related-identifier.js","bracco/components/doi-related-identifiers.js","bracco/components/doi-related-item-contributor.js","bracco/components/doi-related-item-creator.js","bracco/components/doi-related-item-identifier.js","bracco/components/doi-related-item.js","bracco/components/doi-related-items.js","bracco/components/doi-rights-list.js","bracco/components/doi-rights.js","bracco/components/doi-size.js","bracco/components/doi-sizes.js","bracco/components/doi-state.js","bracco/components/doi-subject.js","bracco/components/doi-subjects.js","bracco/components/doi-summary.js","bracco/components/doi-title.js","bracco/components/doi-titles.js","bracco/components/doi-transfer.js","bracco/components/doi-types.js","bracco/components/doi-upload.js","bracco/components/donut-chart.js","bracco/components/export-basic-metadata.js","bracco/components/footer-status.js","bracco/components/head-content.js","bracco/components/index-header.js","bracco/components/index-info.js","bracco/components/index-show.js","bracco/components/landing-page.js","bracco/components/list-links.js","bracco/components/menu-links.js","bracco/components/metadata-dashboard-button.js","bracco/components/metrics-counter.js","bracco/components/model-search.js","bracco/components/model-validation-errors.js","bracco/components/month-chart.js","bracco/components/organization-list.js","bracco/components/page-numbers.js","bracco/components/person-base-component.js","bracco/components/prefix-available.js","bracco/components/prefix-new.js","bracco/components/provider-id.js","bracco/components/provider-info.js","bracco/components/provider-list.js","bracco/components/provider-ror.js","bracco/components/provider-settings.js","bracco/components/repository-certificate.js","bracco/components/repository-dois-transfer.js","bracco/components/repository-id.js","bracco/components/repository-info.js","bracco/components/repository-issn.js","bracco/components/repository-language.js","bracco/components/repository-list.js","bracco/components/repository-repository-type.js","bracco/components/repository-settings.js","bracco/components/repository-sidebar.js","bracco/components/repository-subjects.js","bracco/components/repository-transfer.js","bracco/components/show-provider-tabs.js","bracco/components/show-repository-tabs.js","bracco/components/state-label.js","bracco/components/subject-label.js","bracco/components/url-check.js","bracco/components/user-list.js","bracco/components/user-role.js","bracco/components/user-show.js","bracco/controllers/application.js","bracco/controllers/authorize.js","bracco/controllers/change.js","bracco/controllers/contacts/index.js","bracco/controllers/contacts/show.js","bracco/controllers/contacts/show/delete.js","bracco/controllers/contacts/show/edit.js","bracco/controllers/dois.js","bracco/controllers/dois/index.js","bracco/controllers/dois/show/delete.js","bracco/controllers/dois/show/edit.js","bracco/controllers/dois/show/modify.js","bracco/controllers/dois/show/transfer.js","bracco/controllers/edit.js","bracco/controllers/index.js","bracco/controllers/password.js","bracco/controllers/permissions.js","bracco/controllers/prefixes.js","bracco/controllers/prefixes/index.js","bracco/controllers/provider-prefixes.js","bracco/controllers/providers.js","bracco/controllers/providers/index.js","bracco/controllers/providers/new.js","bracco/controllers/providers/show.js","bracco/controllers/providers/show/change.js","bracco/controllers/providers/show/contacts/index.js","bracco/controllers/providers/show/contacts/new.js","bracco/controllers/providers/show/delete.js","bracco/controllers/providers/show/dois.js","bracco/controllers/providers/show/edit.js","bracco/controllers/providers/show/organizations/index.js","bracco/controllers/providers/show/organizations/new.js","bracco/controllers/providers/show/prefixes.js","bracco/controllers/providers/show/prefixes/index.js","bracco/controllers/providers/show/prefixes/new.js","bracco/controllers/providers/show/prefixes/show.js","bracco/controllers/providers/show/prefixes/show/delete.js","bracco/controllers/providers/show/prefixes/show/index.js","bracco/controllers/providers/show/repositories/index.js","bracco/controllers/providers/show/repositories/new.js","bracco/controllers/providers/show/settings.js","bracco/controllers/repositories.js","bracco/controllers/repositories/index.js","bracco/controllers/repositories/show.js","bracco/controllers/repositories/show/change.js","bracco/controllers/repositories/show/delete.js","bracco/controllers/repositories/show/dois.js","bracco/controllers/repositories/show/dois/index.js","bracco/controllers/repositories/show/dois/new.js","bracco/controllers/repositories/show/dois/upload.js","bracco/controllers/repositories/show/edit.js","bracco/controllers/repositories/show/prefixes.js","bracco/controllers/repositories/show/prefixes/index.js","bracco/controllers/repositories/show/prefixes/new.js","bracco/controllers/repositories/show/prefixes/show.js","bracco/controllers/repositories/show/prefixes/show/delete.js","bracco/controllers/repositories/show/prefixes/show/index.js","bracco/controllers/repositories/show/settings.js","bracco/controllers/repositories/show/transfer-repository.js","bracco/controllers/repositories/show/transfer.js","bracco/controllers/repository-prefixes.js","bracco/controllers/reset.js","bracco/controllers/settings.js","bracco/controllers/sign-in.js","bracco/controllers/users.js","bracco/controllers/users/index.js","bracco/controllers/users/show.js","bracco/controllers/users/show/dois.js","bracco/formats.js","bracco/helpers/analytics-dashboard-script-url.js","bracco/helpers/app-version.js","bracco/helpers/cdn-url.js","bracco/helpers/contact-form-errors.js","bracco/helpers/content-negotiation-url.js","bracco/helpers/current-year.js","bracco/helpers/doi-form-errors.js","bracco/helpers/format-contact.js","bracco/helpers/format-creator.js","bracco/helpers/format-date.js","bracco/helpers/format-language.js","bracco/helpers/format-list.js","bracco/helpers/format-message.js","bracco/helpers/format-metadata.js","bracco/helpers/format-number.js","bracco/helpers/format-numbers.js","bracco/helpers/format-relative.js","bracco/helpers/format-text.js","bracco/helpers/format-time.js","bracco/helpers/home-url.js","bracco/helpers/is-equal.js","bracco/helpers/links.js","bracco/helpers/orcid-url.js","bracco/helpers/page-title.js","bracco/helpers/pluralize.js","bracco/helpers/prefixes-available.js","bracco/helpers/provider-form-errors.js","bracco/helpers/random-number.js","bracco/helpers/repository-form-errors.js","bracco/helpers/search-url.js","bracco/helpers/settings-route.js","bracco/helpers/singularize.js","bracco/helpers/site-title.js","bracco/helpers/t.js","bracco/helpers/twitter-url.js","bracco/initializers/app-version.js","bracco/initializers/container-debug-adapter.js","bracco/initializers/custom-inflector-rules.js","bracco/initializers/ember-data.js","bracco/initializers/ember-responsive-breakpoints.js","bracco/initializers/ember-simple-auth.js","bracco/initializers/load-bootstrap-config.js","bracco/initializers/model-fragments.js","bracco/initializers/responsive.js","bracco/instance-initializers/ember-data.js","bracco/instance-initializers/ember-simple-auth.js","bracco/instance-initializers/head-browser.js","bracco/mixins/language-computed.js","bracco/models/affiliation.js","bracco/models/alternate-identifier.js","bracco/models/contact-fragment.js","bracco/models/contact.js","bracco/models/contributor.js","bracco/models/creator.js","bracco/models/custom-inflector-rules.js","bracco/models/date.js","bracco/models/description.js","bracco/models/doi.js","bracco/models/funder.js","bracco/models/funding-reference.js","bracco/models/geo-location-box.js","bracco/models/geo-location-point.js","bracco/models/geo-location.js","bracco/models/issn.js","bracco/models/name-identifier.js","bracco/models/person.js","bracco/models/prefix.js","bracco/models/provider-prefix.js","bracco/models/provider.js","bracco/models/publisher.js","bracco/models/related-identifier.js","bracco/models/related-item-contributor.js","bracco/models/related-item-creator.js","bracco/models/related-item-identifier.js","bracco/models/related-item.js","bracco/models/repository-prefix.js","bracco/models/repository.js","bracco/models/resource-type.js","bracco/models/rights.js","bracco/models/ror.js","bracco/models/subject.js","bracco/models/title.js","bracco/models/types.js","bracco/models/user.js","bracco/resolver.js","bracco/router.js","bracco/routes/application.js","bracco/routes/authorize.js","bracco/routes/change.js","bracco/routes/contacts/index.js","bracco/routes/contacts/show.js","bracco/routes/contacts/show/delete.js","bracco/routes/contacts/show/edit.js","bracco/routes/dois.js","bracco/routes/dois/index.js","bracco/routes/dois/show.js","bracco/routes/dois/show/delete.js","bracco/routes/dois/show/edit.js","bracco/routes/dois/show/modify.js","bracco/routes/dois/show/transfer.js","bracco/routes/edit.js","bracco/routes/index.js","bracco/routes/info.js","bracco/routes/password.js","bracco/routes/prefixes.js","bracco/routes/prefixes/index.js","bracco/routes/prefixes/new.js","bracco/routes/providers.js","bracco/routes/providers/index.js","bracco/routes/providers/new.js","bracco/routes/providers/show.js","bracco/routes/providers/show/change.js","bracco/routes/providers/show/contacts/index.js","bracco/routes/providers/show/contacts/new.js","bracco/routes/providers/show/delete.js","bracco/routes/providers/show/dois.js","bracco/routes/providers/show/edit.js","bracco/routes/providers/show/info.js","bracco/routes/providers/show/organizations/index.js","bracco/routes/providers/show/organizations/new.js","bracco/routes/providers/show/prefixes.js","bracco/routes/providers/show/prefixes/delete.js","bracco/routes/providers/show/prefixes/index.js","bracco/routes/providers/show/prefixes/new.js","bracco/routes/providers/show/prefixes/show.js","bracco/routes/providers/show/repositories/index.js","bracco/routes/providers/show/repositories/new.js","bracco/routes/repositories.js","bracco/routes/repositories/index.js","bracco/routes/repositories/show.js","bracco/routes/repositories/show/analytics.js","bracco/routes/repositories/show/change.js","bracco/routes/repositories/show/delete.js","bracco/routes/repositories/show/dois.js","bracco/routes/repositories/show/dois/index.js","bracco/routes/repositories/show/dois/new.js","bracco/routes/repositories/show/dois/upload.js","bracco/routes/repositories/show/edit.js","bracco/routes/repositories/show/info.js","bracco/routes/repositories/show/prefixes.js","bracco/routes/repositories/show/prefixes/delete.js","bracco/routes/repositories/show/prefixes/index.js","bracco/routes/repositories/show/prefixes/new.js","bracco/routes/repositories/show/prefixes/show.js","bracco/routes/repositories/show/transfer-repository.js","bracco/routes/repositories/show/transfer.js","bracco/routes/reset.js","bracco/routes/settings.js","bracco/routes/sign-in.js","bracco/routes/users.js","bracco/routes/users/index.js","bracco/routes/users/show.js","bracco/routes/users/show/dois.js","bracco/routes/users/show/info.js","bracco/serializers/application.js","bracco/serializers/doi.js","bracco/serializers/funder.js","bracco/serializers/geo-location.js","bracco/serializers/person.js","bracco/serializers/prefix.js","bracco/serializers/provider-prefix.js","bracco/serializers/provider.js","bracco/serializers/related-item.js","bracco/serializers/ror.js","bracco/services/cookies.js","bracco/services/current-user.js","bracco/services/features.js","bracco/services/intl.js","bracco/services/media.js","bracco/services/moment.js","bracco/services/prefixes.js","bracco/services/session.js","bracco/services/spdx.js","bracco/session-stores/application.js","bracco/spdx.js","bracco/templates/404.js","bracco/templates/about.js","bracco/templates/application.js","bracco/templates/authorize.js","bracco/templates/change.js","bracco/templates/contacts.js","bracco/templates/contacts/index.js","bracco/templates/contacts/show.js","bracco/templates/contacts/show/delete.js","bracco/templates/contacts/show/edit.js","bracco/templates/contacts/show/index.js","bracco/templates/dois.js","bracco/templates/dois/index.js","bracco/templates/dois/show.js","bracco/templates/dois/show/delete.js","bracco/templates/dois/show/edit.js","bracco/templates/dois/show/index.js","bracco/templates/dois/show/modify.js","bracco/templates/dois/show/transfer.js","bracco/templates/edit.js","bracco/templates/head.js","bracco/templates/index.js","bracco/templates/password.js","bracco/templates/prefixes.js","bracco/templates/prefixes/index.js","bracco/templates/prefixes/new.js","bracco/templates/providers.js","bracco/templates/providers/index.js","bracco/templates/providers/new.js","bracco/templates/providers/prefixes.js","bracco/templates/providers/show.js","bracco/templates/providers/show/change.js","bracco/templates/providers/show/contacts/index.js","bracco/templates/providers/show/contacts/new.js","bracco/templates/providers/show/delete.js","bracco/templates/providers/show/dois.js","bracco/templates/providers/show/edit.js","bracco/templates/providers/show/index.js","bracco/templates/providers/show/organizations/index.js","bracco/templates/providers/show/organizations/new.js","bracco/templates/providers/show/prefixes/index.js","bracco/templates/providers/show/prefixes/new.js","bracco/templates/providers/show/prefixes/show/delete.js","bracco/templates/providers/show/prefixes/show/index.js","bracco/templates/providers/show/repositories/index.js","bracco/templates/providers/show/repositories/new.js","bracco/templates/providers/show/settings.js","bracco/templates/repositories.js","bracco/templates/repositories/dois.js","bracco/templates/repositories/index.js","bracco/templates/repositories/prefixes.js","bracco/templates/repositories/show.js","bracco/templates/repositories/show/change.js","bracco/templates/repositories/show/delete.js","bracco/templates/repositories/show/dois/index.js","bracco/templates/repositories/show/dois/new.js","bracco/templates/repositories/show/dois/upload.js","bracco/templates/repositories/show/edit.js","bracco/templates/repositories/show/index.js","bracco/templates/repositories/show/prefixes/index.js","bracco/templates/repositories/show/prefixes/new.js","bracco/templates/repositories/show/prefixes/show/delete.js","bracco/templates/repositories/show/prefixes/show/index.js","bracco/templates/repositories/show/settings.js","bracco/templates/repositories/show/transfer-repository.js","bracco/templates/repositories/show/transfer.js","bracco/templates/reset.js","bracco/templates/settings.js","bracco/templates/sign-in.js","bracco/templates/users.js","bracco/templates/users/index.js","bracco/templates/users/show.js","bracco/templates/users/show/dois.js","bracco/templates/users/show/index.js","bracco/templates/users/show/settings.js","bracco/transforms/array.js","bracco/transforms/billing-information.js","bracco/transforms/country.js","bracco/transforms/fragment-array.js","bracco/transforms/fragment.js","bracco/transforms/wrapped.js","bracco/transforms/xml.js","bracco/utils/check-for-tex.js","bracco/utils/current-date.js","bracco/utils/dfg-mappings.js","bracco/utils/format-creators.js","bracco/utils/fos-mappings.js","bracco/utils/is-able-to.js","bracco/utils/is-empty.js","bracco/utils/reason-util.js","bracco/utils/validate-pwd-inputs.js","bracco/validators/billing-state.js","bracco/validators/contributor-type.js","bracco/validators/date-format.js","bracco/validators/email-format.js","bracco/validators/identifier-format.js","bracco/validators/issn-format.js","bracco/validators/metadata.js","bracco/validators/name-identifier.js","bracco/validators/number-range.js","bracco/validators/related-item-identifier-format.js","bracco/validators/repository-id.js","bracco/validators/resource-type.js","bracco/validators/unique-doi.js","bracco/validators/unique-email.js","bracco/validators/unique-provider-id.js","bracco/validators/unique-repository-id.js","bracco/validators/url-domain.js","bracco/validators/url-format.js","bracco/validators/uuid-format.js","bracco/validators/valid-xml.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["'use strict';\n\n\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { Ability } from 'ember-can';\nimport isAbleTo from '../utils/is-able-to';\n\n@classic\nexport default class Contact extends Ability {\n  @service\n  currentUser;\n\n  // Returns the total nuymber of contacts owned by the given contact's provider.\n  // We need this because the relationships are async so we need to resolve a promise.\n  async count_provider_contacts(this) {\n    var x =  await this.get('model.provider.contacts');\n    var n = x.length\n    return n;\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id}',\n    'model.roleName',\n    'model.provider.{id,memberType,consortium.id,contacts}'\n  )\n  get canDelete() {\n    if (\n      (this.get('model.roleName') && this.get('model.roleName').length > 0) ||\n      (this.get('model.provider.contacts') &&\n        this.count_provider_contacts(this) == 1)\n    ) {\n      return false;\n    } else {\n      switch (this.get('currentUser.role_id')) {\n        case 'staff_admin':\n          return true;\n        case 'consortium_admin':\n          return isAbleTo(this);\n        case 'provider_admin':\n          return (\n            this.get('currentUser.provider_id') ===\n            this.get('model.provider.id')\n          );\n        default:\n          return false;\n      }\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id}',\n    'model.provider.{id,memberType,consortium.id}'\n  )\n  get canCreate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return isAbleTo(this);\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id,client_id}',\n    'model.{id,provider.id,provider.memberType,provider.consortium.id}'\n  )\n  get canUpdate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return isAbleTo(this);\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id,client_id}',\n    'model.{id,provider.id,provider.consortium.id,provider.memberType}'\n  )\n  get canRead() {\n    this.get('currentUser.role_id');\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return isAbleTo(this);\n      case 'provider_admin':\n        return (\n          // 'this.get('model.provider. ...') === undefined' -  Happens only on contact deletion \n          //  as the result of destroyRecord which destroys the contact/provider relationship.\n          this.get('model.provider.id') === undefined ? \n            true : \n            this.get('currentUser.provider_id') === this.get('model.provider.id') \n        );\n      default:\n        return false;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { Ability } from 'ember-can';\n\n@classic\nexport default class Doi extends Ability {\n  @service\n  currentUser;\n\n  @computed('currentUser.role_id')\n  get canViewHealth() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n      case 'consortium_admin':\n      case 'provider_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.role_id')\n  get canViewState() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n      case 'consortium_admin':\n      case 'provider_admin':\n      case 'client_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.role_id')\n  get canSource() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id}',\n    'model.repository.{id,provider.id,provider.consortium.id}',\n    'repository.provider.{id,consortium.id}',\n    'model.query.client-id'\n  )\n  get canTransfer() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n            this.get('model.repository.provider.consortium.id') ||\n          this.get('currentUser.provider_id') ===\n            this.get('repository.provider.consortium.id')\n        );\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n            this.get('model.repository.provider.id') ||\n          this.get('currentUser.provider_id') ===\n            this.get('repository.provider.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'repository.{id,provider.id}')\n  get canMove() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n      case 'consortium_admin':\n      case 'provider_admin':\n        return true; // this.get('currentUser.provider_id') === this.get('repository.provider.id');\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,client_id}', 'model.{id,repository.id}')\n  get canUpdate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n      case 'consortium_admin':\n      case 'provider_admin':\n        return true;\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') ===\n          this.get('model.repository.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,client_id}', 'model.{id,query.client-id}')\n  get canUpload() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') === this.get('model.query.client-id') ||\n          ((this.get('model.id') ? true : false))\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,client_id}',\n    'model.{id,query.client-id,repository.id}'\n  )\n  get canCreate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') ===\n            this.get('model.query.client-id') ||\n          ((this.get('model.id') || this.get('model.repository.id') ? true : false))\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,client_id}', 'model.repository.id')\n  get canDelete() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') ===\n          this.get('model.repository.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,client_id}', 'model.repository.id')\n  get canModify() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') ===\n          this.get('model.repository.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,client_id}', 'model.repository.id')\n  get canEdit() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') ===\n          this.get('model.repository.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,client_id}', 'model.repository.id')\n  get canForm() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') === 'demo.datacite' &&\n          this.get('currentUser.client_id') ===\n            this.get('model.repository.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id,client_id}',\n    'model.{repository.id,repository.provider.id,repository.provider.consortium.id,state}'\n  )\n  get canDetail() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.repository.provider.consortium.id')\n        );\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.repository.provider.id')\n        );\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') ===\n          this.get('model.repository.id')\n        );\n      case 'user':\n        return this.get('model.state') === 'findable';\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id,client_id}',\n    'model.{repository.id,repository.provider.id,repository.provider.consortium.id,state}'\n  )\n  get canRead() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.repository.provider.consortium.id')\n        );\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.repository.provider.id')\n        );\n      case 'client_admin':\n        return (\n          this.get('currentUser.client_id') ===\n          this.get('model.repository.id')\n        );\n      case 'user':\n        return this.get('model.state') === 'findable';\n      default:\n        return this.get('model.state') === 'findable';\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { Ability } from 'ember-can';\n\n@classic\nexport default class Index extends Ability {\n  @service\n  currentUser;\n\n  @computed('currentUser.role_id')\n  get canWrite() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.role_id')\n  get canRead() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { Ability } from 'ember-can';\n\n@classic\nexport default class Message extends Ability {\n  @service\n  currentUser;\n\n  @computed('currentUser.{role_id,provider_id,client_id}', 'model.id')\n  get canRead() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return 'admin' === this.get('model.id');\n      case 'consortium_admin':\n        return this.get('currentUser.provider_id') === this.get('model.id');\n      case 'provider_admin':\n        return this.get('currentUser.provider_id') === this.get('model.id');\n      case 'client_admin':\n        return this.get('currentUser.client_id') === this.get('model.id');\n      default:\n        return false;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { Ability } from 'ember-can';\n\n@classic\nexport default class Organization extends Ability {\n  @service\n  currentUser;\n\n  @computed(\n    'currentUser.{role_id,provider_id}',\n    'model.organizations.query.consortium-id'\n  )\n  get canCreate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.organizations.query.consortium-id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'model.consortium.id')\n  get canDelete() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.consortium.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'model.{id,consortium.id}')\n  get canUpdate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.consortium.id')\n        );\n      case 'provider_admin':\n        return this.get('currentUser.provider_id') === this.get('model.id');\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'model.{id,consortium.id}')\n  get canRead() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.consortium.id')\n        );\n      case 'provider_admin':\n        return this.get('currentUser.provider_id') === this.get('model.id');\n      default:\n        return false;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { Ability } from 'ember-can';\n\n@classic\nexport default class Prefix extends Ability {\n  @service\n  currentUser;\n\n  @computed('currentUser.role_id')\n  get canWrite() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n      case 'provider_admin':\n        return false;\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id,client_id}',\n    'model.{repositories,providers}'\n  )\n  get canUpdate() {\n    // let self = this;\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n      case 'provider_admin':\n        // return this.get('model.providers').any(function(provider, index, providers) {\n        //   return provider.get('id') === self.get('currentUser.provider_id');\n        // });\n        return false;\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id,client_id}',\n    'model.{repositories,providers}'\n  )\n  get canRead() {\n    let self = this;\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return true;\n      case 'provider_admin':\n        return true;\n      // return this.get('model.providers').any(function(provider, index, providers) {\n      //   return provider.get('id') === self.get('currentUser.provider_id');\n      // });\n      case 'client_admin':\n        return this.get('model.repositories').any(function (repository) {\n          return repository.get('id') === self.get('currentUser.client_id');\n        });\n      default:\n        return false;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { Ability } from 'ember-can';\n\n@classic\nexport default class Provider extends Ability {\n  @service\n  currentUser;\n\n  @computed('currentUser.role_id')\n  get canCreate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.role_id', 'model.{id,provider_id}')\n  get canEditSalesforceField() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'model.consortium.id')\n  get canDelete() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'model.{id,memberType,consortium.id}')\n  get canUpdate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') === this.get('model.id') ||\n          this.get('currentUser.provider_id') ===\n            this.get('model.consortium.id')\n        );\n      case 'provider_admin':\n        return this.get('currentUser.provider_id') === this.get('model.id');\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.role_id', 'model.{id,provider_id}')\n  get canToken() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'provider_admin':\n        return (\n          this.get('model.id') === 'globus' ||\n          this.get('model.id') === 'datacite'\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'model.{id,memberType,consortium.id}')\n  get canRead() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') === this.get('model.id') ||\n          this.get('currentUser.provider_id') ===\n            this.get('model.consortium.id')\n        );\n      case 'provider_admin':\n        return this.get('currentUser.provider_id') === this.get('model.id');\n      default:\n        return false;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { equal } from '@ember/object/computed';\nimport { Ability } from 'ember-can';\n\n@classic\nexport default class Repository extends Ability {\n  @service\n  currentUser;\n\n  @equal('currentUser.role_id', 'staff_admin')\n  canSource;\n\n  @computed(\n    'currentUser.{role_id,provider_id}',\n    'model.provider.{id,memberType,consortium.id}'\n  )\n  get canDelete() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.consortium.id')\n        );\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'model.provider.{id,consortium.id}')\n  get canCreate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.consortium.id')\n        );\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id,client_id}',\n    'model.{id,provider.id,provider.memberType,provider.consortium.id}'\n  )\n  get canUpdate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.consortium.id')\n        );\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.id')\n        );\n      case 'client_admin':\n        return this.get('currentUser.client_id') === this.get('model.id');\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.role_id', 'model.provider.id')\n  get canToken() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'provider_admin':\n        return (\n          this.get('model.provider.id') === 'globus' ||\n          this.get('model.provider.id') === 'datacite'\n        );\n      case 'client_admin':\n        return (\n          this.get('model.provider.id') === 'globus' ||\n          this.get('model.provider.id') === 'datacite'\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed(\n    'currentUser.{role_id,provider_id,client_id}',\n    'model.{id,provider.id,provider.consortium.id}'\n  )\n  get canRead() {\n    this.get('currentUser.role_id');\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.consortium.id')\n        );\n      case 'provider_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.id')\n        );\n      case 'client_admin':\n        return this.get('currentUser.client_id') === this.get('model.id');\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.{role_id,provider_id}', 'model.provider.{id,consortium.id}')\n  get canTransfer() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n        return (\n          this.get('currentUser.provider_id') ===\n          this.get('model.provider.consortium.id')\n        );\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.role_id')\n  get canMove() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      default:\n        return false;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { Ability } from 'ember-can';\n\n@classic\nexport default class User extends Ability {\n  @service\n  currentUser;\n\n  @computed('currentUser.{role_id,uid}', 'model.id')\n  get canUpdate() {\n    switch (this.get('currentUser.role_id')) {\n      case 'staff_admin':\n        return true;\n      case 'consortium_admin':\n      case 'provider_admin':\n      case 'client_admin':\n      case 'user':\n        return this.get('currentUser.uid') === this.get('model.id');\n      default:\n        return false;\n    }\n  }\n\n  @computed('currentUser.role_id')\n  get canRead() {\n    return true;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport JSONAPIAdapter from '@ember-data/adapter/json-api';\nimport ENV from 'bracco/config/environment';\nimport { isPresent } from '@ember/utils';\n\n@classic\nclass ApplicationAdapter extends JSONAPIAdapter {\n  @service\n  session;\n\n  host = ENV.API_URL;\n\n  @computed('session.data.authenticated.token')\n  get headers() {\n    const headers = {};\n    let { access_token } = this.get('session.data.authenticated');\n    if (isPresent(access_token)) {\n      headers.Authorization = `Bearer ${access_token}`;\n    }\n\n    return headers;\n  }\n\n  handleResponse(status, headers, payload) {\n    if ([422, 409, 500].includes(status)) {\n      return payload.errors[0];\n    }\n    return super.handleResponse(...arguments);\n  }\n}\n\nexport default ApplicationAdapter;\n","import classic from 'ember-classic-decorator';\nimport ApplicationAdapter from './application';\nimport ENV from 'bracco/config/environment';\nimport { isPresent } from '@ember/utils';\n\n@classic\nexport default class Doi extends ApplicationAdapter {\n  urlForFindRecord(id, modelName, snapshot) {\n    let baseUrl = this.buildURL(modelName, id, snapshot);\n    let query = '';\n\n    if (snapshot.adapterOptions !== undefined) {\n      query = this.buildQuery(snapshot.adapterOptions);\n    }\n    query = query ? '?' + query : '';\n\n    return baseUrl + query;\n  }\n\n  // For API requests from doi.save()/PATCH\n  urlForUpdateRecord(id, modelName, snapshot) {\n    let baseUrl = this.buildURL(modelName, id, snapshot);\n    let query = '';\n\n    query = '?' + 'affiliation=true&publisher=true';\n\n    return baseUrl + query;\n  }\n\n  // For API requests from doi.save()/POST\n  urlForCreateRecord(modelName, snapshot) {\n    let baseUrl = super.urlForCreateRecord(...arguments);\n    let query = '?' + 'affiliation=true&publisher=true';\n\n    return baseUrl + query;\n  }\n\n  pathForType() {\n    return 'dois';\n  }\n\n  buildQuery(options) {\n    const allowedKeys = ['affiliation', 'publisher'];\n\n    if (typeof options !== 'object') {\n      return '';\n    }\n\n    const queryParts = [];\n\n    for (const [key, value] of Object.entries(options)) {\n      if (allowedKeys.includes(key) && value) {\n        queryParts.push(`${key}=${value}`);\n      }\n    }\n    return queryParts.join('&');\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport JSONAPIAdapter from '@ember-data/adapter/json-api';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class Funder extends JSONAPIAdapter {\n  host = ENV.CROSSREF_API_URL;\n\n  init() {\n    super.init(...arguments);\n\n    this.set('headers', {\n      Accept: 'application/json'\n    });\n  }\n\n  authorize() {}\n\n  pathForType() {\n    return 'funders';\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport JSONAPIAdapter from '@ember-data/adapter/json-api';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class Person extends JSONAPIAdapter {\n  host = ENV.ORCID_API_URL;\n\n  init() {\n    super.init(...arguments);\n\n    this.set('headers', {\n      'Content-Type': 'application/json',\n      Accept: 'application/json'\n    });\n  }\n\n  pathForType() {\n    return 'v2.1';\n  }\n\n  authorize() {}\n}\n","import classic from 'ember-classic-decorator';\nimport JSONAPIAdapter from '@ember-data/adapter/json-api';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class Ror extends JSONAPIAdapter {\n  host = ENV.ROR_API_URL;\n\n  init() {\n    super.init(...arguments);\n\n    this.set('headers', {\n      'Content-Type': 'application/json',\n      Accept: 'application/json'\n    });\n  }\n\n  pathForType() {\n    return 'organizations';\n  }\n\n  authorize() {}\n}\n","import Application from '@ember/application';\nimport './models/custom-inflector-rules';\nimport Resolver from './resolver';\nimport loadInitializers from 'ember-load-initializers';\nimport config from './config/environment';\nimport * as Sentry from \"@sentry/ember\";\n\nSentry.init({});\n\nexport default class App extends Application {\n  modulePrefix = config.modulePrefix;\n  podModulePrefix = config.podModulePrefix;\n  Resolver = Resolver;\n}\n\nloadInitializers(App, config.modulePrefix);\n","import classic from 'ember-classic-decorator';\nimport Base from 'ember-simple-auth/authenticators/base';\nimport { Promise } from 'rsvp';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\nimport { isEmpty } from '@ember/utils';\n\n@classic\nexport default class Globus extends Base {\n  serverTokenEndpoint = ENV.API_URL + '/oidc-token';\n\n  restore(data) {\n    return this._validate(data) ? Promise.resolve(data) : Promise.reject();\n  }\n\n  authenticate(jwt) {\n    return new Promise((resolve, reject) => {\n      const serverTokenEndpoint = this.serverTokenEndpoint;\n\n      fetch(serverTokenEndpoint, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/x-www-form-urlencoded'\n        },\n        body: 'token=' + jwt\n      })\n        .then((response) => {\n          response.text().then((text) => {\n            try {\n              let json = JSON.parse(text);\n              if (!response.ok) {\n                response.responseJSON = json;\n                reject(response);\n              } else {\n                resolve(json);\n              }\n            } catch (SyntaxError) {\n              response.responseText = text;\n              reject(response);\n            }\n          });\n        })\n        .catch(reject);\n    });\n  }\n\n  invalidate() {\n    return Promise.resolve();\n  }\n\n  _validate(data) {\n    return !isEmpty(data.access_token);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { Promise } from 'rsvp';\nimport OAuth2PasswordGrantAuthenticator from 'ember-simple-auth/authenticators/oauth2-password-grant';\n\n@classic\nexport default class Jwt extends OAuth2PasswordGrantAuthenticator {\n  authenticate(jwt) {\n    return new Promise((resolve) => {\n      resolve({\n        access_token: jwt,\n        token_type: 'bearer'\n      });\n    });\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport OAuth2PasswordGrantAuthenticator from 'ember-simple-auth/authenticators/oauth2-password-grant';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class Oauth2 extends OAuth2PasswordGrantAuthenticator {\n  serverTokenEndpoint = ENV.API_URL + '/token';\n  sendClientIdAsQueryParam = true;\n}\n","export default {\n  xs: '(min-width: 0)',\n  sm: '(min-width: 576px)',\n  md: '(min-width: 768px)',\n  lg: '(min-width: 992px)',\n  xl: '(min-width: 1200px)'\n};\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<footer class='row footer'>\\n  <div class=\\\"container-fluid\\\">\\n    <div class='col-md-3 col-sm-4 footer-column'>\\n      <h2 class=\\\"footer-heading\\\">About Us</h2>\\n      <ListLinks @links={{this.data.about_links}} />\\n    </div>\\n    <div class='col-md-3 col-sm-4 footer-column'>\\n      <h2 class=\\\"footer-heading\\\">Work With Us</h2>\\n      <ListLinks @links={{this.data.work_with_us_links}} />\\n    </div>\\n    <div class='col-md-3 col-sm-4 footer-column'>\\n      <h2 class=\\\"footer-heading\\\">Membership</h2>\\n      <ListLinks @links={{this.data.membership_links}} />\\n      <h2 class=\\\"footer-heading\\\">Resources</h2>\\n      <ListLinks @links={{this.data.resources_links}} />\\n    </div>\\n    <div class='col-md-3 footer-column'>\\n      <h2 class=\\\"share footer-heading\\\">Contact us</h2>\\n      <a href={{get (links) 'MAIL_URL' }} class=\\\"share\\\" aria-label=\\\"Email DataCite\\\">\\n        <i class=\\\"fas fa-envelope\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <a href={{get (links) 'BLOG_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite blog\\\">\\n        <i class=\\\"fas fa-blog\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <a href={{get (links) 'GITHUB_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on GitHub\\\">\\n        <i class=\\\"fab fa-github\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <a href={{get (links) 'TWITTER_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on X\\\">\\n        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"1em\\\" viewBox=\\\"0 0 512 512\\\" style=\\\"fill: currentColor;position: relative;bottom: -3;\\\" aria-hidden=\\\"true\\\" focusable=\\\"false\\\">{{!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --}}<path d=\\\"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z\\\"></path></svg>\\n      </a>\\n      <a href={{get (links) 'MASTODON_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on Mastodon\\\">\\n        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"1em\\\" viewBox=\\\"0 0 448 512\\\" style=\\\"fill: currentColor;position: relative;bottom: -3;\\\" aria-hidden=\\\"true\\\" focusable=\\\"false\\\">{{!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --}}<path d=\\\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\\\"/></svg>\\n      </a>\\n      <a href={{get (links) 'LINKEDIN_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on LinkedIn\\\">\\n        <i class=\\\"fab fa-linkedin\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <a href={{get (links) 'YOUTUBE_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on YouTube\\\">\\n        <i class=\\\"fab fa-youtube\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <ListLinks @links={{this.data.contact_links}} @class=\\\"share\\\" />\\n      <FooterStatus />\\n    </div>\\n  </div>\\n</footer>\\n\", {\"contents\":\"<footer class='row footer'>\\n  <div class=\\\"container-fluid\\\">\\n    <div class='col-md-3 col-sm-4 footer-column'>\\n      <h2 class=\\\"footer-heading\\\">About Us</h2>\\n      <ListLinks @links={{this.data.about_links}} />\\n    </div>\\n    <div class='col-md-3 col-sm-4 footer-column'>\\n      <h2 class=\\\"footer-heading\\\">Work With Us</h2>\\n      <ListLinks @links={{this.data.work_with_us_links}} />\\n    </div>\\n    <div class='col-md-3 col-sm-4 footer-column'>\\n      <h2 class=\\\"footer-heading\\\">Membership</h2>\\n      <ListLinks @links={{this.data.membership_links}} />\\n      <h2 class=\\\"footer-heading\\\">Resources</h2>\\n      <ListLinks @links={{this.data.resources_links}} />\\n    </div>\\n    <div class='col-md-3 footer-column'>\\n      <h2 class=\\\"share footer-heading\\\">Contact us</h2>\\n      <a href={{get (links) 'MAIL_URL' }} class=\\\"share\\\" aria-label=\\\"Email DataCite\\\">\\n        <i class=\\\"fas fa-envelope\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <a href={{get (links) 'BLOG_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite blog\\\">\\n        <i class=\\\"fas fa-blog\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <a href={{get (links) 'GITHUB_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on GitHub\\\">\\n        <i class=\\\"fab fa-github\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <a href={{get (links) 'TWITTER_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on X\\\">\\n        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"1em\\\" viewBox=\\\"0 0 512 512\\\" style=\\\"fill: currentColor;position: relative;bottom: -3;\\\" aria-hidden=\\\"true\\\" focusable=\\\"false\\\">{{!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --}}<path d=\\\"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z\\\"></path></svg>\\n      </a>\\n      <a href={{get (links) 'MASTODON_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on Mastodon\\\">\\n        <svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"1em\\\" viewBox=\\\"0 0 448 512\\\" style=\\\"fill: currentColor;position: relative;bottom: -3;\\\" aria-hidden=\\\"true\\\" focusable=\\\"false\\\">{{!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --}}<path d=\\\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\\\"/></svg>\\n      </a>\\n      <a href={{get (links) 'LINKEDIN_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on LinkedIn\\\">\\n        <i class=\\\"fab fa-linkedin\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <a href={{get (links) 'YOUTUBE_URL'}} class=\\\"share\\\" aria-label=\\\"DataCite on YouTube\\\">\\n        <i class=\\\"fab fa-youtube\\\" aria-hidden=\\\"true\\\"></i>\\n      </a>\\n      <ListLinks @links={{this.data.contact_links}} @class=\\\"share\\\" />\\n      <FooterStatus />\\n    </div>\\n  </div>\\n</footer>\\n\",\"moduleName\":\"bracco/components/application-footer.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/application-footer.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport Component from '@ember/component';\nimport ENV from 'bracco/config/environment';\n\nconst data = {\n  about_links: [\n    {\n      name: ENV.FOOTER_LINKS.WHAT_WE_DO.NAME,\n      url: ENV.FOOTER_LINKS.WHAT_WE_DO.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.GOVERNANCE.NAME,\n      url: ENV.FOOTER_LINKS.GOVERNANCE.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.STEERING_AND_WORKING_GROUPS.NAME,\n      url: ENV.FOOTER_LINKS.STEERING_AND_WORKING_GROUPS.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.TEAM.NAME,\n      url: ENV.FOOTER_LINKS.TEAM.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.JOB_OPPORTUNITIES.NAME,\n      url: ENV.FOOTER_LINKS.JOB_OPPORTUNITIES.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.PROJECTS.NAME,\n      url: ENV.FOOTER_LINKS.PROJECTS.URL\n    }\n  ],\n  work_with_us_links: [\n    {\n      name: ENV.FOOTER_LINKS.CREATE_DOIS.NAME,\n      url: ENV.FOOTER_LINKS.CREATE_DOIS.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.INTEGRATE_WORKFLOWS.NAME,\n      url: ENV.FOOTER_LINKS.INTEGRATE_WORKFLOWS.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.ENABLE_DISCOVERY.NAME,\n      url: ENV.FOOTER_LINKS.ENABLE_DISCOVERY.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.PROMOTE_REUSE.NAME,\n      url: ENV.FOOTER_LINKS.PROMOTE_REUSE.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.STRATEGIC_INITIATIVES.NAME,\n      url: ENV.FOOTER_LINKS.STRATEGIC_INITIATIVES.URL\n    }\n  ],\n  membership_links: [\n    {\n      name: ENV.FOOTER_LINKS.BECOME_A_MEMBER.NAME,\n      url: ENV.FOOTER_LINKS.BECOME_A_MEMBER.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.DATACITE_FEE_MODEL.NAME,\n      url: ENV.FOOTER_LINKS.DATACITE_FEE_MODEL.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.MEMBERSHIP_ENQUIRY.NAME,\n      url: ENV.FOOTER_LINKS.MEMBERSHIP_ENQUIRY.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.DATACITE_MEMBERS.NAME,\n      url: ENV.FOOTER_LINKS.DATACITE_MEMBERS.URL\n    }\n  ],\n  resources_links: [\n    {\n      name: ENV.FOOTER_LINKS.METADATA_SCHEMA.NAME,\n      url: ENV.FOOTER_LINKS.METADATA_SCHEMA.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.DATACITE_MEMBERS.NAME,\n      url: ENV.FOOTER_LINKS.DATACITE_MEMBERS.URL\n    }\n  ],\n  contact_links: [\n    {\n      name: ENV.FOOTER_LINKS.PRIVACY_POLICY.NAME,\n      url: ENV.FOOTER_LINKS.PRIVACY_POLICY.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.TERMS_AND_CONDITIONS.NAME,\n      url: ENV.FOOTER_LINKS.TERMS_AND_CONDITIONS.URL\n    },\n    {\n      name: ENV.FOOTER_LINKS.IMPRINT.NAME,\n      url: ENV.FOOTER_LINKS.IMPRINT.URL\n    }\n  ]\n};\n\n@classic\nexport default class ApplicationFooter extends Component {\n  data = data;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (this.default) {\n      this.set('type', null);\n      this.set('title', htmlSafe(ENV.SITE_TITLE));\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<BsNavbar\\n  class=\\\"navbar-default\\\"\\n  @type={{this.type}}\\n  @fluid={{true}}\\n  @collapsed={{this.collapsed}}\\n  @onCollapse={{action (mut this.collapsed) true}}\\n  @onExpand={{action (mut this.collapsed) false}} as |navbar|\\n>\\n  <div class=\\\"navbar-header\\\">\\n    <navbar.toggle class=\\\"navbar-toggle\\\" aria-label=\\\"Toggle navigation menu\\\">\\n      <span class=\\\"navbar-toggler-icon\\\" aria-hidden=\\\"true\\\"></span>\\n    </navbar.toggle>\\n    {{#if this.session.isAuthenticated}}\\n      <a href=\\\"/\\\" class=\\\"navbar-brand title-inverted\\\" aria-label=\\\"DataCite Fabrica home\\\">\\n        {{#if this.showLogo}}<img src=\\\"/assets/images/fabrica-logo.svg\\\" height=\\\"50\\\" class=\\\"fabrica-logo\\\" alt=\\\"\\\" aria-hidden=\\\"true\\\"/>\\n        {{else}}{{this.title}}\\n        {{/if}}\\n      </a>\\n    {{else}}\\n      <a href=\\\"/\\\" class=\\\"navbar-brand title-inverted\\\" aria-label=\\\"DataCite Fabrica home\\\">\\n        {{#if this.showLogo}}<img src=\\\"/assets/images/fabrica-logo.svg\\\" height=\\\"50\\\" class=\\\"fabrica-logo\\\" alt=\\\"\\\" aria-hidden=\\\"true\\\"/>\\n        {{else}}{{this.title}}\\n        {{/if}}\\n      </a>\\n    {{/if}}\\n  </div>\\n  <navbar.content>\\n    <navbar.nav class=\\\"navbar-right {{this.navBgColor}}\\\" as |nav|>\\n      <nav.item>\\n        <LinkTo @route=\\\"about\\\" id=\\\"about\\\" class=\\\"{{this.navButtonColor}}\\\">\\n          About\\n        </LinkTo>\\n      </nav.item>\\n      <nav.item>\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"SUPPORT_URL\\\" }} class=\\\"{{this.navButtonColor}}\\\">\\n          Support\\n        </a>\\n      </nav.item>\\n      {{#if this.user}}\\n        {{#if this.session.isAuthenticated}}\\n          <nav.dropdown as |dd|>\\n            <dd.toggle id=\\\"account_menu_link\\\" class=\\\"{{this.navButtonColor}}\\\">\\n              {{#if this.currentUser.isUser}}\\n                {{this.currentUser.name}}\\n              {{else}}\\n                {{uppercase this.currentUser.uid}}\\n              {{/if}}\\n              <span class=\\\"caret\\\" aria-hidden=\\\"true\\\"></span>\\n            </dd.toggle>\\n            <dd.menu class=\\\"navbar-menu\\\" as |menu|>\\n              <menu.item>\\n                <span  class=\\\"dropdown-header\\\">\\n                  Role:\\n                  {{this.currentUser.roleName}}\\n                </span>\\n              </menu.item>\\n              <menu.item>\\n                {{#if (is-empty this.settings.model)}}\\n                  <LinkTo @route=\\\"{{settings-route this.settings.route}}\\\">\\n                    <i class=\\\"fas fa-cog\\\" aria-hidden=\\\"true\\\"></i>\\n                      Settings\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route=\\\"{{settings-route this.settings.route}}\\\" @model=\\\"{{this.settings.model}}\\\">\\n                    <i class=\\\"fas fa-cog\\\" aria-hidden=\\\"true\\\"></i>\\n                      Settings\\n                  </LinkTo>\\n                {{/if}}\\n              </menu.item>\\n              <menu.divider />\\n              <menu.item>\\n                <a {{action 'invalidateSession'}}>\\n                  <i class=\\\"fas fa-sign-out-alt\\\" aria-hidden=\\\"true\\\"></i>\\n                  Sign out\\n                </a>\\n              </menu.item>\\n            </dd.menu>\\n          </nav.dropdown>\\n        {{else}}\\n          <nav.item>\\n            <LinkTo\\n              @route=\\\"sign-in\\\"\\n              id=\\\"sign-in\\\"\\n              class=\\\"btn btn-sm btn-neutral\\\"\\n            >\\n              <i class=\\\"fas fa-sign-in-alt\\\" aria-hidden=\\\"true\\\"></i>\\n              {{t 'user.signin'}}\\n            </LinkTo>\\n          </nav.item>\\n        {{/if}}\\n      {{/if}}\\n    </navbar.nav>\\n  </navbar.content>\\n</BsNavbar>\\n\", {\"contents\":\"<BsNavbar\\n  class=\\\"navbar-default\\\"\\n  @type={{this.type}}\\n  @fluid={{true}}\\n  @collapsed={{this.collapsed}}\\n  @onCollapse={{action (mut this.collapsed) true}}\\n  @onExpand={{action (mut this.collapsed) false}} as |navbar|\\n>\\n  <div class=\\\"navbar-header\\\">\\n    <navbar.toggle class=\\\"navbar-toggle\\\" aria-label=\\\"Toggle navigation menu\\\">\\n      <span class=\\\"navbar-toggler-icon\\\" aria-hidden=\\\"true\\\"></span>\\n    </navbar.toggle>\\n    {{#if this.session.isAuthenticated}}\\n      <a href=\\\"/\\\" class=\\\"navbar-brand title-inverted\\\" aria-label=\\\"DataCite Fabrica home\\\">\\n        {{#if this.showLogo}}<img src=\\\"/assets/images/fabrica-logo.svg\\\" height=\\\"50\\\" class=\\\"fabrica-logo\\\" alt=\\\"\\\" aria-hidden=\\\"true\\\"/>\\n        {{else}}{{this.title}}\\n        {{/if}}\\n      </a>\\n    {{else}}\\n      <a href=\\\"/\\\" class=\\\"navbar-brand title-inverted\\\" aria-label=\\\"DataCite Fabrica home\\\">\\n        {{#if this.showLogo}}<img src=\\\"/assets/images/fabrica-logo.svg\\\" height=\\\"50\\\" class=\\\"fabrica-logo\\\" alt=\\\"\\\" aria-hidden=\\\"true\\\"/>\\n        {{else}}{{this.title}}\\n        {{/if}}\\n      </a>\\n    {{/if}}\\n  </div>\\n  <navbar.content>\\n    <navbar.nav class=\\\"navbar-right {{this.navBgColor}}\\\" as |nav|>\\n      <nav.item>\\n        <LinkTo @route=\\\"about\\\" id=\\\"about\\\" class=\\\"{{this.navButtonColor}}\\\">\\n          About\\n        </LinkTo>\\n      </nav.item>\\n      <nav.item>\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"SUPPORT_URL\\\" }} class=\\\"{{this.navButtonColor}}\\\">\\n          Support\\n        </a>\\n      </nav.item>\\n      {{#if this.user}}\\n        {{#if this.session.isAuthenticated}}\\n          <nav.dropdown as |dd|>\\n            <dd.toggle id=\\\"account_menu_link\\\" class=\\\"{{this.navButtonColor}}\\\">\\n              {{#if this.currentUser.isUser}}\\n                {{this.currentUser.name}}\\n              {{else}}\\n                {{uppercase this.currentUser.uid}}\\n              {{/if}}\\n              <span class=\\\"caret\\\" aria-hidden=\\\"true\\\"></span>\\n            </dd.toggle>\\n            <dd.menu class=\\\"navbar-menu\\\" as |menu|>\\n              <menu.item>\\n                <span  class=\\\"dropdown-header\\\">\\n                  Role:\\n                  {{this.currentUser.roleName}}\\n                </span>\\n              </menu.item>\\n              <menu.item>\\n                {{#if (is-empty this.settings.model)}}\\n                  <LinkTo @route=\\\"{{settings-route this.settings.route}}\\\">\\n                    <i class=\\\"fas fa-cog\\\" aria-hidden=\\\"true\\\"></i>\\n                      Settings\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route=\\\"{{settings-route this.settings.route}}\\\" @model=\\\"{{this.settings.model}}\\\">\\n                    <i class=\\\"fas fa-cog\\\" aria-hidden=\\\"true\\\"></i>\\n                      Settings\\n                  </LinkTo>\\n                {{/if}}\\n              </menu.item>\\n              <menu.divider />\\n              <menu.item>\\n                <a {{action 'invalidateSession'}}>\\n                  <i class=\\\"fas fa-sign-out-alt\\\" aria-hidden=\\\"true\\\"></i>\\n                  Sign out\\n                </a>\\n              </menu.item>\\n            </dd.menu>\\n          </nav.dropdown>\\n        {{else}}\\n          <nav.item>\\n            <LinkTo\\n              @route=\\\"sign-in\\\"\\n              id=\\\"sign-in\\\"\\n              class=\\\"btn btn-sm btn-neutral\\\"\\n            >\\n              <i class=\\\"fas fa-sign-in-alt\\\" aria-hidden=\\\"true\\\"></i>\\n              {{t 'user.signin'}}\\n            </LinkTo>\\n          </nav.item>\\n        {{/if}}\\n      {{/if}}\\n    </navbar.nav>\\n  </navbar.content>\\n</BsNavbar>\\n\",\"moduleName\":\"bracco/components/application-header.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/application-header.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { typeOf } from '@ember/utils';\nimport { htmlSafe } from '@ember/template';\nimport Component from '@ember/component';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class ApplicationHeader extends Component {\n  @service\n  session;\n\n  @service\n  currentUser;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  default = false;\n  type = 'transparent';\n  title = null;\n  home = '/';\n  user = true;\n  showLogo = true;\n  navBgColor = '';\n  navButtonColor = '';\n\n  init(...args) {\n    super.init(...args);\n\n    this.data = this.data || {};\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (this.default) {\n      this.set('type', null);\n      this.set('title', htmlSafe(ENV.SITE_TITLE));\n    } else if (this['sign-in']) {\n      this.set('title', htmlSafe(ENV.SITE_TITLE));\n      this.set('user', false);\n    }\n\n    let home = this.currentUser.get('home');\n    if (typeOf(home) == 'object') {\n      this.set('home', { route: home.route, model: home.id });\n    } else if (home === 'password') {\n      this.set('home', null);\n    } else if (home) {\n      this.set('home', { href: home });\n    } else {\n      this.set('home', null);\n    }\n\n    let settings = this.currentUser.get('settings');\n    if (typeOf(settings) == 'object') {\n      this.set('settings', { route: settings.route, model: settings.id });\n    } else if (home === 'password') {\n      this.set('settings', null);\n    } else if (home) {\n      this.set('settings', { href: settings });\n    } else {\n      this.set('settings', null);\n    }\n\n    let route = this.router.currentRouteName;\n\n    if ((!this.session.isAuthenticated && route === 'index') || route === 'sign-in' || route === 'password' || route === 'reset' || route === '404') {\n      this.showLogo = false;\n    }\n\n    let role = this.currentUser.get('roleName');\n    if (role === 'Member') {\n      this.set('navBgColor', 'navbar-member');\n      this.set('navButtonColor', 'navbar-button-member');\n    } else if (role === 'Consortium') {\n      this.set('navBgColor', 'navbar-consortium');\n      this.set('navButtonColor', 'navbar-button-consortium');\n    }\n  }\n\n  @action\n  transitionNoAccess() {\n    this.router.transitionTo(this.home);\n  }\n\n  @action\n  invalidateSession() {\n    this.session.invalidate();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"panel panel-default\\\">\\n  <div class=\\\"panel-heading\\\">\\n    <h3 class=\\\"panel-title\\\" id=\\\"{{this.chartId}}-title\\\">\\n      {{pluralize 2 this.label without-count=true}}\\n      <span class=\\\"small pull-right\\\">by year</span>\\n    </h3>\\n  </div>\\n  <div class=\\\"panel-body panel-chart\\\">\\n    <h2 class=\\\"member graphs\\\">\\n      {{#if this.model}}\\n        <LinkTo @route={{this.link}} @model={{this.model.id}}>{{format-number this.count}}</LinkTo>\\n      {{else}}\\n        <LinkTo @route={{this.link}}>{{format-number this.count}}</LinkTo>\\n      {{/if}}\\n      {{#unless this.cumulative}}<span class=\\\"small\\\">in {{ this.currentYear }}</span>{{/unless}}\\n    </h2>\\n    <div class=\\\"graphs\\\" id={{this.chartId}}></div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"panel panel-default\\\">\\n  <div class=\\\"panel-heading\\\">\\n    <h3 class=\\\"panel-title\\\" id=\\\"{{this.chartId}}-title\\\">\\n      {{pluralize 2 this.label without-count=true}}\\n      <span class=\\\"small pull-right\\\">by year</span>\\n    </h3>\\n  </div>\\n  <div class=\\\"panel-body panel-chart\\\">\\n    <h2 class=\\\"member graphs\\\">\\n      {{#if this.model}}\\n        <LinkTo @route={{this.link}} @model={{this.model.id}}>{{format-number this.count}}</LinkTo>\\n      {{else}}\\n        <LinkTo @route={{this.link}}>{{format-number this.count}}</LinkTo>\\n      {{/if}}\\n      {{#unless this.cumulative}}<span class=\\\"small\\\">in {{ this.currentYear }}</span>{{/unless}}\\n    </h2>\\n    <div class=\\\"graphs\\\" id={{this.chartId}}></div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/bar-chart.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/bar-chart.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNameBindings, classNames, tagName } from '@ember-decorators/component';\nimport { action, computed } from '@ember/object';\nimport { schedule } from '@ember/runloop';\nimport Component from '@ember/component';\nimport { select } from 'd3-selection';\n// import { format } from \"d3-format\";\nimport { axisBottom } from 'd3-axis';\nimport { max } from 'd3-array';\nimport { timeYears } from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport { scaleTime, scaleLinear } from 'd3-scale';\nimport { A } from '@ember/array';\n\n@classic\n@tagName('div')\n@classNames('col-lg-3', 'col-md-4')\n@classNameBindings('offset:col-lg-offset-3')\nexport default class BarChart extends Component {\n  offset = false;\n  data = null;\n\n  @computed('data', 'summarize', 'currentYear')\n  get count() {\n    if (this.data) {\n      if (this.summarize) {\n        return A(this.data).reduce(function (a, b) {\n          return a + b.count;\n        }, 0);\n      } else {\n        let currentYear = A(this.data).findBy(\n          'id',\n          this.currentYear.toString()\n        );\n        if (currentYear) {\n          return currentYear.count;\n        } else {\n          return 0;\n        }\n      }\n    } else {\n      return 0;\n    }\n  }\n\n  label = 'Chart';\n\n  @computed('label')\n  get chartId() {\n    return 'chart-' + this.label.toLowerCase();\n  }\n\n  currentYear = new Date().getFullYear();\n  cumulative = true;\n  summarize = false;\n\n  init() {\n    super.init();\n\n    schedule('afterRender', this, function () {\n      this.send('barChart');\n    });\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.barChartInt();\n  }\n\n  barChartInt() {\n    let formatYear = timeFormat('%Y');\n    // let formatFixed = format(\",.0f\");\n\n    let chartId = this.chartId;\n    let data = this.data ? this.data : [];\n\n    let height = 100;\n    let margin = { top: 10, right: 5, bottom: 20, left: 5 };\n\n    let currentYear = this.currentYear;\n    let startDate = new Date(`${currentYear - 10}-01-01 00:00:00`);\n    let endDate = new Date(`${currentYear + 1}-01-01 00:00:00`);\n    let domain = [startDate, endDate];\n    let length = timeYears(startDate, endDate).length;\n    let width = length * 22;\n\n    let x = scaleTime().domain(domain).rangeRound([0, width]);\n\n    let y = scaleLinear()\n      .domain([\n        0,\n        max(data, function (d) {\n          return d.count;\n        })\n      ])\n      .rangeRound([height, 0]);\n\n    let xAxis = axisBottom().scale(x).tickSize(0).ticks(0);\n\n    // var tip = d3Tip()\n    //   .attr('class', 'tooltip')\n    //   .html(function(d) { return d.id + ': ' + formatFixed(d.count); });\n\n    // remove chart before building new one\n    // wrap in try/catch block to handle fastboot\n    try {\n      select('#' + chartId)\n        .selectAll('*')\n        .remove();\n\n      let chart = select('#' + chartId)\n        .append('svg')\n        .data([data])\n        .attr('width', margin.left + width + margin.right)\n        .attr('height', margin.top + height + margin.bottom)\n        .attr('class', 'chart barchart')\n        .append('svg:g')\n        .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');\n\n      chart\n        .selectAll('.bar')\n        .data(data)\n        .enter()\n        .append('rect')\n        .attr('id', function (d) {\n          return chartId + '-' + d.id;\n        })\n        .attr('class', 'bar relations')\n        .attr('x', function (d) {\n          return x(new Date(Date.parse(d.id + '-01T12:00:00Z')));\n        })\n        .attr('width', width / length - 1)\n        .attr('y', function (d) {\n          return y(d.count);\n        })\n        .attr('height', function (d) {\n          return height - y(d.count);\n        });\n      // .on('mouseover', function(d) {\n      //   // var id = '#' + chartId + '-' + d.id;\n      //   var title = formatFixed(d.count);\n      //   var dateStamp = Date.parse(d.id + '-01T12:00:00Z');\n      //   var dateString = \" in \" + formatYear(new Date(dateStamp));\n      //   console.log(title + dateString);\n      //  })\n      // .on('mouseout', function(d, i, nodes) {\n      //   console.log(d)\n      //  });\n\n      chart\n        .append('g')\n        .attr('class', 'x axis')\n        .attr('transform', 'translate(0,' + height + ')')\n        .call(xAxis);\n\n      chart\n        .append('text')\n        .attr('class', 'label')\n        .attr('text-anchor', 'middle')\n        .attr('transform', 'translate(11,' + (height + 18) + ')')\n        .text(formatYear(startDate));\n\n      chart\n        .append('text')\n        .attr('class', 'label')\n        .attr('text-anchor', 'middle')\n        .attr(\n          'transform',\n          'translate(' + (width - 11) + ',' + (height + 18) + ')'\n        )\n        .text(formatYear(endDate) - 1);\n\n      // let self = this;\n      // chart.selectAll(\"rect\").each(\n      //   function(d) {\n      //     var id = '#' + chartId + '-' + d.id;\n      //     var title = formatFixed(d.count);\n      //     var dateStamp = Date.parse(d.id + '-01T12:00:00Z');\n      //     var dateString = \" in \" + formatYear(new Date(dateStamp));\n\n      //     self.$(id).tooltip({ title: title + dateString, container: \"body\"});\n      //   }\n      // );\n\n      // return chart object\n      return chart;\n    } catch (error) {\n      // console.error(error);\n    }\n  }\n\n  @action\n  barChart() {\n    this.barChartInt();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<a href=\\\"{this.licenseURL}}\\\">\\n  {{#each this.licenseLogo as |license|}}\\n    {{#if license.class}}\\n      <i class=\\\"{{license.class}}\\\"><BsPopover @placement=\\\"top\\\" @viewportPadding={{10}} @triggerEvents=\\\"hover\\\" @title={{license.tooltip.title}}>{{license.tooltip.text}}</BsPopover></i>\\n    {{else}}\\n      {{license.logo}}\\n    {{/if}}\\n  {{/each}}\\n</a>\\n\", {\"contents\":\"<a href=\\\"{this.licenseURL}}\\\">\\n  {{#each this.licenseLogo as |license|}}\\n    {{#if license.class}}\\n      <i class=\\\"{{license.class}}\\\"><BsPopover @placement=\\\"top\\\" @viewportPadding={{10}} @triggerEvents=\\\"hover\\\" @title={{license.tooltip.title}}>{{license.tooltip.text}}</BsPopover></i>\\n    {{else}}\\n      {{license.logo}}\\n    {{/if}}\\n  {{/each}}\\n</a>\\n\",\"moduleName\":\"bracco/components/cc-license.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/cc-license.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport { htmlSafe } from '@ember/template';\nimport { w } from '@ember/string';\nimport { A } from '@ember/array';\nimport Component from '@ember/component';\nimport URI from 'urijs';\n\nconst Tooltips = [\n  {\n    key: 'cc',\n    title: 'Creative Commons (CC)',\n    text: 'A Creative Commons license enables the free distribution of an otherwise copyrighted work.'\n  },\n  {\n    key: 'by',\n    title: 'Attribution (BY)',\n    text: 'Licensees may copy, distribute, display and perform the work and make derivative works and remixes based on it only if they give the author or licensor the credits (attribution) in the manner specified by these.'\n  },\n  {\n    key: 'sa',\n    title: 'Share-alike (SA)',\n    text: 'Licensees may distribute derivative works only under a license identical (\"not more restrictive\") to the license that governs the original work.'\n  },\n  {\n    key: 'nc',\n    title: 'Non-commercial (NC)',\n    text: 'Licensees may copy, distribute, display, and perform the work and make derivative works and remixes based on it only for non-commercial purposes.'\n  },\n  {\n    key: 'nd',\n    title: 'No Derivative Works (ND)',\n    text: 'Licensees may copy, distribute, display and perform only verbatim copies of the work, not derivative works and remixes based on it.'\n  },\n  {\n    key: 'zero',\n    title: 'Public Domain (Zero)',\n    text: 'Copyright holder has waived the copyright interest and has dedicated the work to the world-wide public domain.'\n  }\n];\n\n@classic\n@tagName('div')\n@classNames('license')\nexport default class CcLicense extends Component {\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (this.licenseURL != null) {\n      let uri = new URI(this.licenseURL);\n      let licenseLogo = null;\n      if (uri.hostname() === 'creativecommons.org') {\n        let labels = A(uri.segment(1)?.split('-'));\n        labels.unshift('cc');\n        let val = null;\n\n        licenseLogo = labels.reduce(function (sum, key) {\n          if (w('public publicdomain').includes(key)) {\n            key = 'zero';\n          }\n          if (w('cc by nd nc sa zero').includes(key)) {\n            val = {\n              class: 'cc cc-' + key,\n              tooltip: A(Tooltips).findBy('key', key)\n            };\n            A(sum).pushObject(val);\n          }\n          return sum;\n        }, []);\n      } else if (uri.hostname() === 'opensource.org') {\n        switch (uri.segment(1)) {\n          case 'MIT':\n            licenseLogo = [\n              {\n                logo: htmlSafe(\n                  '<img src=\"https://img.shields.io/:license-MIT-blue.svg\" />'\n                )\n              }\n            ];\n        }\n      }\n      this.set('licenseLogo', licenseLogo);\n    } else {\n      this.set('licenseLogo', null);\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div style=\\\"display: inline-block; width: 100%;\\\">\\n<BsDropdown class=\\\"btn-group\\\" as |dd|>\\n  <BsButton class=\\\"btn-warning\\\" @onClick={{action \\\"createDoi\\\"}} id=\\\"omnipresent-new-doi\\\" title='Create DOI Using Form'>\\n    <i class=\\\"fas fa-edit\\\" aria-hidden=\\\"true\\\"></i>Create DOI\\n  </BsButton>\\n  <dd.button class=\\\"btn-warning\\\" aria-label=\\\"Open DOI creation options\\\"><span class=\\\"caret caret-point\\\" aria-hidden=\\\"true\\\"></span></dd.button>\\n  <dd.menu as |ddm|>\\n    <ddm.item>\\n      <ddm.linkTo @route=\\\"repositories.show.dois.new\\\" @id=\\\"omnipresent-secondary-new-doi\\\"><i class=\\\"fab fa-wpforms\\\" aria-hidden=\\\"true\\\"></i> DOI Form</ddm.linkTo>\\n    </ddm.item>\\n    <ddm.item>\\n      <ddm.linkTo @route=\\\"repositories.show.dois.upload\\\" @id=\\\"omnipresent-upload-doi\\\"><i class=\\\"fas fa-upload\\\" aria-hidden=\\\"true\\\"></i> File Upload</ddm.linkTo>\\n    </ddm.item>\\n  </dd.menu>\\n</BsDropdown>\\n</div>\\n\", {\"contents\":\"<div style=\\\"display: inline-block; width: 100%;\\\">\\n<BsDropdown class=\\\"btn-group\\\" as |dd|>\\n  <BsButton class=\\\"btn-warning\\\" @onClick={{action \\\"createDoi\\\"}} id=\\\"omnipresent-new-doi\\\" title='Create DOI Using Form'>\\n    <i class=\\\"fas fa-edit\\\" aria-hidden=\\\"true\\\"></i>Create DOI\\n  </BsButton>\\n  <dd.button class=\\\"btn-warning\\\" aria-label=\\\"Open DOI creation options\\\"><span class=\\\"caret caret-point\\\" aria-hidden=\\\"true\\\"></span></dd.button>\\n  <dd.menu as |ddm|>\\n    <ddm.item>\\n      <ddm.linkTo @route=\\\"repositories.show.dois.new\\\" @id=\\\"omnipresent-secondary-new-doi\\\"><i class=\\\"fab fa-wpforms\\\" aria-hidden=\\\"true\\\"></i> DOI Form</ddm.linkTo>\\n    </ddm.item>\\n    <ddm.item>\\n      <ddm.linkTo @route=\\\"repositories.show.dois.upload\\\" @id=\\\"omnipresent-upload-doi\\\"><i class=\\\"fas fa-upload\\\" aria-hidden=\\\"true\\\"></i> File Upload</ddm.linkTo>\\n    </ddm.item>\\n  </dd.menu>\\n</BsDropdown>\\n</div>\\n\",\"moduleName\":\"bracco/components/create-doi-button.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/create-doi-button.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { classNames } from '@ember-decorators/component';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\n@classNames('')\nexport default class CreateDoiButton extends Component {\n  @service\n  currentUser;\n\n  @service\n  router;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.set('currentUser', this.currentUser);\n  }\n\n  @action\n  createDoi() {\n    this.router.transitionTo('repositories.show.dois.new');\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.creators}}\\n  {{#each (take (or this.showOnly this.creators.length) this.creators) as |creator index|}}\\n    {{#if (and creator.orcid (feature-flag 'showResearchers'))}}\\n      <a href=\\\"https://commons.datacite.org/orcid.org/{{creator.orcid}}\\\">{{creator.displayName~}}</a>{{format-creator this.creators index=index}}\\n    {{else}}\\n      {{creator.displayName~}}{{format-creator this.creators index=index showOnly=(or this.showOnly this.creators.length)}}\\n    {{/if}}\\n  {{/each}}\\n{{/if}}\\n\", {\"contents\":\"{{#if this.creators}}\\n  {{#each (take (or this.showOnly this.creators.length) this.creators) as |creator index|}}\\n    {{#if (and creator.orcid (feature-flag 'showResearchers'))}}\\n      <a href=\\\"https://commons.datacite.org/orcid.org/{{creator.orcid}}\\\">{{creator.displayName~}}</a>{{format-creator this.creators index=index}}\\n    {{else}}\\n      {{creator.displayName~}}{{format-creator this.creators index=index showOnly=(or this.showOnly this.creators.length)}}\\n    {{/if}}\\n  {{/each}}\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/creator-show.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/creator-show.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class CreatorShow extends Component {\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group\\\" style=\\\"padding-top:30px;\\\">\\n    <div class=\\\"power-select-fragment\\\" doi-affiliation>\\n      <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.name}} @options={{this.organizations}} as |el|>\\n        <el.control @onChange={{action \\\"selectRor\\\"}} @search={{action \\\"searchRor\\\"}} @placeholder=\\\"Select Affiliation\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} as |item|>\\n          {{if item.name item.name this.fragment.name}}\\n        </el.control>\\n      </@form.element>\\n\\n    </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;background-color:white;\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteAffiliation\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <div class=\\\"power-select-fragment\\\" doi-affiliation data-test-affiliation>\\n    <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.name}} @options={{this.organizations}} as |el|>\\n      <el.control @onChange={{action \\\"selectRor\\\"}} @search={{action \\\"searchRor\\\"}} @placeholder=\\\"Select Affiliation\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} as |item|>\\n        {{if item.name item.name this.fragment.name}}\\n      </el.control>\\n    </@form.element>\\n  </div>\\n{{/if}}\\n\\n{{#if this.fragment.affiliationIdentifier}}\\n  <input type=\\\"text\\\" class=\\\"form-control affiliation-identifier-field no-error no-success\\\" value={{this.fragment.affiliationIdentifier}} readonly=\\\"true\\\"/>\\n{{/if}}\\n\", {\"contents\":\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group\\\" style=\\\"padding-top:30px;\\\">\\n    <div class=\\\"power-select-fragment\\\" doi-affiliation>\\n      <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.name}} @options={{this.organizations}} as |el|>\\n        <el.control @onChange={{action \\\"selectRor\\\"}} @search={{action \\\"searchRor\\\"}} @placeholder=\\\"Select Affiliation\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} as |item|>\\n          {{if item.name item.name this.fragment.name}}\\n        </el.control>\\n      </@form.element>\\n\\n    </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;background-color:white;\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteAffiliation\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <div class=\\\"power-select-fragment\\\" doi-affiliation data-test-affiliation>\\n    <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.name}} @options={{this.organizations}} as |el|>\\n      <el.control @onChange={{action \\\"selectRor\\\"}} @search={{action \\\"searchRor\\\"}} @placeholder=\\\"Select Affiliation\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} as |item|>\\n        {{if item.name item.name this.fragment.name}}\\n      </el.control>\\n    </@form.element>\\n  </div>\\n{{/if}}\\n\\n{{#if this.fragment.affiliationIdentifier}}\\n  <input type=\\\"text\\\" class=\\\"form-control affiliation-identifier-field no-error no-success\\\" value={{this.fragment.affiliationIdentifier}} readonly=\\\"true\\\"/>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/doi-affiliation.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-affiliation.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiAffiliation extends Component {\n  @service\n  store;\n\n  init(...args) {\n    super.init(...args);\n\n    this.organizations = this.organizations || [];\n  }\n\n  updateAffiliation(organizationRecord) {\n    if (organizationRecord) {\n      this.fragment.set('name', organizationRecord.name);\n      this.fragment.set('affiliationIdentifier', organizationRecord.id);\n      this.fragment.set('schemeUri', 'https://ror.org');\n      this.fragment.set('affiliationIdentifierScheme', 'ROR');\n    } else {\n      this.fragment.set('name', null);\n      this.fragment.set('affiliationIdentifier', null);\n      this.fragment.set('schemeUri', 'https://ror.org');\n      this.fragment.set('affiliationIdentifierScheme', 'ROR');\n    }\n  }\n\n  @action\n  searchRor(query) {\n    let self = this;\n    this.store\n      .query('ror', { query })\n      .then(function (organizations) {\n        // ROR API does not seem to offer sorting of results.  The Ember array 'sortBy' seems to work.\n        organizations = organizations.sortBy('name')\n        self.set('organizations', organizations);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return [];\n      });\n  }\n\n  @action\n  selectRor(ror) {\n    this.updateAffiliation(ror);\n  }\n\n  @action\n  deleteAffiliation() {\n    this.creator.get('affiliation').removeObject(this.fragment);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" class=\\\"form-control alternate-identifier-field\\\" value={{this.fragment.alternateIdentifier}} placeholder=\\\"Alternate Identifier\\\" oninput={{action \\\"updateAlternateIdentifier\\\" value=\\\"target.value\\\"}} data-test-alternate-identifier/>\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteAlternateIdentifier\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"alternateIdentifierType\\\" class=\\\"subtitle required-label\\\">Alternate Identifier Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" disabled={{this.controlledIdentifierType}} doi-alternate-identifier-type data-test-alternate-identifier-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.alternateIdentifierType}} @helpText=\\\"The type of Alternate Identifier.\\\" @options={{this.alternateIdentifierTypeList}} @destination={{this.fragment.alternateIdentifierType}} as |el|>\\n    <el.control @onChange={{action \\\"selectAlternateIdentifierType\\\"}} @onKeydown={{action \\\"createOnEnter\\\"}} @placeholder=\\\"Type in or select the Alternate Identifier Type.\\\" @noMatchesMessage=\\\"Press ENTER to add new identifier Type.\\\" @disabled={{this.controlledIdentifierType}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<hr />\\n\", {\"contents\":\"<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" class=\\\"form-control alternate-identifier-field\\\" value={{this.fragment.alternateIdentifier}} placeholder=\\\"Alternate Identifier\\\" oninput={{action \\\"updateAlternateIdentifier\\\" value=\\\"target.value\\\"}} data-test-alternate-identifier/>\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteAlternateIdentifier\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"alternateIdentifierType\\\" class=\\\"subtitle required-label\\\">Alternate Identifier Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" disabled={{this.controlledIdentifierType}} doi-alternate-identifier-type data-test-alternate-identifier-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.alternateIdentifierType}} @helpText=\\\"The type of Alternate Identifier.\\\" @options={{this.alternateIdentifierTypeList}} @destination={{this.fragment.alternateIdentifierType}} as |el|>\\n    <el.control @onChange={{action \\\"selectAlternateIdentifierType\\\"}} @onKeydown={{action \\\"createOnEnter\\\"}} @placeholder=\\\"Type in or select the Alternate Identifier Type.\\\" @noMatchesMessage=\\\"Press ENTER to add new identifier Type.\\\" @disabled={{this.controlledIdentifierType}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-alternate-identifier.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-alternate-identifier.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { isBlank } from '@ember/utils';\n\nconst alternateIdentifierTypeList = [\n  'ARK',\n  'arXiv',\n  'bibcode',\n  'CSTR',\n  'DOI',\n  'EAN13',\n  'EISSN',\n  'Handle',\n  'IGSN',\n  'ISBN',\n  'ISSN',\n  'ISTC',\n  'LISSN',\n  'LSID',\n  'PMID',\n  'PURL',\n  'RRID',\n  'UPC',\n  'URL',\n  'URN',\n  'w3id'\n];\n\n@classic\nexport default class DoiAlternateIdentifier extends Component {\n  alternateIdentifierTypeList = alternateIdentifierTypeList;\n  alternateIdentifierTypes = alternateIdentifierTypeList;\n\n  init(...args) {\n    super.init(...args);\n\n    this.selected = this.selected || [];\n  }\n\n  @action\n  createOnEnter(select, e) {\n    if (\n      e.keyCode === 13 &&\n      select.isOpen &&\n      !select.highlighted &&\n      !isBlank(select.searchText)\n    ) {\n      if (!this.selected.includes(select.searchText)) {\n        this.alternateIdentifierTypes.push(select.searchText);\n        select.actions.choose(select.searchText);\n        this.fragment.set('alternateIdentifierType', select.searchText);\n        this.set('alternateIdentifierTypes', alternateIdentifierTypeList);\n      }\n    }\n  }\n\n  @action\n  updateAlternateIdentifier(value) {\n    this.fragment.set('alternateIdentifier', value);\n  }\n\n  @action\n  selectAlternateIdentifierType(alternateIdentifierType) {\n    this.fragment.set('alternateIdentifierType', alternateIdentifierType);\n    this.set('alternateIdentifierTypes', alternateIdentifierTypeList);\n  }\n\n  @action\n  deleteAlternateIdentifier() {\n    this.model.get('alternateIdentifiers').removeObject(this.fragment);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-alternate-identifiers>Alternate Identifiers</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">An identifier or identifiers other than the primary Identifier applied to the resource being registered.</div>\\n    {{#if this.showAlternateIdentifiers}}\\n      {{#each this.model.alternateIdentifiers as |alternateIdentifier index|}}\\n        <DoiAlternateIdentifier @model={{this.model}} @fragment={{alternateIdentifier}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.alternateIdentifiers.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-alternate-identifier\\\" @outline={{true}} @onClick={{action \\\"addAlternateIdentifier\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.alternateIdentifiers.length 1) \\\"another \\\"}} alternate identifier</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.alternateIdentifiers.length 0)}}\\n        <BsButton id=\\\"toggle-alternate-identifiers\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleAlternateIdentifiers\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.alternateIdentifiers.length 'alternate identifier'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.alternateIdentifiers.length 0)}}\\n        <BsButton id=\\\"toggle-alternate-identifiers\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleAlternateIdentifiers\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.alternateIdentifiers.length 'alternate identifier'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-alternate-identifier\\\" @outline={{true}} @onClick={{action \\\"addAlternateIdentifier\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add alternate identifier</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-alternate-identifiers>Alternate Identifiers</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">An identifier or identifiers other than the primary Identifier applied to the resource being registered.</div>\\n    {{#if this.showAlternateIdentifiers}}\\n      {{#each this.model.alternateIdentifiers as |alternateIdentifier index|}}\\n        <DoiAlternateIdentifier @model={{this.model}} @fragment={{alternateIdentifier}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.alternateIdentifiers.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-alternate-identifier\\\" @outline={{true}} @onClick={{action \\\"addAlternateIdentifier\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.alternateIdentifiers.length 1) \\\"another \\\"}} alternate identifier</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.alternateIdentifiers.length 0)}}\\n        <BsButton id=\\\"toggle-alternate-identifiers\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleAlternateIdentifiers\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.alternateIdentifiers.length 'alternate identifier'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.alternateIdentifiers.length 0)}}\\n        <BsButton id=\\\"toggle-alternate-identifiers\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleAlternateIdentifiers\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.alternateIdentifiers.length 'alternate identifier'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-alternate-identifier\\\" @outline={{true}} @onClick={{action \\\"addAlternateIdentifier\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add alternate identifier</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-alternate-identifiers.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-alternate-identifiers.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiAlternateIdentifiers extends Component {\n  showAlternateIdentifiers = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('alternateIdentifiers')) {\n      this.model.set('alternateIdentifiers', []);\n    }\n  }\n\n  @action\n  addAlternateIdentifier() {\n    this.model.get('alternateIdentifiers').createFragment();\n    this.set('showAlternateIdentifiers', true);\n  }\n\n  @action\n  toggleAlternateIdentifiers() {\n    this.set('showAlternateIdentifiers', !this.showAlternateIdentifiers);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{@text}}\\n\", {\"contents\":\"{{@text}}\\n\",\"moduleName\":\"bracco/components/doi-citation-body.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-citation-body.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\nexport default class DoiCitationBody extends Component {\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n  }\n\n  didRender() {\n    super.didRender(...arguments);\n\n    window.MathJax.typesetClear([this.element]);\n    this.element.innerHTML = this.text;\n    window.MathJax.typeset([this.element]);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.model.publicationYear}}\\n  <div id=\\\"citation\\\" class=\\\"input-group pull-right\\\">\\n    <select onchange={{action 'doSelectStyle' value=\\\"target.value\\\"}}>\\n      {{#each-in this.citationFormats as |key value|}}\\n        <option name=\\\"citation\\\" value={{key}} selected={{eq this.citation key}}>{{value}}</option>\\n      {{/each-in}}\\n    </select>\\n  </div>\\n  <h3 class=\\\"member-results\\\">Citation</h3>\\n  <div class=\\\"clearfix\\\"/>\\n\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\" data-test-citation>\\n      <DoiCitationBody @text=\\\"{{format-text this.citationOutput}}\\\" />\\n    </div>\\n  </div>\\n{{/if}}\\n\", {\"contents\":\"{{#if this.model.publicationYear}}\\n  <div id=\\\"citation\\\" class=\\\"input-group pull-right\\\">\\n    <select onchange={{action 'doSelectStyle' value=\\\"target.value\\\"}}>\\n      {{#each-in this.citationFormats as |key value|}}\\n        <option name=\\\"citation\\\" value={{key}} selected={{eq this.citation key}}>{{value}}</option>\\n      {{/each-in}}\\n    </select>\\n  </div>\\n  <h3 class=\\\"member-results\\\">Citation</h3>\\n  <div class=\\\"clearfix\\\"/>\\n\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\" data-test-citation>\\n      <DoiCitationBody @text=\\\"{{format-text this.citationOutput}}\\\" />\\n    </div>\\n  </div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/doi-citation.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-citation.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { tagName } from '@ember-decorators/component';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\nimport { UploadFile, UploadFileReader } from 'ember-file-upload';\n\n@classic\n@tagName('div')\nexport default class DoiCitation extends Component {\n  @service\n  currentUser;\n\n  citation = null;\n  citationOutput = null;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.selectStyle('apa');\n\n    let citationFormats = {\n      apa: 'APA',\n      'harvard-cite-them-right': 'Harvard',\n      'modern-language-association': 'MLA',\n      vancouver: 'Vancouver',\n      'chicago-fullnote-bibliography': 'Chicago',\n      ieee: 'IEEE'\n    };\n    this.set('citationFormats', citationFormats);\n  }\n\n  selectStyle(style) {\n    let self = this;\n    let url =\n      ENV.API_URL + '/dois/' + this.model.get('doi') + '?style=' + style;\n    let headers = { Accept: 'text/x-bibliography' };\n    if (this.currentUser.get('jwt')) {\n      headers = {\n        Authorization: 'Bearer ' + this.currentUser.get('jwt'),\n        Accept: 'text/x-bibliography'\n      };\n    }\n    let result = fetch(url, {\n      headers\n    }).then(function (response) {\n      if (response.ok) {\n        return response.blob();\n      } else {\n        return response.statusText;\n      }\n    });\n\n    result.then(async function (response) {\n      if (typeof response === 'string') {\n        self.set('citationOutput', response);\n      } else {\n        if (self.isDestroying || self.isDestroyed) {\n          return;\n        }\n        let reader = UploadFile.fromBlob(response, 'blob')\n        reader.readAsText().then(\n          (result) => {\n            self.set('citationOutput', result);\n          },\n          (err) => {\n            console.error(err);\n          }\n        );\n      }\n    });\n    // this.get('router').transitionTo({ queryParams: { citation: citation } });\n  }\n\n  @action\n  doSelectStyle(style) {\n    // APA is default citation style\n    style = style === undefined ? 'apa' : style;\n    this.selectStyle(style);\n  }\n\n  didRender() {\n    super.didRender(...arguments);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"\\n<label for=\\\"contributorType\\\" class=\\\"subtitle required-label\\\">Contributor Type</label>\\n  <div class=\\\"power-select-fragment\\\" doi-contributor-type>\\n    <@form.element @controlType=\\\"power-select\\\" @value={{this.humanContributorType}} @helpText=\\\"The type of contributor of the resource.\\\" @options={{this.humanContributorTypes}} @formLayout=\\\"vertical\\\" @selected={{this.humanContributorType}} @destination={{this.humanContributorType}}  as |el|>\\n      <el.control @onChange={{action \\\"selectContributorTypeAction\\\"}} @placeholder=\\\"Select Contributor Type\\\" @disabled={{this.disabled}} @searchEnabled={{true}} />\\n    </@form.element>\\n</div>  \\n{{#if (gt this.fragment.nameIdentifiers.length 0)}}\\n  <label for=\\\"nameIdentifiers\\\" class=\\\"subtitle\\\">Name Identifier</label>\\n\\n  {{#each this.fragment.nameIdentifiers as |nameIdentifier index|}}\\n    <DoiNameIdentifier @model={{this.model}} @creator={{this.fragment}} @fragment={{nameIdentifier}} @form={{this.form}} @index={{index}} @joinNameParts={{action \\\"joinNameParts\\\"}} @setNameType={{action \\\"selectNameType\\\"}} @setReadOnly={{action \\\"setReadOnly\\\"}} />\\n  {{/each}}\\n{{/if}}\\n\\n{{#if (lte this.fragment.nameIdentifiers.length 2)}}\\n  <BsButton class=\\\"btn-sm add-name-identifier\\\" @outline={{true}} @onClick={{action \\\"addNameIdentifier\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add another name identifier</BsButton>\\n{{/if}}\\n\\n<div class=\\\"radio-fragment\\\">\\n  <RadioButton @value=\\\"Personal\\\" @groupValue={{this.nameType}} @radioClass=\\\"radio select-person\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}}/><span class=\\\"subtitle\\\">Person</span> \\n  <RadioButton @value=\\\"Organizational\\\" @groupValue={{this.nameType}} @radioClass=\\\"radio select-organisation\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}} /><span class=\\\"subtitle\\\">Organization</span>\\n  <RadioButton @value={{null}} @groupValue={{this.nameType}} @radioClass=\\\"radio select-unknown\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}} /><span class=\\\"subtitle\\\">Unknown</span>\\n</div>\\n\\n{{#if this.showPersonal}}\\n  <div>\\n    <label for=\\\"givenName\\\" class=\\\"subtitle\\\">Given Name</label>\\n    <input type=\\\"text\\\" class=\\\"form-control given-name-field\\\" value={{this.fragment.givenName}} placeholder=\\\"Given Name\\\" oninput={{action \\\"updateGivenName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-given-name/>\\n  </div>\\n\\n  <div>\\n    <label for=\\\"familyName\\\" class=\\\"subtitle\\\">Family Name</label>\\n    <input type=\\\"text\\\" class=\\\"form-control family-name-field\\\" value={{this.fragment.familyName}} placeholder=\\\"Family Name\\\" oninput={{action \\\"updateFamilyName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-family-name/>\\n  </div>\\n{{/if}}\\n\\n<div data-test-contributor-name>\\n  <label for=\\\"name\\\" class=\\\"subtitle required-label\\\">Name{{if this.isReadonly ' (from Given Name and Family Name)'}}</label>\\n  <div class=\\\"input-group\\\">\\n    <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonly}} data-test-name/>\\n    <span class=\\\"input-group-btn\\\">\\n      <BsButton @outline={{true}} @onClick={{action \\\"deleteContributorAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n    </span>\\n  </div>\\n</div>\\n\\n{{#if (gt this.fragment.affiliation.length 0)}}\\n  <label for=\\\"affiliation\\\" class=\\\"subtitle\\\">Affiliation</label>\\n\\n  {{#each this.fragment.affiliation as |affiliation index|}}\\n    <DoiAffiliation @model={{this.model}} @creator={{this.fragment}} @fragment={{affiliation}} @form={{this.form}} @index={{index}} />\\n  {{/each}}\\n\\n  {{#unless this.hasErrors}}\\n    <div class=\\\"help-block help-block-fragment affiliation-field\\\">\\n      Affiliation names and identifiers are provided by the Research Organization Registry (ROR).\\n    </div>\\n  {{/unless}}\\n\\n  {{#if (lte this.fragment.affiliation.length 2)}}\\n    <BsButton class=\\\"btn-sm add-affiliation\\\" @outline={{true}} @onClick={{action \\\"addAffiliation\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add another affiliation</BsButton>\\n  {{/if}}\\n{{/if}}\\n\\n<hr />\\n\", {\"contents\":\"\\n<label for=\\\"contributorType\\\" class=\\\"subtitle required-label\\\">Contributor Type</label>\\n  <div class=\\\"power-select-fragment\\\" doi-contributor-type>\\n    <@form.element @controlType=\\\"power-select\\\" @value={{this.humanContributorType}} @helpText=\\\"The type of contributor of the resource.\\\" @options={{this.humanContributorTypes}} @formLayout=\\\"vertical\\\" @selected={{this.humanContributorType}} @destination={{this.humanContributorType}}  as |el|>\\n      <el.control @onChange={{action \\\"selectContributorTypeAction\\\"}} @placeholder=\\\"Select Contributor Type\\\" @disabled={{this.disabled}} @searchEnabled={{true}} />\\n    </@form.element>\\n</div>  \\n{{#if (gt this.fragment.nameIdentifiers.length 0)}}\\n  <label for=\\\"nameIdentifiers\\\" class=\\\"subtitle\\\">Name Identifier</label>\\n\\n  {{#each this.fragment.nameIdentifiers as |nameIdentifier index|}}\\n    <DoiNameIdentifier @model={{this.model}} @creator={{this.fragment}} @fragment={{nameIdentifier}} @form={{this.form}} @index={{index}} @joinNameParts={{action \\\"joinNameParts\\\"}} @setNameType={{action \\\"selectNameType\\\"}} @setReadOnly={{action \\\"setReadOnly\\\"}} />\\n  {{/each}}\\n{{/if}}\\n\\n{{#if (lte this.fragment.nameIdentifiers.length 2)}}\\n  <BsButton class=\\\"btn-sm add-name-identifier\\\" @outline={{true}} @onClick={{action \\\"addNameIdentifier\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add another name identifier</BsButton>\\n{{/if}}\\n\\n<div class=\\\"radio-fragment\\\">\\n  <RadioButton @value=\\\"Personal\\\" @groupValue={{this.nameType}} @radioClass=\\\"radio select-person\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}}/><span class=\\\"subtitle\\\">Person</span> \\n  <RadioButton @value=\\\"Organizational\\\" @groupValue={{this.nameType}} @radioClass=\\\"radio select-organisation\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}} /><span class=\\\"subtitle\\\">Organization</span>\\n  <RadioButton @value={{null}} @groupValue={{this.nameType}} @radioClass=\\\"radio select-unknown\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}} /><span class=\\\"subtitle\\\">Unknown</span>\\n</div>\\n\\n{{#if this.showPersonal}}\\n  <div>\\n    <label for=\\\"givenName\\\" class=\\\"subtitle\\\">Given Name</label>\\n    <input type=\\\"text\\\" class=\\\"form-control given-name-field\\\" value={{this.fragment.givenName}} placeholder=\\\"Given Name\\\" oninput={{action \\\"updateGivenName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-given-name/>\\n  </div>\\n\\n  <div>\\n    <label for=\\\"familyName\\\" class=\\\"subtitle\\\">Family Name</label>\\n    <input type=\\\"text\\\" class=\\\"form-control family-name-field\\\" value={{this.fragment.familyName}} placeholder=\\\"Family Name\\\" oninput={{action \\\"updateFamilyName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-family-name/>\\n  </div>\\n{{/if}}\\n\\n<div data-test-contributor-name>\\n  <label for=\\\"name\\\" class=\\\"subtitle required-label\\\">Name{{if this.isReadonly ' (from Given Name and Family Name)'}}</label>\\n  <div class=\\\"input-group\\\">\\n    <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonly}} data-test-name/>\\n    <span class=\\\"input-group-btn\\\">\\n      <BsButton @outline={{true}} @onClick={{action \\\"deleteContributorAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n    </span>\\n  </div>\\n</div>\\n\\n{{#if (gt this.fragment.affiliation.length 0)}}\\n  <label for=\\\"affiliation\\\" class=\\\"subtitle\\\">Affiliation</label>\\n\\n  {{#each this.fragment.affiliation as |affiliation index|}}\\n    <DoiAffiliation @model={{this.model}} @creator={{this.fragment}} @fragment={{affiliation}} @form={{this.form}} @index={{index}} />\\n  {{/each}}\\n\\n  {{#unless this.hasErrors}}\\n    <div class=\\\"help-block help-block-fragment affiliation-field\\\">\\n      Affiliation names and identifiers are provided by the Research Organization Registry (ROR).\\n    </div>\\n  {{/unless}}\\n\\n  {{#if (lte this.fragment.affiliation.length 2)}}\\n    <BsButton class=\\\"btn-sm add-affiliation\\\" @outline={{true}} @onClick={{action \\\"addAffiliation\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add another affiliation</BsButton>\\n  {{/if}}\\n{{/if}}\\n\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-contributor.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-contributor.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport PersonBaseComponent from './person-base-component';\nimport { pascalCase } from 'pascal-case';\nimport humanizeString from 'humanize-string';\nimport { isBlank } from '@ember/utils';\n\nconst contributorTypes = [\n  'ContactPerson',\n  'DataCollector',\n  'DataCurator',\n  'DataManager',\n  'Distributor',\n  'Editor',\n  'HostingInstitution',\n  'Producer',\n  'ProjectLeader',\n  'ProjectManager',\n  'ProjectMember',\n  'RegistrationAgency',\n  'RegistrationAuthority',\n  'RelatedPerson',\n  'Researcher',\n  'ResearchGroup',\n  'RightsHolder',\n  'Sponsor',\n  'Supervisor',\n  'Translator',\n  'WorkPackageLeader',\n  'Other'\n];\n\nconst humanContributorTypes = contributorTypes.map((type) =>\n  humanizeString(type)\n);\n\nconst organizationalContributorTypes = [\n  'HostingInstitution',\n  'RegistrationAgency',\n  'RegistrationAuthority',\n  'ResearchGroup',\n  'Distributor'\n];\n\nconst personalContributorTypes = [\n  'ContactPerson',\n  'DataCurator',\n  'Editor',\n  'ProjectLeader',\n  'ProjectManager',\n  'ProjectMember',\n  'RelatedPerson',\n  'Researcher',\n  'Supervisor',\n  'WorkPackageLeader'\n];\n\n@classic\nexport default class DoiContributor extends PersonBaseComponent {\n  humanContributorTypes = humanContributorTypes;\n\n  @computed('fragment.contributorType')\n  get humanContributorType() {\n    return isBlank(this.get('fragment.contributorType'))\n      ? null\n      : humanizeString(this.get('fragment.contributorType'));\n  }\n\n  selectContributorType(contributorType) {\n    if (contributorType) {\n      let contributorTypeId = pascalCase(contributorType);\n      this.fragment.set('contributorType', contributorTypeId);\n      this.set('contributorType', contributorType);\n\n      if (organizationalContributorTypes.includes(contributorTypeId)) {\n        this.selectNameType('Organizational');\n      }\n\n      if (personalContributorTypes.includes(contributorTypeId)) {\n        this.selectNameType('Personal');\n      }\n    } else {\n      this.fragment.set('contributorType', null);\n    }\n    this.set('humanContributorTypes', humanContributorTypes);\n  }\n\n  @action\n  deleteContributorAction() {\n    this.model.get('contributors').removeObject(this.fragment);\n  }\n\n  @action\n  selectContributorTypeAction(contributorType) {\n    this.selectContributorType(contributorType);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group data-test-contributors\\\">\\n  <label class=\\\"control-label col-md-3\\\">Contributors</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">The institution or person responsible for collecting, managing, distributing, or otherwise contributing to the development of the resource.</div>\\n    {{#if this.showContributors}}\\n      {{#each this.model.contributors as |contributor index|}}\\n        <DoiContributor @model={{this.model}} @fragment={{contributor}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.contributors.length 24)}}\\n        <BsButton id=\\\"add-contributor\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addContributor\\\"}}><i class=\\\"fas fa-plush\\\"></i> Add {{if (gt this.model.contributors.length 0) \\\"another \\\"}} contributor</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.contributors.length 0)}}\\n        <BsButton id=\\\"toggle-contributors\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleContributors\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.contributors.length 'contributor'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.contributors.length 0)}}\\n        <BsButton id=\\\"toggle-contributors\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleContributors\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.contributors.length 'contributor'}}</BsButton>\\n      {{else}}\\n         <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-contributor\\\" @outline={{true}} @onClick={{action \\\"addContributor\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add contributor</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"form-group data-test-contributors\\\">\\n  <label class=\\\"control-label col-md-3\\\">Contributors</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">The institution or person responsible for collecting, managing, distributing, or otherwise contributing to the development of the resource.</div>\\n    {{#if this.showContributors}}\\n      {{#each this.model.contributors as |contributor index|}}\\n        <DoiContributor @model={{this.model}} @fragment={{contributor}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.contributors.length 24)}}\\n        <BsButton id=\\\"add-contributor\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addContributor\\\"}}><i class=\\\"fas fa-plush\\\"></i> Add {{if (gt this.model.contributors.length 0) \\\"another \\\"}} contributor</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.contributors.length 0)}}\\n        <BsButton id=\\\"toggle-contributors\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleContributors\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.contributors.length 'contributor'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.contributors.length 0)}}\\n        <BsButton id=\\\"toggle-contributors\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleContributors\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.contributors.length 'contributor'}}</BsButton>\\n      {{else}}\\n         <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-contributor\\\" @outline={{true}} @onClick={{action \\\"addContributor\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add contributor</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/doi-contributors.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-contributors.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiContributors extends Component {\n  showContributors = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('contributors')) {\n      this.model.set('contributors', []);\n    }\n  }\n\n  @action\n  addContributor() {\n    this.model\n      .get('contributors')\n      .createFragment({ nameIdentifiers: [], affiliation: [] });\n    this.model\n      .get('contributors')\n      .get('lastObject')\n      .get('nameIdentifiers')\n      .createFragment();\n    this.model\n      .get('contributors')\n      .get('lastObject')\n      .get('affiliation')\n      .createFragment();\n    this.set('showContributors', true);\n  }\n\n  @action\n  toggleContributors() {\n    this.set('showContributors', !this.showContributors);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (gt this.fragment.nameIdentifiers.length 0)}}\\n  <label for=\\\"nameIdentifiers\\\" class=\\\"subtitle\\\">Name Identifier</label>\\n\\n  {{#each this.fragment.nameIdentifiers as |nameIdentifier index|}}\\n    <DoiNameIdentifier @model={{this.model}} @creator={{this.fragment}} @fragment={{nameIdentifier}} @form={{this.form}} @index={{index}} @joinNameParts={{action \\\"joinNameParts\\\"}} @setNameType={{action \\\"selectNameType\\\"}} @setReadOnly={{action \\\"setReadOnly\\\"}} />\\n  {{/each}}\\n{{/if}}\\n\\n{{#if (lte this.fragment.nameIdentifiers.length 2)}}\\n  <BsButton class=\\\"btn-sm add-name-identifier\\\" @outline={{true}} @onClick={{action \\\"addNameIdentifier\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add another name identifier</BsButton>\\n{{/if}}\\n\\n<div class=\\\"radio-fragment\\\">\\n  <RadioButton @value=\\\"Personal\\\" @groupValue={{this.nameType}} @radioClass=\\\"radio select-person\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}}/><span class=\\\"subtitle\\\">Person</span>\\n  <RadioButton @value=\\\"Organizational\\\" @groupValue={{this.nameType}} @radioClass=\\\"radio select-organisation\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}} /><span class=\\\"subtitle\\\">Organization</span>\\n  <RadioButton @value={{null}} @groupValue={{this.nameType}} @radioClass=\\\"radio select-unknown\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}} /><span class=\\\"subtitle\\\">Unknown</span>\\n</div>\\n\\n{{#if (gt this.index 0)}}\\n  {{#if this.showPersonal}}\\n    <div>\\n      <label for=\\\"givenName\\\" class=\\\"subtitle\\\">Given Name</label>\\n      <input type=\\\"text\\\" class=\\\"form-control given-name-field\\\" value={{this.fragment.givenName}} placeholder=\\\"Given Name\\\" oninput={{action \\\"updateGivenName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-given-name/>\\n    </div>\\n\\n    <div>\\n      <label for=\\\"familyName\\\" class=\\\"subtitle\\\">Family Name</label>\\n      <input type=\\\"text\\\" class=\\\"form-control family-name-field\\\" value={{this.fragment.familyName}} placeholder=\\\"Family Name\\\" oninput={{action \\\"updateFamilyName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-family-name/>\\n    </div>\\n  {{/if}}\\n\\n  <div>\\n    <label for=\\\"name\\\" class=\\\"subtitle required-label\\\">Name{{if this.isReadonly ' (from Given Name and Family Name)'}}</label>\\n    <div class=\\\"input-group\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonly}} data-test-name/>\\n      <span class=\\\"input-group-btn\\\">\\n        <BsButton @outline={{true}} @onClick={{action \\\"deleteCreator\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n      </span>\\n    </div>\\n  </div>\\n{{else}}\\n  {{#if this.showPersonal}}\\n    <div>\\n      <label for=\\\"givenName\\\" class=\\\"subtitle\\\">Given Name</label>\\n      <input type=\\\"text\\\" class=\\\"form-control given-name-field\\\" value={{this.fragment.givenName}} placeholder=\\\"Given Name\\\" oninput={{action \\\"updateGivenName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-given-name/>\\n      <div class=\\\"help-block help-block-fragment\\\">The personal or first name of the creator.</div>\\n    </div>\\n\\n    <div>\\n      <label for=\\\"familyName\\\" class=\\\"subtitle\\\">Family Name</label>\\n      <input type=\\\"text\\\" class=\\\"form-control family-name-field\\\" value={{this.fragment.familyName}} placeholder=\\\"Family Name\\\" oninput={{action \\\"updateFamilyName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-family-name/>\\n      <div class=\\\"help-block help-block-fragment\\\">The surname or last name of the creator.</div>\\n    </div>\\n\\n    <div>\\n      <label for=\\\"name\\\" class=\\\"subtitle required-label\\\">Name{{if this.isReadonly ' (from Given Name and Family Name)'}}</label>\\n      <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonly}} data-test-name/>\\n    </div>\\n  {{else}}\\n    <div>\\n      <div><label for=\\\"name\\\" class=\\\"subtitle required-label\\\">Name</label></div>\\n      <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonly}} data-test-name/>\\n    </div>\\n  {{/if}}\\n{{/if}}\\n\\n{{#if (gt this.fragment.affiliation.length 0)}}\\n  <label for=\\\"affiliation\\\" class=\\\"subtitle\\\">Affiliation</label>\\n\\n  {{#each this.fragment.affiliation as |affiliation index|}}\\n    <DoiAffiliation @model={{this.model}} @creator={{this.fragment}} @fragment={{affiliation}} @form={{this.form}} @index={{index}} />\\n  {{/each}}\\n\\n  {{#unless this.hasErrors}}\\n    <div class=\\\"help-block help-block-fragment affiliation-field no-error no-success\\\">\\n      Affiliation names and identifiers are provided by the Research Organization Registry (ROR).\\n    </div>\\n  {{/unless}}\\n{{/if}}\\n\\n{{#if (lte this.fragment.affiliation.length 2)}}\\n  <BsButton class=\\\"btn-sm add-affiliation\\\" @outline={{true}} @onClick={{action \\\"addAffiliation\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add another affiliation</BsButton>\\n{{/if}}\\n\\n<hr />\\n\", {\"contents\":\"{{#if (gt this.fragment.nameIdentifiers.length 0)}}\\n  <label for=\\\"nameIdentifiers\\\" class=\\\"subtitle\\\">Name Identifier</label>\\n\\n  {{#each this.fragment.nameIdentifiers as |nameIdentifier index|}}\\n    <DoiNameIdentifier @model={{this.model}} @creator={{this.fragment}} @fragment={{nameIdentifier}} @form={{this.form}} @index={{index}} @joinNameParts={{action \\\"joinNameParts\\\"}} @setNameType={{action \\\"selectNameType\\\"}} @setReadOnly={{action \\\"setReadOnly\\\"}} />\\n  {{/each}}\\n{{/if}}\\n\\n{{#if (lte this.fragment.nameIdentifiers.length 2)}}\\n  <BsButton class=\\\"btn-sm add-name-identifier\\\" @outline={{true}} @onClick={{action \\\"addNameIdentifier\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add another name identifier</BsButton>\\n{{/if}}\\n\\n<div class=\\\"radio-fragment\\\">\\n  <RadioButton @value=\\\"Personal\\\" @groupValue={{this.nameType}} @radioClass=\\\"radio select-person\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}}/><span class=\\\"subtitle\\\">Person</span>\\n  <RadioButton @value=\\\"Organizational\\\" @groupValue={{this.nameType}} @radioClass=\\\"radio select-organisation\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}} /><span class=\\\"subtitle\\\">Organization</span>\\n  <RadioButton @value={{null}} @groupValue={{this.nameType}} @radioClass=\\\"radio select-unknown\\\" @changed={{action \\\"selectNameType\\\"}} @disabled={{this.isReadonlyNameType}} /><span class=\\\"subtitle\\\">Unknown</span>\\n</div>\\n\\n{{#if (gt this.index 0)}}\\n  {{#if this.showPersonal}}\\n    <div>\\n      <label for=\\\"givenName\\\" class=\\\"subtitle\\\">Given Name</label>\\n      <input type=\\\"text\\\" class=\\\"form-control given-name-field\\\" value={{this.fragment.givenName}} placeholder=\\\"Given Name\\\" oninput={{action \\\"updateGivenName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-given-name/>\\n    </div>\\n\\n    <div>\\n      <label for=\\\"familyName\\\" class=\\\"subtitle\\\">Family Name</label>\\n      <input type=\\\"text\\\" class=\\\"form-control family-name-field\\\" value={{this.fragment.familyName}} placeholder=\\\"Family Name\\\" oninput={{action \\\"updateFamilyName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-family-name/>\\n    </div>\\n  {{/if}}\\n\\n  <div>\\n    <label for=\\\"name\\\" class=\\\"subtitle required-label\\\">Name{{if this.isReadonly ' (from Given Name and Family Name)'}}</label>\\n    <div class=\\\"input-group\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonly}} data-test-name/>\\n      <span class=\\\"input-group-btn\\\">\\n        <BsButton @outline={{true}} @onClick={{action \\\"deleteCreator\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n      </span>\\n    </div>\\n  </div>\\n{{else}}\\n  {{#if this.showPersonal}}\\n    <div>\\n      <label for=\\\"givenName\\\" class=\\\"subtitle\\\">Given Name</label>\\n      <input type=\\\"text\\\" class=\\\"form-control given-name-field\\\" value={{this.fragment.givenName}} placeholder=\\\"Given Name\\\" oninput={{action \\\"updateGivenName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-given-name/>\\n      <div class=\\\"help-block help-block-fragment\\\">The personal or first name of the creator.</div>\\n    </div>\\n\\n    <div>\\n      <label for=\\\"familyName\\\" class=\\\"subtitle\\\">Family Name</label>\\n      <input type=\\\"text\\\" class=\\\"form-control family-name-field\\\" value={{this.fragment.familyName}} placeholder=\\\"Family Name\\\" oninput={{action \\\"updateFamilyName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonlyNameParts}} data-test-family-name/>\\n      <div class=\\\"help-block help-block-fragment\\\">The surname or last name of the creator.</div>\\n    </div>\\n\\n    <div>\\n      <label for=\\\"name\\\" class=\\\"subtitle required-label\\\">Name{{if this.isReadonly ' (from Given Name and Family Name)'}}</label>\\n      <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonly}} data-test-name/>\\n    </div>\\n  {{else}}\\n    <div>\\n      <div><label for=\\\"name\\\" class=\\\"subtitle required-label\\\">Name</label></div>\\n      <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} readonly={{this.isReadonly}} data-test-name/>\\n    </div>\\n  {{/if}}\\n{{/if}}\\n\\n{{#if (gt this.fragment.affiliation.length 0)}}\\n  <label for=\\\"affiliation\\\" class=\\\"subtitle\\\">Affiliation</label>\\n\\n  {{#each this.fragment.affiliation as |affiliation index|}}\\n    <DoiAffiliation @model={{this.model}} @creator={{this.fragment}} @fragment={{affiliation}} @form={{this.form}} @index={{index}} />\\n  {{/each}}\\n\\n  {{#unless this.hasErrors}}\\n    <div class=\\\"help-block help-block-fragment affiliation-field no-error no-success\\\">\\n      Affiliation names and identifiers are provided by the Research Organization Registry (ROR).\\n    </div>\\n  {{/unless}}\\n{{/if}}\\n\\n{{#if (lte this.fragment.affiliation.length 2)}}\\n  <BsButton class=\\\"btn-sm add-affiliation\\\" @outline={{true}} @onClick={{action \\\"addAffiliation\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add another affiliation</BsButton>\\n{{/if}}\\n\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-creator.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-creator.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport PersonBaseComponent from './person-base-component';\n\n@classic\nexport default class DoiCreator extends PersonBaseComponent {\n  @action\n  deleteCreator() {\n    this.model.get('creators').removeObject(this.fragment);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\" data-test-creators>Creators</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">The main researchers or organizations involved in producing the resource, in priority order.</div>\\n    {{#if this.showCreators}}\\n      {{#each this.model.creators as |creator index|}}\\n        <DoiCreator @model={{this.model}} @fragment={{creator}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.creators.length 24)}}\\n        <BsButton id=\\\"add-creator\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addCreator\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add another creator</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.creators.length 0)}}\\n        <BsButton id=\\\"toggle-creators\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleCreators\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.creators.length 'creator'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.creators.length 0)}}\\n        <BsButton id=\\\"toggle-creators\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleCreators\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.creators.length 'creator'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-creator\\\" @outline={{true}} @onClick={{action \\\"addCreator\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add creator</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\" data-test-creators>Creators</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">The main researchers or organizations involved in producing the resource, in priority order.</div>\\n    {{#if this.showCreators}}\\n      {{#each this.model.creators as |creator index|}}\\n        <DoiCreator @model={{this.model}} @fragment={{creator}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.creators.length 24)}}\\n        <BsButton id=\\\"add-creator\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addCreator\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add another creator</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.creators.length 0)}}\\n        <BsButton id=\\\"toggle-creators\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleCreators\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.creators.length 'creator'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.creators.length 0)}}\\n        <BsButton id=\\\"toggle-creators\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleCreators\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.creators.length 'creator'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-creator\\\" @outline={{true}} @onClick={{action \\\"addCreator\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add creator</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-creators.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-creators.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { schedule } from '@ember/runloop';\n\n@classic\nexport default class DoiCreators extends Component {\n  showCreators = true;\n\n  init() {\n    super.init();\n\n    schedule(\"afterRender\",this,function() {\n      if (!this.model.get('creators')) {\n        this.model.set('creators', []);\n      }\n\n      if (this.model.get('creators').length == 0) {\n        this.send(\"addCreator\");\n      }\n    });\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n     if (!this.model.get('creators')) {\n      this.model.set('creators', []);\n    }\n  }\n\n  @action\n  addCreator() {\n    this.model\n      .get('creators')\n      .createFragment({ nameIdentifiers: [], affiliation: [] });\n    this.model\n      .get('creators')\n      .get('lastObject')\n      .get('nameIdentifiers')\n      .createFragment();\n    this.model\n      .get('creators')\n      .get('lastObject')\n      .get('affiliation')\n      .createFragment();\n    this.set('showCreators', true);\n  }\n\n  @action\n  toggleCreators() {\n    this.set('showCreators', !this.showCreators);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"input-group\\\">\\n  <input class=\\\"form-control date-field\\\" value={{this.fragment.date}} onblur={{action \\\"updateDate\\\" value=\\\"target.value\\\"}} placeholder=\\\"Date \\\"\\n    data-test-date />\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteDate\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"dateType\\\" class=\\\"required-label subtitle\\\">Date Type</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment\\\" doi-date-type>\\n  <@form.element @controlType=\\\"power-select\\\" @helpText=\\\"Type of date.\\\" @value={{this.fragment.dateType}} @options={{this.dateTypesList}} @destination={{this.fragment.dateType}} as |el|>\\n    <el.control @onChange={{action \\\"selectDateType\\\"}} @placeholder=\\\"Select Date Type\\\"  @disabled={{this.disabled}} @searchEnabled={{true}}/>\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"dateInformation\\\" class=\\\"subtitle\\\">Date Information</label>\\n</div>\\n\\n<input class=\\\"form-control date-information-field\\\" value={{this.fragment.dateInformation}}\\n  placeholder=\\\"Date Information\\\" \\n  oninput={{action \\\"updateDateInformation\\\" value=\\\"target.value\\\"}} data-test-date />\\n<div class=\\\"help-block help-block-fragment\\\">Specific information about the date, if appropriate.</div>\\n\\n<hr />\\n\", {\"contents\":\"<div class=\\\"input-group\\\">\\n  <input class=\\\"form-control date-field\\\" value={{this.fragment.date}} onblur={{action \\\"updateDate\\\" value=\\\"target.value\\\"}} placeholder=\\\"Date \\\"\\n    data-test-date />\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteDate\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"dateType\\\" class=\\\"required-label subtitle\\\">Date Type</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment\\\" doi-date-type>\\n  <@form.element @controlType=\\\"power-select\\\" @helpText=\\\"Type of date.\\\" @value={{this.fragment.dateType}} @options={{this.dateTypesList}} @destination={{this.fragment.dateType}} as |el|>\\n    <el.control @onChange={{action \\\"selectDateType\\\"}} @placeholder=\\\"Select Date Type\\\"  @disabled={{this.disabled}} @searchEnabled={{true}}/>\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"dateInformation\\\" class=\\\"subtitle\\\">Date Information</label>\\n</div>\\n\\n<input class=\\\"form-control date-information-field\\\" value={{this.fragment.dateInformation}}\\n  placeholder=\\\"Date Information\\\" \\n  oninput={{action \\\"updateDateInformation\\\" value=\\\"target.value\\\"}} data-test-date />\\n<div class=\\\"help-block help-block-fragment\\\">Specific information about the date, if appropriate.</div>\\n\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-date.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-date.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\nconst dateTypesCompleteList = [\n  'Accepted',\n  'Available',\n  'Copyrighted',\n  'Collected',\n  'Coverage',\n  'Created',\n  'Issued',\n  'Submitted',\n  'Updated',\n  'Valid',\n  'Withdrawn',\n  'Other'\n];\n\n@classic\nexport default class DoiDate extends Component {\n  dateTypesCompleteList = dateTypesCompleteList;\n  dateTypesList = dateTypesCompleteList;\n\n  init(...args) {\n    super.init(...args);\n\n    this.dateTypes = this.dateTypes || [];\n  }\n\n  @action\n  updateDate(value) {\n    this.fragment.set('date', value);\n  }\n\n  @action\n  selectDateType(value) {\n    this.fragment.set('dateType', value);\n    this.set('dateType', this.dateTypesCompleteList);\n  }\n\n  @action\n  updateDateInformation(value) {\n    this.fragment.set('dateInformation', value);\n  }\n\n  @action\n  deleteDate() {\n    this.model.get('dates').removeObject(this.fragment);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-dates>Dates</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Different dates relevant to the resource.</div>\\n    {{#if this.showDates}}\\n      {{#each this.model.dates as |date index|}}\\n        <DoiDate @model={{this.model}} @fragment={{date}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.dates.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-date\\\" @outline={{true}} @onClick={{action \\\"addDate\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.dates.length 0) \\\"another \\\"}}date</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.dates.length 0)}}\\n        <BsButton id=\\\"toggle-dates\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleDates\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.dates.length 'date'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.dates.length 0)}}\\n        <BsButton id=\\\"toggle-dates\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleDates\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.dates.length 'date'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-date\\\" @outline={{true}} @onClick={{action \\\"addDate\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add date</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-dates>Dates</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Different dates relevant to the resource.</div>\\n    {{#if this.showDates}}\\n      {{#each this.model.dates as |date index|}}\\n        <DoiDate @model={{this.model}} @fragment={{date}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.dates.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-date\\\" @outline={{true}} @onClick={{action \\\"addDate\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.dates.length 0) \\\"another \\\"}}date</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.dates.length 0)}}\\n        <BsButton id=\\\"toggle-dates\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleDates\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.dates.length 'date'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.dates.length 0)}}\\n        <BsButton id=\\\"toggle-dates\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleDates\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.dates.length 'date'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-date\\\" @outline={{true}} @onClick={{action \\\"addDate\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add date</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-dates.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-dates.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiDates extends Component {\n  showDates = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('dates')) {\n      this.model.set('dates', []);\n    }\n  }\n\n  @action\n  addDate() {\n    this.model.get('dates').createFragment();\n    this.set('showDates', true);\n  }\n\n  @action\n  toggleDates() {\n    this.set('showDates', !this.showDates);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"input-group\\\">\\n  <textarea class=\\\"form-control description-field {{unless this.isSeriesInformation 'no-error'}}\\\" rows=\\\"8\\\" style=\\\"resize:none\\\" placeholder=\\\"Description\\\" value={{this.fragment.description}}\\n    oninput={{action \\\"updateDescription\\\" value=\\\"target.value\\\"}} data-test-description />    \\n  <span class=\\\"input-group-addon\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteDescription\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n  </span>\\n</div>\\n{{#if this.isSeriesInformation}}\\n  <div class=\\\"help-block help-block-fragment description-field\\\">Enter series information in the recommended format of series title, followed by comma and optional volume(issue), firstpage-lastpage</div>\\n{{else}}\\n  <div class=\\\"help-block help-block-fragment description-field\\\">All additional information that does not fit in any of the other categories.</div>\\n{{/if}}\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"descriptionType\\\" class=\\\"subtitle required-label\\\">Description Type</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment\\\" doi-description-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.descriptionType}} @options={{this.descriptionTypes}} @destination={{this.fragment.descriptionType}} as |el|>\\n    <el.control @class=\\\"description-types\\\" @onChange={{action \\\"selectDescriptionType\\\"}} @placeholder=\\\"Select Description Type\\\" @allowClear={{false}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"descriptionLang\\\" class=\\\"subtitle\\\">Language</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment description-langs\\\" doi-description-language>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.language}} @options={{this.languages}} as |el|>\\n    <el.control @class=\\\"description-langs\\\" @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Select Language\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<hr />\\n\", {\"contents\":\"<div class=\\\"input-group\\\">\\n  <textarea class=\\\"form-control description-field {{unless this.isSeriesInformation 'no-error'}}\\\" rows=\\\"8\\\" style=\\\"resize:none\\\" placeholder=\\\"Description\\\" value={{this.fragment.description}}\\n    oninput={{action \\\"updateDescription\\\" value=\\\"target.value\\\"}} data-test-description />    \\n  <span class=\\\"input-group-addon\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteDescription\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n  </span>\\n</div>\\n{{#if this.isSeriesInformation}}\\n  <div class=\\\"help-block help-block-fragment description-field\\\">Enter series information in the recommended format of series title, followed by comma and optional volume(issue), firstpage-lastpage</div>\\n{{else}}\\n  <div class=\\\"help-block help-block-fragment description-field\\\">All additional information that does not fit in any of the other categories.</div>\\n{{/if}}\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"descriptionType\\\" class=\\\"subtitle required-label\\\">Description Type</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment\\\" doi-description-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.descriptionType}} @options={{this.descriptionTypes}} @destination={{this.fragment.descriptionType}} as |el|>\\n    <el.control @class=\\\"description-types\\\" @onChange={{action \\\"selectDescriptionType\\\"}} @placeholder=\\\"Select Description Type\\\" @allowClear={{false}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"descriptionLang\\\" class=\\\"subtitle\\\">Language</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment description-langs\\\" doi-description-language>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.language}} @options={{this.languages}} as |el|>\\n    <el.control @class=\\\"description-langs\\\" @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Select Language\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-description.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-description.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport Component from '@ember/component';\nimport ISO6391 from 'iso-639-1';\nimport LanguageComputedMixin from '../mixins/language-computed';\n\nconst descriptionTypes = [\n  'Abstract',\n  'Methods',\n  'SeriesInformation',\n  'TableOfContents',\n  'TechnicalInfo',\n  'Other'\n];\nconst languageList = ISO6391.getAllNames();\n\n@classic\nexport default class DoiDescription extends Component.extend(LanguageComputedMixin) {\n  descriptionTypes = descriptionTypes;\n  languageList = languageList;\n  languages = languageList;\n\n  @computed('fragment.descriptionType')\n  get isSeriesInformation() {\n    return this.get('fragment.descriptionType') == 'SeriesInformation';\n  }\n\n  @action\n  updateDescription(value) {\n    this.fragment.set('description', value);\n  }\n\n  @action\n  deleteDescription() {\n    this.model.get('descriptions').removeObject(this.fragment);\n  }\n\n  @action\n  selectDescriptionType(descriptionType) {\n    this.fragment.set('descriptionType', descriptionType);\n  }\n\n  @action\n  searchLanguage(query) {\n    let languages = languageList.filter(function (language) {\n      return language.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('languages', languages);\n  }\n\n  @action\n  selectLanguage(language) {\n    if (language) {\n      this.fragment.set('lang', ISO6391.getCode(language));\n    } else {\n      this.fragment.set('lang', null);\n    }\n    this.set('languages', languageList);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-descriptions>Descriptions</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Additional information about the resource that does not fit in any of the other categories.</div>\\n    {{#if this.showDescriptions}}\\n      {{#each this.model.descriptions as |description index|}}\\n        <DoiDescription @model={{this.model}} @fragment={{description}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.descriptions.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-description\\\" @outline={{true}} @onClick={{action \\\"addDescription\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.descriptions.length 0) \\\"another \\\"}}description</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.descriptions.length 0)}}\\n        <BsButton id=\\\"toggle-descriptions\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleDescriptions\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.descriptions.length 'description'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.descriptions.length 0)}}\\n        <BsButton id=\\\"toggle-descriptions\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleDescriptions\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.descriptions.length 'description'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-description\\\" @outline={{true}} @onClick={{action \\\"addDescription\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add description</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-descriptions>Descriptions</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Additional information about the resource that does not fit in any of the other categories.</div>\\n    {{#if this.showDescriptions}}\\n      {{#each this.model.descriptions as |description index|}}\\n        <DoiDescription @model={{this.model}} @fragment={{description}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.descriptions.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-description\\\" @outline={{true}} @onClick={{action \\\"addDescription\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.descriptions.length 0) \\\"another \\\"}}description</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.descriptions.length 0)}}\\n        <BsButton id=\\\"toggle-descriptions\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleDescriptions\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.descriptions.length 'description'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.descriptions.length 0)}}\\n        <BsButton id=\\\"toggle-descriptions\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleDescriptions\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.descriptions.length 'description'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-description\\\" @outline={{true}} @onClick={{action \\\"addDescription\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add description</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-descriptions.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-descriptions.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiDescriptions extends Component {\n  showDescriptions = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('descriptions')) {\n      this.model.set('descriptions', []);\n    }\n  }\n\n  @action\n  addDescription() {\n    this.model.get('descriptions').createFragment();\n    this.set('showDescriptions', true);\n  }\n\n  @action\n  toggleDescriptions() {\n    this.set('showDescriptions', !this.showDescriptions);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group compound-form\\\" id=\\\"doi-form-field\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\">DOI</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">A globally unique string that identifies the resource and can't be changed.</div>\\n    <div class=\\\"input-group form-group\\\">\\n      <span class=\\\"input-group-addon\\\">\\n        <@form.element @controlType=\\\"power-select\\\" id=\\\"prefix-field\\\" @formLayout=\\\"vertical\\\" @property=\\\"prefix\\\" @options={{this.repositoryPrefixes}} @destination={{this.prefix}} as |el|>\\n          <el.control @onChange={{action \\\"selectPrefix\\\"}} @searchPlaceholder=\\\"Select Prefix\\\" @optionLabelPath={{this.id}} @searchEnabled={{true}} as |item|>\\n            {{if item.prefix.id item.prefix.id item}}\\n          </el.control>\\n        </@form.element>\\n      </span>\\n      <@form.element @controlType=\\\"text\\\" class=\\\"suffix\\\" id=\\\"suffix\\\" @formLayout=\\\"vertical\\\" @property=\\\"suffix\\\" @onChange={{action \\\"selectSuffix\\\"}} @helpText=\\\"Click the circle icon for a new random suffix, or the cross icon to delete the random suffix and enter a value manually.\\\" as |el| >\\n        <el.control id=\\\"suffix-field\\\" />\\n          <span class=\\\"input-group-addon refresh\\\" title=\\\"Refresh\\\" aria-label=\\\"Refresh\\\" {{action 'refresh'}}><i class=\\\"fas fa-sync\\\"></i></span>\\n          <span class=\\\"input-group-addon clear\\\" title=\\\"Clear\\\" aria-label=\\\"Clear\\\" {{action 'clear'}}><i class=\\\"fas fa-times-circle\\\"></i></span>\\n      </@form.element>\\n    </div>\\n  </div>\\n</div>\\n\\n<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\">State</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">The state determines whether a DOI is registered in the global Handle System and if its metadata is publicly available. Once in Registered or Findable state, a DOI cannot be deleted. <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/doi-states\\\">Learn more&nbsp;…</a></div>\\n    <div><RadioButton @radioId=\\\"draft-radio\\\" @value=\\\"draft\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectState\\\"}} @disabled={{this.draft}} />Draft <span class=\\\"help-block\\\">the DOI is not yet registered in the global Handle System, does not need to have valid metadata or a URL, and can be deleted</span></div>\\n    <div><RadioButton @radioId=\\\"registered-radio\\\" @value=\\\"registered\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectState\\\"}} @disabled={{this.registered}} />Registered <span class=\\\"help-block\\\">the DOI is registered in the global Handle System, but its metadata is not publicly available</span></div>\\n    <div><RadioButton @radioId=\\\"findable-radio\\\" @value=\\\"findable\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectState\\\"}} @disabled={{this.findable}} />Findable <span class=\\\"help-block\\\">the DOI is registered in the global Handle System and its metadata is publicly available</span></div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group compound-form\\\" id=\\\"doi-form-field\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\">DOI</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">A globally unique string that identifies the resource and can't be changed.</div>\\n    <div class=\\\"input-group form-group\\\">\\n      <span class=\\\"input-group-addon\\\">\\n        <@form.element @controlType=\\\"power-select\\\" id=\\\"prefix-field\\\" @formLayout=\\\"vertical\\\" @property=\\\"prefix\\\" @options={{this.repositoryPrefixes}} @destination={{this.prefix}} as |el|>\\n          <el.control @onChange={{action \\\"selectPrefix\\\"}} @searchPlaceholder=\\\"Select Prefix\\\" @optionLabelPath={{this.id}} @searchEnabled={{true}} as |item|>\\n            {{if item.prefix.id item.prefix.id item}}\\n          </el.control>\\n        </@form.element>\\n      </span>\\n      <@form.element @controlType=\\\"text\\\" class=\\\"suffix\\\" id=\\\"suffix\\\" @formLayout=\\\"vertical\\\" @property=\\\"suffix\\\" @onChange={{action \\\"selectSuffix\\\"}} @helpText=\\\"Click the circle icon for a new random suffix, or the cross icon to delete the random suffix and enter a value manually.\\\" as |el| >\\n        <el.control id=\\\"suffix-field\\\" />\\n          <span class=\\\"input-group-addon refresh\\\" title=\\\"Refresh\\\" aria-label=\\\"Refresh\\\" {{action 'refresh'}}><i class=\\\"fas fa-sync\\\"></i></span>\\n          <span class=\\\"input-group-addon clear\\\" title=\\\"Clear\\\" aria-label=\\\"Clear\\\" {{action 'clear'}}><i class=\\\"fas fa-times-circle\\\"></i></span>\\n      </@form.element>\\n    </div>\\n  </div>\\n</div>\\n\\n<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\">State</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">The state determines whether a DOI is registered in the global Handle System and if its metadata is publicly available. Once in Registered or Findable state, a DOI cannot be deleted. <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/doi-states\\\">Learn more&nbsp;…</a></div>\\n    <div><RadioButton @radioId=\\\"draft-radio\\\" @value=\\\"draft\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectState\\\"}} @disabled={{this.draft}} />Draft <span class=\\\"help-block\\\">the DOI is not yet registered in the global Handle System, does not need to have valid metadata or a URL, and can be deleted</span></div>\\n    <div><RadioButton @radioId=\\\"registered-radio\\\" @value=\\\"registered\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectState\\\"}} @disabled={{this.registered}} />Registered <span class=\\\"help-block\\\">the DOI is registered in the global Handle System, but its metadata is not publicly available</span></div>\\n    <div><RadioButton @radioId=\\\"findable-radio\\\" @value=\\\"findable\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectState\\\"}} @disabled={{this.findable}} />Findable <span class=\\\"help-block\\\">the DOI is registered in the global Handle System and its metadata is publicly available</span></div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-doi.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-doi.hbs\"}});\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport ENV from 'bracco/config/environment';\nimport fetch from 'fetch';\nimport { A } from '@ember/array';\n\nconst stateList = {\n  draft: ['draft', 'registered', 'findable'],\n  registered: ['registered', 'findable'],\n  findable: ['registered', 'findable']\n};\n\nexport default Component.extend({\n  currentUser: service(),\n  store: service(),\n\n  draft: true,\n  registered: true,\n  findable: true,\n\n  stateList,\n  state: null,\n\n  repositoryPrefixes: null,\n\n  init() {\n    this._super(...arguments);\n\n    this.setDefaultPrefix();\n  },\n\n  setDefaultPrefix() {\n    let self = this;\n    this.store\n      .query('repository-prefix', {\n        'repository-id': this.repository.get('id'),\n        sort: 'name',\n        'page[size]': 25\n      })\n      .then(function (repositoryPrefixes) {\n        if (typeof self.get('model').get('doi') == 'undefined') {\n          self.set('repositoryPrefixes', repositoryPrefixes);\n        }\n\n        let repositoryPrefix =\n          repositoryPrefixes.length > 0\n            ? repositoryPrefixes.get('firstObject')\n            : null;\n        self\n          .get('model')\n          .set('prefix', repositoryPrefix.get('prefix').get('id'));\n\n        if (typeof self.get('model').get('doi') == 'undefined') {\n          self.generate();\n        }\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return [];\n      });\n  },\n  async generate() {\n    let self = this;\n    let url = ENV.API_URL + '/dois/random?prefix=' + this.model.get('prefix');\n    try {\n      const response = await fetch(url, {\n        headers: {\n          Authorization: 'Bearer ' + this.currentUser.get('jwt')\n        }\n      });\n      if (response.ok) {\n        return response.json().then(function (data) {\n          let suffix = data.dois[0].split('/', 2)[1];\n          self.get('model').set('suffix', suffix);\n          let doi = self.get('model').get('prefix') + '/' + suffix;\n          self.get('model').set('doi', doi);\n          self.selectState(self.get('model').get('state'));\n          return suffix;\n        });\n      } else {\n        console.debug(response);\n\n        return null;\n      }\n    } catch (error) {\n      console.debug(error);\n    }\n  },\n  selectState(state) {\n    this.set('state', state);\n    this.model.set('state', state);\n    this.setStates(state);\n  },\n  setStates(state) {\n    if (state == '' || state == 'undetermined') {\n      state = 'draft';\n    }\n    let states = [];\n    states = stateList[state];\n    A(states).forEach((item) => {\n      this.set(item, false);\n    });\n  },\n\n  actions: {\n    selectPrefix(repositoryPrefix) {\n      this.model.set('prefix', repositoryPrefix.prefix.get('id'));\n      this.model.set(\n        'doi',\n        repositoryPrefix.prefix.get('id') + '/' + this.model.get('suffix')\n      );\n      this.selectState(this.model.get('state'));\n    },\n    selectSuffix(suffix) {\n      this.model.set('suffix', suffix);\n      this.model.set('doi', this.model.get('prefix') + '/' + suffix);\n    },\n    generate() {\n      this.generate();\n    },\n    refresh() {\n      this.generate();\n    },\n    clear() {\n      this.model.set('suffix', null);\n      // this.$('input[type=text]:first').focus();\n    },\n    selectState(state) {\n      this.selectState(state);\n    }\n  }\n});\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"input-group\\\" style=\\\"padding-top:30px;\\\">\\n  <div class=\\\"power-select-fragment\\\" doi-format>\\n    <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment}} @options={{this.formats}} as |el|>\\n      <el.control @onChange={{action \\\"selectFormat\\\"}} @onKeydown={{action \\\"createOnEnter\\\"}} @search={{action \\\"searchFormat\\\"}} @placeholder=\\\"Search standard formats OR create a new format\\\" @searchPlaceholder=\\\"Type to search format OR create a new format...\\\" @noMatchesMessage=\\\"Press ENTER to add new format.\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}}  as |item|>\\n        {{if item item this.fragment}}\\n      </el.control>\\n      <div class=\\\"help-block\\\">\\n        The default format scheme is provided by the\\n        <a\\n          target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://www.iana.org/assignments/media-types/media-types.xhtml\\\"\\n        >\\n          IANA Media Types\\n        </a>\\n        .\\n      </div>\\n    </@form.element>\\n  </div>\\n  <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;background-color:white;\\\">\\n  <BsButton @outline={{true}} @onClick={{action \\\"deleteFormat\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n{{#if this.fragment.affiliationIdentifier}}\\n  <input type=\\\"text\\\" class=\\\"form-control affiliation-identifier-field no-error no-success\\\" value={{this.fragment.affiliationIdentifier}} readonly=\\\"true\\\"/>\\n{{/if}}\\n\", {\"contents\":\"<div class=\\\"input-group\\\" style=\\\"padding-top:30px;\\\">\\n  <div class=\\\"power-select-fragment\\\" doi-format>\\n    <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment}} @options={{this.formats}} as |el|>\\n      <el.control @onChange={{action \\\"selectFormat\\\"}} @onKeydown={{action \\\"createOnEnter\\\"}} @search={{action \\\"searchFormat\\\"}} @placeholder=\\\"Search standard formats OR create a new format\\\" @searchPlaceholder=\\\"Type to search format OR create a new format...\\\" @noMatchesMessage=\\\"Press ENTER to add new format.\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}}  as |item|>\\n        {{if item item this.fragment}}\\n      </el.control>\\n      <div class=\\\"help-block\\\">\\n        The default format scheme is provided by the\\n        <a\\n          target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://www.iana.org/assignments/media-types/media-types.xhtml\\\"\\n        >\\n          IANA Media Types\\n        </a>\\n        .\\n      </div>\\n    </@form.element>\\n  </div>\\n  <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;background-color:white;\\\">\\n  <BsButton @outline={{true}} @onClick={{action \\\"deleteFormat\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n{{#if this.fragment.affiliationIdentifier}}\\n  <input type=\\\"text\\\" class=\\\"form-control affiliation-identifier-field no-error no-success\\\" value={{this.fragment.affiliationIdentifier}} readonly=\\\"true\\\"/>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/doi-format.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-format.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport { isBlank } from '@ember/utils';\nimport mime from 'mime/lite';\n\nconst FORMATS = Object.keys(mime._extensions);\n\nfunction getMatchingFormats(input) {\n  const matchingFormats = FORMATS.filter((ext) =>\n    ext.includes(input.toLowerCase())\n  );\n  return matchingFormats;\n}\n\n@classic\nexport default class DoiFormat extends Component {\n  @service\n  store;\n\n  init(...args) {\n    super.init(...args);\n    this.formats = FORMATS;\n\n    this.selected = this.selected || [];\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n  }\n\n  @action\n  createOnEnter(select, e) {\n    if (\n      e.keyCode === 13 &&\n      select.isOpen &&\n      !select.highlighted &&\n      !isBlank(select.searchText)\n    ) {\n      if (!this.selected.includes(select.searchText)) {\n        this.formats.push(select.searchText);\n        select.actions.choose(select.searchText);\n\n        this.model.get('formats').splice(this.index, 1, select.searchText);\n        this.set('formats', FORMATS);\n      }\n    }\n  }\n\n  @action\n  searchFormat(query) {\n    this.set('formats', getMatchingFormats(query));\n  }\n\n  @action\n  selectFormat(formatExtension) {\n    this.model.get('formats').splice(this.index, 1, formatExtension);\n    this.model.set('formats', Array.from(this.model.get('formats')));\n  }\n\n  @action\n  deleteFormat() {\n    this.model.get('formats').splice(this.index, 1);\n    this.model.set('formats', Array.from(this.model.get('formats')));\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-formats>Formats</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Technical format of the resource.</div>\\n    {{#if this.showFormats}}\\n      {{#each this.model.formats as |format index|}}\\n        <DoiFormat @model={{this.model}} @fragment={{format}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.formats.length 5)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-format\\\" @outline={{true}} @onClick={{action \\\"addFormat\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.formats.length 0) \\\"another \\\"}}format</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.formats.length 0)}}\\n        <BsButton id=\\\"toggle-formats\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleFormats\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.formats.length 'format'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.formats.length 0)}}\\n        <BsButton id=\\\"toggle-formats\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleFormats\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.formats.length 'format'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-format\\\" @outline={{true}} @onClick={{action \\\"addFormat\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add format</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-formats>Formats</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Technical format of the resource.</div>\\n    {{#if this.showFormats}}\\n      {{#each this.model.formats as |format index|}}\\n        <DoiFormat @model={{this.model}} @fragment={{format}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.formats.length 5)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-format\\\" @outline={{true}} @onClick={{action \\\"addFormat\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.formats.length 0) \\\"another \\\"}}format</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.formats.length 0)}}\\n        <BsButton id=\\\"toggle-formats\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleFormats\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.formats.length 'format'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.formats.length 0)}}\\n        <BsButton id=\\\"toggle-formats\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleFormats\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.formats.length 'format'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-format\\\" @outline={{true}} @onClick={{action \\\"addFormat\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add format</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-formats.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-formats.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { schedule } from '@ember/runloop';\n\n@classic\nexport default class DoiFormats extends Component {\n  showFormats = false;\n\n  init() {\n    super.init();\n\n    schedule(\"afterRender\",this,function() {\n      if (!this.model.get('formats')) {\n        this.model.set('formats', []);\n      }\n    });\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n  }\n\n  @action\n  addFormat() {\n    this.model.get('formats').push('');\n    this.model.set('formats', Array.from(this.model.get('formats')));\n    this.set('showFormats', true);\n  }\n\n  @action\n  toggleFormats() {\n    this.set('showFormats', !this.showFormats);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div data-test-funding-reference>\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"funder-name\\\" class=\\\"subtitle\\\">Funder Name</label>\\n</div>\\n  \\n<div class=\\\"power-select-fragment\\\" doi-funder-name data-test-funder-name>\\n  <@form.element @controlType=\\\"power-select\\\" @options={{this.funders}} @value={{this.fragment.funderName}} @destination={{this.fragment.funderName}} as |el|>\\n    <el.control @searchEnabled={{true}} @onChange={{action \\\"selectFunderReferenceAction\\\"}} @placeholder=\\\"Search Funders\\\" @onKeydown={{action \\\"createOnEnterAction\\\"}} @search={{action \\\"searchFundingReferencesAction\\\"}} @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @noMatchesMessage=\\\"Press ENTER to add new funder name.\\\" @disabled={{this.disabled}} as |item|>\\n      {{if item.name item.name this.fragment.funderName}}\\n    </el.control>\\n  <div class=\\\"help-block\\\">\\n    Funder names and identifiers are provided by the <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://www.crossref.org/services/funder-registry/\\\">Crossref Funder Registry</a>.\\n  </div>\\n  </@form.element>\\n</div>\\n\\n<div>\\n  <label for=\\\"funder-identifier\\\" class=\\\"subtitle\\\">Funder Identifier</label>\\n</div>\\n<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" class=\\\"form-control funder-identifier-field\\\" value={{this.fragment.funderIdentifier}} placeholder=\\\"Funder Identifier\\\"\\n    disabled={{this.isCrossrefId}} oninput={{action \\\"updateFunderIdentifierAction\\\" value=\\\"target.value\\\"}}\\n    data-test-funder-identifier />\\n\\n  <div class=\\\"help-block help-block-fragment funder-identifier-field}}\\\">\\n    Uniquely identifies a funding entity.\\n  </div>\\n\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteFundingReferenceAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"funderIdentifierType\\\" class=\\\"subtitle\\\">Funder Identifier Type</label>\\n</div>\\n<div class=\\\"power-select-fragment\\\" doi-funder-identifier-type data-test-funder-identifier-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.funderIdentifierType}} @helpText=\\\"The type of funder identifier, one of Crossref Funder ID, GRID, ISNI, or ROR.\\\" @options={{this.funderIdentifierTypeList}} @destination={{this.fragment.funderIdentifierType}} as |el|>\\n    <el.control @onChange={{action \\\"selectFunderIdentifierTypeAction\\\"}} @allowClear={{true}} @placeholder=\\\"Select Funder Identifier Type\\\" @disabled={{this.isCrossrefId}} />\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"award-number\\\" class=\\\"subtitle\\\">Award Number</label>\\n</div>\\n<input type=\\\"text\\\" class=\\\"form-control award-number-field\\\" value={{this.fragment.awardNumber}} placeholder=\\\"Award Number\\\"\\n  oninput={{action \\\"updateAwardNumberAction\\\" value=\\\"target.value\\\"}} data-test-award-number />\\n\\n<div class=\\\"help-block help-block-fragment award-number-field}}\\\">\\n  The code assigned by the funder to a sponsored award (grant).\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"award-title\\\" class=\\\"subtitle\\\">Award Title</label>\\n</div>\\n\\n<input type=\\\"text\\\" class=\\\"form-control award-title-field\\\" value={{this.fragment.awardTitle}} placeholder=\\\"Award Title\\\"\\n  oninput={{action \\\"updateAwardTitleAction\\\" value=\\\"target.value\\\"}} data-test-award-title />\\n\\n<div class=\\\"help-block help-block-fragment award-title-field}}\\\">\\n  The human readable title or name of the award (grant).\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"award-uri\\\" class=\\\"subtitle\\\">Award URI</label>\\n</div>\\n\\n<input type=\\\"text\\\" class=\\\"form-control award-uri-field\\\" value={{this.fragment.awardUri}} placeholder=\\\"Award URI\\\"\\n  oninput={{action \\\"updateAwardUriAction\\\" value=\\\"target.value\\\"}} data-test-award-uri />\\n\\n<div class=\\\"help-block help-block-fragment award-uri-field\\\">\\n  The URI leading to a page provided by the funder for more information about the award (grant). For example, <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://www.moore.org/grants/list/GBMF3859.01\\\">https://www.moore.org/grants/list/GBMF3859.01</a>.\\n</div>\\n\\n<hr />\\n</div>\\n\", {\"contents\":\"<div data-test-funding-reference>\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"funder-name\\\" class=\\\"subtitle\\\">Funder Name</label>\\n</div>\\n  \\n<div class=\\\"power-select-fragment\\\" doi-funder-name data-test-funder-name>\\n  <@form.element @controlType=\\\"power-select\\\" @options={{this.funders}} @value={{this.fragment.funderName}} @destination={{this.fragment.funderName}} as |el|>\\n    <el.control @searchEnabled={{true}} @onChange={{action \\\"selectFunderReferenceAction\\\"}} @placeholder=\\\"Search Funders\\\" @onKeydown={{action \\\"createOnEnterAction\\\"}} @search={{action \\\"searchFundingReferencesAction\\\"}} @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @noMatchesMessage=\\\"Press ENTER to add new funder name.\\\" @disabled={{this.disabled}} as |item|>\\n      {{if item.name item.name this.fragment.funderName}}\\n    </el.control>\\n  <div class=\\\"help-block\\\">\\n    Funder names and identifiers are provided by the <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://www.crossref.org/services/funder-registry/\\\">Crossref Funder Registry</a>.\\n  </div>\\n  </@form.element>\\n</div>\\n\\n<div>\\n  <label for=\\\"funder-identifier\\\" class=\\\"subtitle\\\">Funder Identifier</label>\\n</div>\\n<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" class=\\\"form-control funder-identifier-field\\\" value={{this.fragment.funderIdentifier}} placeholder=\\\"Funder Identifier\\\"\\n    disabled={{this.isCrossrefId}} oninput={{action \\\"updateFunderIdentifierAction\\\" value=\\\"target.value\\\"}}\\n    data-test-funder-identifier />\\n\\n  <div class=\\\"help-block help-block-fragment funder-identifier-field}}\\\">\\n    Uniquely identifies a funding entity.\\n  </div>\\n\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteFundingReferenceAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"funderIdentifierType\\\" class=\\\"subtitle\\\">Funder Identifier Type</label>\\n</div>\\n<div class=\\\"power-select-fragment\\\" doi-funder-identifier-type data-test-funder-identifier-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.funderIdentifierType}} @helpText=\\\"The type of funder identifier, one of Crossref Funder ID, GRID, ISNI, or ROR.\\\" @options={{this.funderIdentifierTypeList}} @destination={{this.fragment.funderIdentifierType}} as |el|>\\n    <el.control @onChange={{action \\\"selectFunderIdentifierTypeAction\\\"}} @allowClear={{true}} @placeholder=\\\"Select Funder Identifier Type\\\" @disabled={{this.isCrossrefId}} />\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"award-number\\\" class=\\\"subtitle\\\">Award Number</label>\\n</div>\\n<input type=\\\"text\\\" class=\\\"form-control award-number-field\\\" value={{this.fragment.awardNumber}} placeholder=\\\"Award Number\\\"\\n  oninput={{action \\\"updateAwardNumberAction\\\" value=\\\"target.value\\\"}} data-test-award-number />\\n\\n<div class=\\\"help-block help-block-fragment award-number-field}}\\\">\\n  The code assigned by the funder to a sponsored award (grant).\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"award-title\\\" class=\\\"subtitle\\\">Award Title</label>\\n</div>\\n\\n<input type=\\\"text\\\" class=\\\"form-control award-title-field\\\" value={{this.fragment.awardTitle}} placeholder=\\\"Award Title\\\"\\n  oninput={{action \\\"updateAwardTitleAction\\\" value=\\\"target.value\\\"}} data-test-award-title />\\n\\n<div class=\\\"help-block help-block-fragment award-title-field}}\\\">\\n  The human readable title or name of the award (grant).\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"award-uri\\\" class=\\\"subtitle\\\">Award URI</label>\\n</div>\\n\\n<input type=\\\"text\\\" class=\\\"form-control award-uri-field\\\" value={{this.fragment.awardUri}} placeholder=\\\"Award URI\\\"\\n  oninput={{action \\\"updateAwardUriAction\\\" value=\\\"target.value\\\"}} data-test-award-uri />\\n\\n<div class=\\\"help-block help-block-fragment award-uri-field\\\">\\n  The URI leading to a page provided by the funder for more information about the award (grant). For example, <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://www.moore.org/grants/list/GBMF3859.01\\\">https://www.moore.org/grants/list/GBMF3859.01</a>.\\n</div>\\n\\n<hr />\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-funding-reference.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-funding-reference.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport { isBlank } from '@ember/utils';\n\nconst funderIdentifierTypeList = [\n  'Crossref Funder ID',\n  'GRID',\n  'ISNI',\n  'ROR',\n  'Other'\n];\n\n@classic\nexport default class DoiFundingReference extends Component {\n  funderIdentifierTypeList = funderIdentifierTypeList;\n  funderIdentifierTypes = funderIdentifierTypeList;\n  isCrossrefId = false;\n\n  @service\n  store;\n\n  init(...args) {\n    super.init(...args);\n\n    this.selected = this.selected || [];\n    this.funders = this.funders || [];\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (funderIdentifierTypeList.includes(this.fragment.get('subject'))) {\n      this.set('isCrossrefId', true);\n    } else {\n      this.set('isCrossrefId', false);\n    }\n  }\n\n  updateFunderSchemeAndType(scheme) {\n    switch (scheme) {\n      case scheme == 'ROR':\n        this.fragment.set('funderIdentifierType', 'ROR');\n        break;\n      case scheme == 'Crossref Funder ID':\n        this.fragment.set('funderIdentifierType', 'Crossref Funder ID');\n        break;\n      case scheme == 'GRID':\n        this.fragment.set('relatedIdentifierType', 'GRID');\n        break;\n      case scheme == 'ISNI':\n        this.fragment.set('funderIdentifierType', 'ISNI');\n        break;\n      default:\n        this.fragment.set('funderIdentifierType', 'Other');\n        break;\n    }\n  }\n\n  updateFunderReference(funder) {\n    switch (true) {\n      case funder === null:\n        this.fragment.set('funderIdentifierType', 'Other');\n        this.fragment.set('funderIdentifier', null);\n        this.fragment.set('funderName', null);\n        this.updateFunderSchemeAndType(null);\n        this.set('isCrossrefId', false);\n        break;\n      case typeof funder == 'string':\n        this.fragment.set('funderIdentifierType', 'Other');\n        this.fragment.set('funderIdentifier', null);\n        this.fragment.set('funderName', funder);\n        this.updateFunderSchemeAndType(null);\n        this.set('isCrossrefId', false);\n        break;\n      default:\n        this.fragment.set('funderName', funder.name);\n        this.fragment.set('funderIdentifierType', 'Crossref Funder ID');\n        this.fragment.set(\n          'schemeUri',\n          'https://www.crossref.org/services/funder-registry/'\n        );\n        this.fragment.set('funderIdentifier', 'https://doi.org/' + funder.id);\n        this.set('isCrossrefId', true);\n        break;\n    }\n  }\n\n  @action\n  createOnEnterAction(select, e) {\n    if (\n      e.keyCode === 13 &&\n      select.isOpen &&\n      !select.highlighted &&\n      !isBlank(select.searchText)\n    ) {\n      if (!this.selected.includes(select.searchText)) {\n        this.funderIdentifierTypes.push(select.searchText);\n        select.actions.choose(select.searchText);\n        this.fragment.set('funderName', select.searchText);\n        this.fragment.set('funderIdentifierType', 'Other');\n        this.set('funderIdentifierTypes', funderIdentifierTypeList);\n      }\n    }\n  }\n\n  @action\n  updateFunderIdentifierAction(value) {\n    this.fragment.set('funderIdentifier', value);\n  }\n\n  @action\n  selectFunderReferenceAction(value) {\n    this.updateFunderReference(value);\n  }\n\n  @action\n  updateFunderNameAction(value) {\n    this.fragment.set('funderName', value);\n  }\n\n  @action\n  selectFunderIdentifierTypeAction(value) {\n    this.fragment.set('funderIdentifierType', value);\n  }\n\n  @action\n  updateSchemeUri(value) {\n    this.fragment.set('schemeUri', value);\n  }\n\n  @action\n  updateAwardNumberAction(value) {\n    this.fragment.set('awardNumber', value);\n  }\n\n  @action\n  updateAwardTitleAction(value) {\n    this.fragment.set('awardTitle', value);\n  }\n\n  @action\n  updateAwardUriAction(value) {\n    this.fragment.set('awardUri', value);\n  }\n\n  @action\n  deleteFundingReferenceAction() {\n    this.model.get('fundingReferences').removeObject(this.fragment);\n  }\n\n  @action\n  searchFundingReferencesAction(query) {\n    let self = this;\n    this.store\n      .query('funder', { query })\n      .then(function (funders) {\n        funders = funders.sortBy('name')\n        self.set('funders', funders);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return [];\n      });\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\" data-test-funding-references>\\n  <label class=\\\"control-label col-md-3\\\">Funding References</label>\\n  <div class=\\\"col-md-9 compact-select\\\">\\n    <div class=\\\"label-vertical\\\">Information about financial support (funding) for the resource being registered.</div>\\n    {{#if this.showFundingReferences}}\\n      {{#each this.model.fundingReferences as |fundingReference index|}}\\n        <DoiFundingReference @model={{this.model}} @fragment={{fundingReference}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n    {{#if (lte this.model.fundingReferences.length 4)}}\\n      <BsButton id=\\\"add-funding-reference\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addFundingReference\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.fundingReferences.length 0) \\\"another \\\"}}funding reference</BsButton>\\n    {{/if}}\\n\\n      {{#if (gt this.model.fundingReferences.length 0)}}\\n        <BsButton id=\\\"toggle-funding-references\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleFundingReferences\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.fundingReferences.length 'funding reference'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.fundingReferences.length 0)}}\\n        <BsButton id=\\\"toggle-funding-references\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleFundingReferences\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.fundingReferences.length 'funding reference'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-funding-reference\\\" @outline={{true}} @onClick={{action \\\"addFundingReference\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add funding reference</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"form-group\\\" data-test-funding-references>\\n  <label class=\\\"control-label col-md-3\\\">Funding References</label>\\n  <div class=\\\"col-md-9 compact-select\\\">\\n    <div class=\\\"label-vertical\\\">Information about financial support (funding) for the resource being registered.</div>\\n    {{#if this.showFundingReferences}}\\n      {{#each this.model.fundingReferences as |fundingReference index|}}\\n        <DoiFundingReference @model={{this.model}} @fragment={{fundingReference}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n    {{#if (lte this.model.fundingReferences.length 4)}}\\n      <BsButton id=\\\"add-funding-reference\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addFundingReference\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.fundingReferences.length 0) \\\"another \\\"}}funding reference</BsButton>\\n    {{/if}}\\n\\n      {{#if (gt this.model.fundingReferences.length 0)}}\\n        <BsButton id=\\\"toggle-funding-references\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleFundingReferences\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.fundingReferences.length 'funding reference'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.fundingReferences.length 0)}}\\n        <BsButton id=\\\"toggle-funding-references\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleFundingReferences\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.fundingReferences.length 'funding reference'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-funding-reference\\\" @outline={{true}} @onClick={{action \\\"addFundingReference\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add funding reference</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/doi-funding-references.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-funding-references.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiFundingReferences extends Component {\n  showFundingReferences = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('fundingReferences')) {\n      this.model.set('fundingReferences', []);\n    }\n  }\n\n  @action\n  addFundingReference() {\n    this.model.get('fundingReferences').createFragment();\n    this.set('showFundingReferences', true);\n  }\n\n  @action\n  toggleFundingReferences() {\n    this.set('showFundingReferences', !this.showFundingReferences);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<label for=\\\"geoLocationPlace\\\" class=\\\"subtitle\\\">Geolocation Place</label>\\n<div class=\\\"input-group\\\">\\n  <input placeholder=\\\"Geolocation Place\\\" class=\\\"form-control geo-location-place-field\\\" value={{this.fragment.geoLocationPlace}}\\n    oninput={{action \\\"updateGeoLocationPlace\\\" value=\\\"target.value\\\"}} data-test-geo-location-place/>    \\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteGeoLocation\\\" this.index}} data-test-delete-rights><i class=\\\"fas fa-trash\\\"></i> </BsButton >\\n  </span>\\n</div>\\n<div class=\\\"help-block help-block-fragment geo-location-place-field\\\">Description of a geographic location.</div>\\n\\n<label for=\\\"geoLocationPoint\\\" class=\\\"subtitle\\\">Geolocation Point</label>\\n\\n<input placeholder=\\\"Geolocation Point Longitude\\\" helpText=\\\"Longitudinal dimension of point.\\\" class=\\\"form-control geo-location-point-longitude-field\\\" value={{this.fragment.geoLocationPoint.pointLongitude}} \\n    oninput={{action \\\"updateGeoLocationPointLongitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-point-longitude/>\\n\\n<input placeholder=\\\"Geolocation Point Latitude\\\" helpText=\\\"Longitudinal dimension of point.\\\" class=\\\"form-control geo-location-point-latitude-field\\\" value={{this.fragment.geoLocationPoint.pointLatitude}} \\n    oninput={{action \\\"updateGeoLocationPointLatitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-point-latitude/>\\n\\n<div class=\\\"help-block help-block-fragment geo-location-point-field}}\\\">\\n  A point location in space. A point contains a single longitude-latitude pair.\\n  <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/schema-optional-properties-v43#section-18-1-geo-location-point\\\">More ..</a>\\n</div>\\n\\n<label for=\\\"geoLocationPlace\\\" class=\\\"subtitle\\\">Geolocation Box</label>\\n\\n<input placeholder=\\\"Geolocation Box West Longitude\\\" helpText=\\\"Longitudinal dimension of point.\\\" class=\\\"form-control geo-location-box-westBoundLongitude-field\\\" value={{this.fragment.geoLocationBox.westBoundLongitude}} \\n    oninput={{action \\\"updateGeoLocationBoxWestLongitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-box-westBoundLongitude/>\\n\\n<input placeholder=\\\"Geolocation Box East Longitude\\\" helpText=\\\"Longitudinal dimension of box.\\\" class=\\\"form-control geo-location-box-eastBoundLongitude-field\\\" value={{this.fragment.geoLocationBox.eastBoundLongitude}} \\n    oninput={{action \\\"updateGeoLocationBoxEastLongitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-box-eastBoundLongitude/>\\n\\n<input placeholder=\\\"Geolocation Box North Latitude\\\" helpText=\\\"Longitudinal dimension of box.\\\" class=\\\"form-control geo-location-box-northBoundLatitude-field\\\" value={{this.fragment.geoLocationBox.northBoundLatitude}} \\n    oninput={{action \\\"updateGeoLocationBoxNorthLatitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-box-northBoundLatitude/>\\n\\n<input placeholder=\\\"Geolocation Box South Latitude\\\" helpText=\\\"Longitudinal dimension of box.\\\" class=\\\"form-control geo-location-box-southBoundLatitude-field\\\" value={{this.fragment.geoLocationBox.southBoundLatitude}} \\n    oninput={{action \\\"updateGeoLocationBoxSouthLatitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-point-southBoundLatitude/>\\n\\n<div class=\\\"help-block help-block-fragment geo-location-box-field}}\\\">\\n  The spatial limits of a box. A box is defined by two geographic points. Left low corner and right upper corner. Each point is defined by its longitude and latitude.\\n  <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/schema-optional-properties-v43#section-18-2-geo-location-box\\\">More ..</a>\\n</div>\\n<hr />\\n\", {\"contents\":\"<label for=\\\"geoLocationPlace\\\" class=\\\"subtitle\\\">Geolocation Place</label>\\n<div class=\\\"input-group\\\">\\n  <input placeholder=\\\"Geolocation Place\\\" class=\\\"form-control geo-location-place-field\\\" value={{this.fragment.geoLocationPlace}}\\n    oninput={{action \\\"updateGeoLocationPlace\\\" value=\\\"target.value\\\"}} data-test-geo-location-place/>    \\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteGeoLocation\\\" this.index}} data-test-delete-rights><i class=\\\"fas fa-trash\\\"></i> </BsButton >\\n  </span>\\n</div>\\n<div class=\\\"help-block help-block-fragment geo-location-place-field\\\">Description of a geographic location.</div>\\n\\n<label for=\\\"geoLocationPoint\\\" class=\\\"subtitle\\\">Geolocation Point</label>\\n\\n<input placeholder=\\\"Geolocation Point Longitude\\\" helpText=\\\"Longitudinal dimension of point.\\\" class=\\\"form-control geo-location-point-longitude-field\\\" value={{this.fragment.geoLocationPoint.pointLongitude}} \\n    oninput={{action \\\"updateGeoLocationPointLongitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-point-longitude/>\\n\\n<input placeholder=\\\"Geolocation Point Latitude\\\" helpText=\\\"Longitudinal dimension of point.\\\" class=\\\"form-control geo-location-point-latitude-field\\\" value={{this.fragment.geoLocationPoint.pointLatitude}} \\n    oninput={{action \\\"updateGeoLocationPointLatitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-point-latitude/>\\n\\n<div class=\\\"help-block help-block-fragment geo-location-point-field}}\\\">\\n  A point location in space. A point contains a single longitude-latitude pair.\\n  <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/schema-optional-properties-v43#section-18-1-geo-location-point\\\">More ..</a>\\n</div>\\n\\n<label for=\\\"geoLocationPlace\\\" class=\\\"subtitle\\\">Geolocation Box</label>\\n\\n<input placeholder=\\\"Geolocation Box West Longitude\\\" helpText=\\\"Longitudinal dimension of point.\\\" class=\\\"form-control geo-location-box-westBoundLongitude-field\\\" value={{this.fragment.geoLocationBox.westBoundLongitude}} \\n    oninput={{action \\\"updateGeoLocationBoxWestLongitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-box-westBoundLongitude/>\\n\\n<input placeholder=\\\"Geolocation Box East Longitude\\\" helpText=\\\"Longitudinal dimension of box.\\\" class=\\\"form-control geo-location-box-eastBoundLongitude-field\\\" value={{this.fragment.geoLocationBox.eastBoundLongitude}} \\n    oninput={{action \\\"updateGeoLocationBoxEastLongitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-box-eastBoundLongitude/>\\n\\n<input placeholder=\\\"Geolocation Box North Latitude\\\" helpText=\\\"Longitudinal dimension of box.\\\" class=\\\"form-control geo-location-box-northBoundLatitude-field\\\" value={{this.fragment.geoLocationBox.northBoundLatitude}} \\n    oninput={{action \\\"updateGeoLocationBoxNorthLatitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-box-northBoundLatitude/>\\n\\n<input placeholder=\\\"Geolocation Box South Latitude\\\" helpText=\\\"Longitudinal dimension of box.\\\" class=\\\"form-control geo-location-box-southBoundLatitude-field\\\" value={{this.fragment.geoLocationBox.southBoundLatitude}} \\n    oninput={{action \\\"updateGeoLocationBoxSouthLatitude\\\" value=\\\"target.value\\\"}} data-test-geo-location-point-southBoundLatitude/>\\n\\n<div class=\\\"help-block help-block-fragment geo-location-box-field}}\\\">\\n  The spatial limits of a box. A box is defined by two geographic points. Left low corner and right upper corner. Each point is defined by its longitude and latitude.\\n  <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/schema-optional-properties-v43#section-18-2-geo-location-box\\\">More ..</a>\\n</div>\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-geo-location.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-geo-location.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiGeoLocation extends Component {\n  @action\n  updateGeoLocationPlace(value) {\n    this.fragment.set('geoLocationPlace', value);\n  }\n\n  @action\n  updateGeoLocationPointLongitude(value) {\n    this.fragment.set('geoLocationPoint.pointLongitude', value);\n  }\n\n  @action\n  updateGeoLocationPointLatitude(value) {\n    this.fragment.set('geoLocationPoint.pointLatitude', value);\n  }\n\n  @action\n  updateGeoLocationBoxWestLongitude(value) {\n    this.fragment.set('geoLocationBox.westBoundLongitude', value);\n  }\n\n  @action\n  updateGeoLocationBoxEastLongitude(value) {\n    this.fragment.set('geoLocationBox.eastBoundLongitude', value);\n  }\n\n  @action\n  updateGeoLocationBoxNorthLatitude(value) {\n    this.fragment.set('geoLocationBox.northBoundLatitude', value);\n  }\n\n  @action\n  updateGeoLocationBoxSouthLatitude(value) {\n    this.fragment.set('geoLocationBox.southBoundLatitude', value);\n  }\n\n  @action\n  deleteGeoLocation() {\n    this.model.get('geoLocations').removeObject(this.fragment);\n  }\n}\n// updateGeoLocationPointLongitude\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-geolocations>Geolocations</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Spatial region or named place where the data was gathered or about which the resource is focused.</div>\\n    {{#if this.showGeoLocations}}\\n      {{#each this.model.geoLocations as |geoLocation index|}}\\n        <DoiGeoLocation @model={{this.model}} @fragment={{geoLocation}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.geoLocations.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-geolocation\\\" @outline={{true}} @onClick={{action \\\"addGeoLocation\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.geoLocations.length 0) \\\"another \\\"}}geolocation</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.geoLocations.length 0)}}\\n        <BsButton id=\\\"toggle-geolocations\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleGeoLocations\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.geoLocations.length 'geolocation'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.geoLocations.length 0)}}\\n        <BsButton id=\\\"toggle-geolocations\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleGeoLocations\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.geoLocations.length 'geolocation'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning btn-warning\\\" id=\\\"add-geolocation\\\" @outline={{true}} @onClick={{action \\\"addGeoLocation\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add geolocation</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-geolocations>Geolocations</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Spatial region or named place where the data was gathered or about which the resource is focused.</div>\\n    {{#if this.showGeoLocations}}\\n      {{#each this.model.geoLocations as |geoLocation index|}}\\n        <DoiGeoLocation @model={{this.model}} @fragment={{geoLocation}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.geoLocations.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-geolocation\\\" @outline={{true}} @onClick={{action \\\"addGeoLocation\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.geoLocations.length 0) \\\"another \\\"}}geolocation</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.geoLocations.length 0)}}\\n        <BsButton id=\\\"toggle-geolocations\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleGeoLocations\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.geoLocations.length 'geolocation'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.geoLocations.length 0)}}\\n        <BsButton id=\\\"toggle-geolocations\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleGeoLocations\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.geoLocations.length 'geolocation'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning btn-warning\\\" id=\\\"add-geolocation\\\" @outline={{true}} @onClick={{action \\\"addGeoLocation\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add geolocation</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-geo-locations.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-geo-locations.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiGeoLocations extends Component {\n  showGeoLocations = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('geoLocations')) {\n      this.model.set('geoLocations', []);\n    }\n  }\n\n  @action\n  addGeoLocation() {\n    this.model.get('geoLocations').createFragment();\n    this.set('showGeoLocations', true);\n  }\n\n  @action\n  toggleGeoLocations() {\n    this.set('showGeoLocations', !this.showGeoLocations);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"  <h3 class=\\\"member-results\\\">Link Checker</h3>\\n  <div class=\\\"clearfix\\\"/>\\n\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\">\\n      The URL <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{this.model.url}}\\\">{{this.model.url}}</a> registered for\\n      this DOI was last checked <strong>{{moment-from this.model.landingPage.checked }}</strong> on \\n      {{format-time this.model.landingPage.checked year='numeric' month='long' day='numeric'}}.\\n\\n      <ul class=\\\"checkbox\\\">\\n        <li>\\n          {{#if this.isFound.isChecked}}\\n            <i class=\\\"far fa-check-circle\\\"></i>\\n            {{this.isFound.text}}\\n            <div class=\\\"help-block checkbox-list\\\">{{{this.isFound.helpText}}}</div>\\n          {{else}}\\n            <i class=\\\"far fa-circle\\\"></i>\\n            {{this.isFound.text}}\\n            <div class=\\\"help-block checkbox-list text-warning\\\">{{{this.isFound.helpText}}}</div>\\n          {{/if}}\\n        </li>\\n        {{#if this.isFound.isChecked}}\\n          <li>\\n            {{#if this.hasLandingPage.isChecked}}\\n              <i class=\\\"far fa-check-circle\\\"></i>\\n              {{this.hasLandingPage.text}}\\n              <div class=\\\"help-block checkbox-list\\\">{{{this.hasLandingPage.helpText}}}</div>\\n            {{else}}\\n              <i class=\\\"far fa-circle\\\"></i>\\n              {{this.hasLandingPage.text}}\\n              <div class=\\\"help-block checkbox-list text-warning\\\">{{{this.hasLandingPage.helpText}}}</div>\\n            {{/if}}\\n          </li>\\n          <li>\\n            {{#if this.hasDoi.isChecked}}\\n              <i class=\\\"far fa-check-circle\\\"></i>\\n              {{this.hasDoi.text}}\\n              <div class=\\\"help-block checkbox-list\\\">{{{this.hasDoi.helpText}}}</div>\\n            {{else}}\\n              <i class=\\\"far fa-circle\\\"></i>\\n              {{this.hasDoi.text}}\\n              <div class=\\\"help-block checkbox-list text-warning\\\">{{{this.hasDoi.helpText}}}</div>\\n            {{/if}}\\n          </li>\\n          {{#if (eq this.model.types.resourceTypeGeneral 'Dataset')}}\\n            <li>\\n              {{#if this.hasSchemaOrg.isChecked}}\\n                <i class=\\\"far fa-check-circle\\\"></i>\\n                {{this.hasSchemaOrg.text}}\\n                <div class=\\\"help-block checkbox-list\\\">{{{this.hasSchemaOrg.helpText}}}</div>\\n              {{else}}\\n                <i class=\\\"far fa-circle\\\"></i>\\n                {{this.hasSchemaOrg.text}}\\n                <div class=\\\"help-block checkbox-list text-warning\\\">{{{this.hasSchemaOrg.helpText}}}</div>\\n              {{/if}}\\n            </li>\\n          {{/if}}\\n        {{/if}}\\n      </ul>\\n    </div>\\n  </div>\", {\"contents\":\"  <h3 class=\\\"member-results\\\">Link Checker</h3>\\n  <div class=\\\"clearfix\\\"/>\\n\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\">\\n      The URL <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{this.model.url}}\\\">{{this.model.url}}</a> registered for\\n      this DOI was last checked <strong>{{moment-from this.model.landingPage.checked }}</strong> on \\n      {{format-time this.model.landingPage.checked year='numeric' month='long' day='numeric'}}.\\n\\n      <ul class=\\\"checkbox\\\">\\n        <li>\\n          {{#if this.isFound.isChecked}}\\n            <i class=\\\"far fa-check-circle\\\"></i>\\n            {{this.isFound.text}}\\n            <div class=\\\"help-block checkbox-list\\\">{{{this.isFound.helpText}}}</div>\\n          {{else}}\\n            <i class=\\\"far fa-circle\\\"></i>\\n            {{this.isFound.text}}\\n            <div class=\\\"help-block checkbox-list text-warning\\\">{{{this.isFound.helpText}}}</div>\\n          {{/if}}\\n        </li>\\n        {{#if this.isFound.isChecked}}\\n          <li>\\n            {{#if this.hasLandingPage.isChecked}}\\n              <i class=\\\"far fa-check-circle\\\"></i>\\n              {{this.hasLandingPage.text}}\\n              <div class=\\\"help-block checkbox-list\\\">{{{this.hasLandingPage.helpText}}}</div>\\n            {{else}}\\n              <i class=\\\"far fa-circle\\\"></i>\\n              {{this.hasLandingPage.text}}\\n              <div class=\\\"help-block checkbox-list text-warning\\\">{{{this.hasLandingPage.helpText}}}</div>\\n            {{/if}}\\n          </li>\\n          <li>\\n            {{#if this.hasDoi.isChecked}}\\n              <i class=\\\"far fa-check-circle\\\"></i>\\n              {{this.hasDoi.text}}\\n              <div class=\\\"help-block checkbox-list\\\">{{{this.hasDoi.helpText}}}</div>\\n            {{else}}\\n              <i class=\\\"far fa-circle\\\"></i>\\n              {{this.hasDoi.text}}\\n              <div class=\\\"help-block checkbox-list text-warning\\\">{{{this.hasDoi.helpText}}}</div>\\n            {{/if}}\\n          </li>\\n          {{#if (eq this.model.types.resourceTypeGeneral 'Dataset')}}\\n            <li>\\n              {{#if this.hasSchemaOrg.isChecked}}\\n                <i class=\\\"far fa-check-circle\\\"></i>\\n                {{this.hasSchemaOrg.text}}\\n                <div class=\\\"help-block checkbox-list\\\">{{{this.hasSchemaOrg.helpText}}}</div>\\n              {{else}}\\n                <i class=\\\"far fa-circle\\\"></i>\\n                {{this.hasSchemaOrg.text}}\\n                <div class=\\\"help-block checkbox-list text-warning\\\">{{{this.hasSchemaOrg.helpText}}}</div>\\n              {{/if}}\\n            </li>\\n          {{/if}}\\n        {{/if}}\\n      </ul>\\n    </div>\\n  </div>\",\"moduleName\":\"bracco/components/doi-health.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-health.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { w } from '@ember/string';\nimport { A } from '@ember/array';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiHealth extends Component {\n  isFound = null;\n  hasLandingPage = null;\n  hasDoi = null;\n  hasSchemaOrg = null;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (this.model.get('landingPage').status == 200) {\n      let redirectText = 'resolved ';\n      if (this.model.get('landingPage').redirectCount > 1) {\n        let redirectUrls = this.model\n          .get('landingPage')\n          .redirectUrls.join(', ');\n        redirectText =\n          'redirected <strong>' +\n          this.model.get('landingPage').redirectCount +\n          ' </strong> times (' +\n          redirectUrls +\n          '), and resolved to <a href=\"' +\n          this.model.get('landingPage').url +\n          '\">' +\n          this.model.get('landingPage').url +\n          '</a> ';\n      } else if (this.model.get('landingPage').redirectCount > 0) {\n        redirectText =\n          'redirected <strong>once</strong>, and resolved to <a href=\"' +\n          this.model.get('landingPage').url +\n          '\">' +\n          this.model.get('landingPage').url +\n          '</a> ';\n      }\n      this.set('isFound', {\n        text: 'The URL resolves properly.',\n        helpText:\n          'The link check ' +\n          redirectText +\n          'with HTTP status code <strong>' +\n          this.model.get('landingPage').status +\n          '</strong>.',\n        isChecked: true\n      });\n    } else {\n      this.set('isFound', {\n        text: 'The URL resolves properly.',\n        helpText:\n          'The link check returned the HTTP status code <strong>' +\n          this.model.get('landingPage').status +\n          '</strong>. This can be a temporal problem and we will repeat the link check.',\n        isChecked: false\n      });\n    }\n    let contentType = this.model.get('landingPage').contentType;\n    if (contentType) {\n      contentType = A(contentType.split(';')).get('firstObject').trim();\n    } else {\n      contentType = 'unknown';\n    }\n    if (w('text/html application/json').includes(contentType)) {\n      this.set('hasLandingPage', {\n        text: 'The URL resolves to a landing page.',\n        helpText:\n          'The link check returned the HTTP content type <strong>' +\n          contentType +\n          '</strong>.',\n        isChecked: true\n      });\n    } else {\n      this.set('hasLandingPage', {\n        text: 'The URL resolves to a landing page.',\n        helpText:\n          'The link check returned the HTTP content type <strong>' +\n          contentType +\n          '</strong>. We recommend to have the URL resolve to a page of content type <strong>text/html</strong>.',\n        isChecked: false\n      });\n    }\n    if (this.model.get('landingPage').bodyHasPid) {\n      this.set('hasDoi', {\n        text: 'The landing page includes the DOI.',\n        helpText: 'The link check found the DOI in the landing page HTML.',\n        isChecked: true\n      });\n    } else {\n      this.set('hasDoi', {\n        text: 'The landing page includes the DOI.',\n        helpText:\n          'The link check did not find the DOI in the landing page HTML.',\n        isChecked: false\n      });\n    }\n    if (this.model.get('landingPage').hasSchemaOrg) {\n      this.set('hasSchemaOrg', {\n        text: 'The landing page includes metadata in schema.org format.',\n        helpText:\n          'The link check found embedded JSON-LD with @context <strong>\"http://schema.org\"</strong>.',\n        isChecked: true\n      });\n    } else {\n      this.set('hasSchemaOrg', {\n        text: 'The landing page includes metadata in schema.org format.',\n        helpText:\n          'The link check found no embedded JSON-LD with @context <strong>\"http://schema.org\"</strong>. Please reach out to DataCite Support if we missed embedded schema.org metadata.',\n        isChecked: false\n      });\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div\\n  class='form-group\\n    {{if (v-get this.model \\\"language\\\" \\\"isInvalid\\\") \\\"has-error\\\" \\\"has-feedback\\\"}}'\\n>\\n  <label class='control-label col-md-3'>Language</label>\\n  <div class='col-md-9'>\\n    <div class='label-vertical'>The primary language of the resource.</div>\\n    <div class='power-select-fragment' doi-language>\\n      <@form.element @controlType=\\\"power-select\\\" id=\\\"doi-language\\\" @formLayout=\\\"vertical\\\" @value={{this.language}} @options={{this.languages}} @helpText=\\\"The default Language vocabulary is provided by ISO 639-1. Any new language should be provided using two-letter or three-letter language codes.\\\" as |el|>\\n        <el.control @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Search standard format OR add a new Language code\\\" @onKeydown={{action \\\"createOnEnter\\\"}} @searchPlaceholder=\\\"Type to search...\\\" @noMatchesMessage=\\\"Press ENTER to add a new Language code.\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} @ />\\n        {{#if (v-get this.model 'language' 'isInvalid')}}\\n          <div class='invalid-feedback d-block'>{{v-get this.model 'language' 'message'}}</div>\\n        {{/if}}\\n      </@form.element>\\n    </div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div\\n  class='form-group\\n    {{if (v-get this.model \\\"language\\\" \\\"isInvalid\\\") \\\"has-error\\\" \\\"has-feedback\\\"}}'\\n>\\n  <label class='control-label col-md-3'>Language</label>\\n  <div class='col-md-9'>\\n    <div class='label-vertical'>The primary language of the resource.</div>\\n    <div class='power-select-fragment' doi-language>\\n      <@form.element @controlType=\\\"power-select\\\" id=\\\"doi-language\\\" @formLayout=\\\"vertical\\\" @value={{this.language}} @options={{this.languages}} @helpText=\\\"The default Language vocabulary is provided by ISO 639-1. Any new language should be provided using two-letter or three-letter language codes.\\\" as |el|>\\n        <el.control @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Search standard format OR add a new Language code\\\" @onKeydown={{action \\\"createOnEnter\\\"}} @searchPlaceholder=\\\"Type to search...\\\" @noMatchesMessage=\\\"Press ENTER to add a new Language code.\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} @ />\\n        {{#if (v-get this.model 'language' 'isInvalid')}}\\n          <div class='invalid-feedback d-block'>{{v-get this.model 'language' 'message'}}</div>\\n        {{/if}}\\n      </@form.element>\\n    </div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-language.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-language.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport Component from '@ember/component';\nimport ISO6391 from 'iso-639-1';\nimport { isBlank } from '@ember/utils';\n\nconst languageList = ISO6391.getAllNames();\n\n@classic\nexport default class DoiLanguage extends Component {\n  languageList = languageList;\n  languages = languageList;\n\n  @computed('model.language')\n  get language() {\n    return ISO6391.getName(this.get('model.language')) !== ''\n      ? ISO6391.getName(this.get('model.language'))\n      : this.get('model.language');\n  }\n\n  init(...args) {\n    super.init(...args);\n    this.selected = this.selected || [];\n  }\n\n  setLanguage(language) {\n    if (language ? ISO6391.getCode(language) : null) {\n      this.model.set('language', ISO6391.getCode(language));\n    } else if (language) {\n      this.model.set('language', language);\n    } else {\n      this.model.set('language', null);\n    }\n  }\n\n  @action\n  createOnEnter(select, e) {\n    if (\n      e.keyCode === 13 &&\n      select.isOpen &&\n      !select.highlighted &&\n      !isBlank(select.searchText)\n    ) {\n      if (!this.selected.includes(select.searchText)) {\n        this.setLanguage(select.searchText);\n        this.languageList.push(select.searchText);\n        select.actions.choose(select.searchText);\n      }\n    }\n  }\n\n  @action\n  searchLanguage(query) {\n    let languages = languageList.filter(function (language) {\n      return language.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('languages', languages);\n  }\n\n  @action\n  selectLanguage(language) {\n    this.setLanguage(language);\n    this.set('languages', this.languageList);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div data-test-left-sidebar class=\\\"col-md-3\\\">\\n  {{#unless (and (can 'create doi' this.model) (can 'upload doi' this.model))}}\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n          <BsAlert @dismissible={{false}} @type=\\\"warning\\\" id=\\\"no-doi-permissions\\\">\\n            {{#if this.repository}}\\n              Sign in with the <b>{{this.repository.symbol}}</b> Repository account to create and update DOIs in this Repository.\\n            {{else}}\\n              Sign in with a Repository account to create and update DOIs.\\n            {{/if}}\\n            <a href=\\\"https://support.datacite.org/docs/why-cant-i-see-the-option-to-create-or-update-dois-when-i-log-into-fabrica\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">\\n              Learn more...\\n            </a>\\n          </BsAlert>\\n      </div>\\n    </div>\\n  {{/unless}}\\n\\n  {{#unless (eq this.link 'repositories.show.dois')}}\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <MetadataDashboardButton @dashboardId={{@dashboardId}} />\\n      </div>\\n    </div>\\n  {{/unless}}\\n\\n  {{#if\\n    (eq this.link 'repositories.show.dois')\\n  }}\\n    {{#if this.repository.isActive}}\\n      {{#if (and this.repository.isActive (or (can 'create doi' this.model) (can 'upload doi' this.model)) (not (gt this.repository.meta.prefixCount 0)))}}\\n        <div class=\\\"panel panel-transparent\\\">\\n          <div class=\\\"panel-body\\\">\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              Can't create DOI without a prefix.\\n            </BsAlert>\\n          </div>\\n        </div>\\n      {{/if}}\\n\\n      {{#if (gt this.model.length 0) }} \\n        <div class=\\\"panel facets add-25\\\">\\n          <div class=\\\"panel-body\\\">\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"shrink\\\">\\n                {{#if (and this.repository.isActive (or (can 'create doi' this.model) (can 'upload doi' this.model)) (gt this.repository.meta.prefixCount 0))}}\\n                  <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n                {{/if}}\\n                <MetadataDashboardButton @dashboardId={{@dashboardId}} />\\n                <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n                  <ExportBasicMetadata @model={{this.model}} @client_id={{this.repository.id}} @page={{this.page}} class=\\\"btn btn-warning\\\" />\\n                  {{#if (and (can 'move doi' this.repository))}} \\n                    <LinkTo\\n                      @route=\\\"repositories.show.transfer\\\"\\n                      @model={{this.repository.id}}\\n                      class=\\\"btn btn-warning\\\"\\n                      id=\\\"transfer-dois\\\"\\n                    >\\n                      <i class=\\\"fas fa-arrow-circle-right\\\"></i>\\n                      Transfer\\n                      {{if this.media.isXl ' DOIs'}}\\n                    </LinkTo>\\n                  {{/if}}\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{else}}\\n        {{#if (and this.repository.isActive (or (can 'create doi' this.model) (can 'upload doi' this.model)) (gt this.repository.meta.prefixCount 0))}}\\n          <div class=\\\"panel facets\\\">\\n            <div class=\\\"panel-body\\\">\\n              <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n              <MetadataDashboardButton @dashboardId={{@dashboardId}} />\\n            </div>\\n          </div>\\n        {{/if}}\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.length 0) }} \\n        <div class=\\\"panel facets add-25\\\">\\n          <div class=\\\"panel-body\\\">\\n            <MetadataDashboardButton @dashboardId={{@dashboardId}} />\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n                <ExportBasicMetadata @model={{this.model}} @client_id={{this.repository.id}} @page={{this.page}} class=\\\"btn btn-warning\\\" />\\n                {{#if (and (can 'move doi' this.repository))}} \\n                  <LinkTo\\n                    @route=\\\"repositories.show.transfer\\\"\\n                    @model={{this.repository.id}}\\n                    class=\\\"btn btn-warning\\\"\\n                    id=\\\"transfer-dois\\\"\\n                  >\\n                    <i class=\\\"fas fa-arrow-circle-right\\\"></i>\\n                    Transfer\\n                    {{if this.media.isXl ' DOIs'}}\\n                  </LinkTo>\\n                {{/if}}\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n  {{/if}}\\n\\n  {{#if (and (can 'viewState doi') (or this.model.meta.states this.model.query.state))}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          State\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.states}}\\n            {{#each this.model.meta.states as |state|}}\\n              <li>\\n                {{#if this.model.query.state}}\\n                  <LinkTo @route={{this.link}} @query={{hash state=null}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash state=state.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{state.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number state.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash state=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{titleize this.model.query.state}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.meta.resourceTypes this.model.query.resource-type-id)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Resource Type\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.resourceTypes}}\\n            {{#each this.model.meta.resourceTypes as |resourceType|}}\\n              <li>\\n                {{#if this.model.query.resource-type-id}}\\n                  <LinkTo @route={{this.link}} @query={{hash resource-type-id=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route={{this.link}}\\n                    @query={{hash resource-type-id=resourceType.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{resourceType.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number resourceType.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash resource-type-id=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{humanize (underscore this.model.query.resource-type-id)}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if this.isResearcherProfile}}\\n    {{#if (or this.model.meta.published this.model.query.published)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Year published\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.published}}\\n              {{#each this.model.meta.published as |year|}}\\n                <li>\\n                  {{#if this.model.query.published}}\\n                    <LinkTo @route={{this.link}} @query={{hash published=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo @route={{this.link}} @query={{hash published=year.id}}>\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{year.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{format-number year.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash published=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.published}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{else if (or this.model.meta.created this.model.query.created)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Year created\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.created}}\\n            {{#each this.model.meta.created as |year|}}\\n              <li>\\n                {{#if this.model.query.created}}\\n                  <LinkTo @route={{this.link}} @query={{hash created=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash created=year.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash created=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.created}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if\\n    (and\\n      (can 'source doi' this.model) (or this.model.meta.registered this.model.query.registered)\\n    )\\n  }}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Year registered\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.registered}}\\n            {{#each this.model.meta.registered as |year|}}\\n              <li>\\n                {{#if this.model.query.registered}}\\n                  <LinkTo @route={{this.link}} @query={{hash registered=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash registered=year.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash registered=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.registered}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n\\n  {{#if\\n    (and\\n      (not (is-empty this.model.content))\\n      (or\\n        (not-eq this.link 'repositories.show.dois')\\n        (not-eq this.model.meta.clients this.model.query.client-id)\\n      )\\n    )\\n  }}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Repository\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.clients}}\\n            {{#each this.model.meta.clients as |client|}}\\n              <li>\\n                {{#if this.model.query.client-id}}\\n                  <LinkTo @route={{this.link}} @query={{hash client-id=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash client-id=client.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{client.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number client.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash client-id=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.client-id}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if\\n    (and\\n      (can 'source doi' this.model)\\n      (or this.model.meta.affiliations this.model.query.affiliation-id)\\n    )\\n  }}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Affiliation\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.affiliations}}\\n            {{#each this.model.meta.affiliations as |affiliation|}}\\n              {{#if (not-eq affiliation.id affiliation.title)}}\\n                <li>\\n                  {{#if this.model.query.affiliation-id}}\\n                    <LinkTo @route={{this.link}} @query={{hash affiliation-id=null}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash affiliation-id=affiliation.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{affiliation.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{format-number affiliation.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/if}}\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash affiliation-id=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.affiliation-id}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#unless this.isResearcherProfile}}\\n    {{#if (or this.model.meta.prefixes this.model.query.prefix)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Prefix\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.prefixes}}\\n              {{#each this.model.meta.prefixes as |prefix|}}\\n                <li>\\n                  {{#if this.model.query.prefix}}\\n                    <LinkTo @route={{this.link}} @query={{hash prefix=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo @route={{this.link}} @query={{hash prefix=prefix.id}}>\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{prefix.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{format-number prefix.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash prefix=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.prefix}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{/unless}}\\n  {{#if (or this.model.meta.certificates this.model.query.certificate)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Repository Certificate\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.certificates}}\\n            {{#each this.model.meta.certificates as |certificate|}}\\n              <li>\\n                {{#if this.model.query.certificate}}\\n                  <LinkTo @route={{this.link}} @query={{hash certificate=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route={{this.link}}\\n                    @query={{hash certificate=certificate.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{certificate.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{certificate.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash certificate=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{titleize this.model.query.certificate}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#unless this.isResearcherProfile}}\\n    {{#if (or this.model.meta.schemaVersions this.model.query.schema-version)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Schema Version\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.schemaVersions}}\\n              {{#each this.model.meta.schemaVersions as |schemaVersion|}}\\n                <li>\\n                  {{#if this.model.query.schema-version}}\\n                    <LinkTo @route={{this.link}} @query={{hash schema-version=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash schema-version=schemaVersion.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{schemaVersion.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{format-number schemaVersion.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash schema-version=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.schema-version}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{/unless}}\\n  {{#if\\n    (and (can 'source doi' this.model) (or this.model.meta.sources this.model.query.source))\\n  }}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Source\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.sources}}\\n            {{#each this.model.meta.sources as |source|}}\\n              <li>\\n                {{#if this.model.query.source}}\\n                  <LinkTo @route={{this.link}} @query={{hash source=null}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash source=source.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{lowercase source.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number source.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash source=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.source}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if\\n    (and\\n      (can 'viewHealth doi' this.model)\\n      (or this.model.meta.linkChecksStatus this.model.query.link-checks-status)\\n    )\\n  }}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Link Check Status\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.linkChecksStatus}}\\n            {{#each this.model.meta.linkChecksStatus as |linkCheckStatus|}}\\n              <li>\\n                {{#if this.model.query.link-check-status}}\\n                  <LinkTo\\n                    @route={{this.link}}\\n                    @query={{hash link-check-status=null}}\\n                  >\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route={{this.link}}\\n                    @query={{hash link-check-status=linkCheckStatus.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{linkCheckStatus.id}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number linkCheckStatus.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash link-check-status=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.link-check-status}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n</div>\\n\\n\\n<div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n  {{#if this.searchable}}\\n    <ModelSearch @model={{this.model}} @link={{this.link}} @sortable={{true}} @placeholder=\\\"Type to search. For example 10.4121/17185607.v1\\\" />\\n  {{/if}}\\n  {{#if this.model}}\\n    {{#each this.model as |doi|}}\\n      <div class=\\\"panel panel-transparent\\\" data-test-doi>\\n        <DoiSummary\\n          @model={{doi}}\\n          @isList={{true}}\\n          @isResearcherProfile={{this.isResearcherProfile}}\\n        />\\n        <div class=\\\"panel-footer\\\">\\n          {{#if doi.isDraft}}\\n            <i class=\\\"fas fa-info-circle\\\"></i>{{doi.doi}}\\n          {{else}}\\n            <a href={{doi.identifier}} data-test-identifier>\\n              <i class=\\\"fas fa-external-link-alt\\\"></i>\\n              {{doi.identifier}}\\n            </a>\\n          {{/if}}\\n        </div>\\n        <br />\\n      </div>\\n    {{/each}}\\n    <div class=\\\"text-center\\\">\\n      {{#if (gt this.model.meta.totalPages 1)}}\\n        <PageNumbers @model={{this.model}} @link={{this.link}} />\\n      {{/if}}\\n    </div>\\n  {{else}}\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      No DOIs found.\\n    </BsAlert>\\n  {{/if}}\\n</div>\", {\"contents\":\"<div data-test-left-sidebar class=\\\"col-md-3\\\">\\n  {{#unless (and (can 'create doi' this.model) (can 'upload doi' this.model))}}\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n          <BsAlert @dismissible={{false}} @type=\\\"warning\\\" id=\\\"no-doi-permissions\\\">\\n            {{#if this.repository}}\\n              Sign in with the <b>{{this.repository.symbol}}</b> Repository account to create and update DOIs in this Repository.\\n            {{else}}\\n              Sign in with a Repository account to create and update DOIs.\\n            {{/if}}\\n            <a href=\\\"https://support.datacite.org/docs/why-cant-i-see-the-option-to-create-or-update-dois-when-i-log-into-fabrica\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">\\n              Learn more...\\n            </a>\\n          </BsAlert>\\n      </div>\\n    </div>\\n  {{/unless}}\\n\\n  {{#unless (eq this.link 'repositories.show.dois')}}\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <MetadataDashboardButton @dashboardId={{@dashboardId}} />\\n      </div>\\n    </div>\\n  {{/unless}}\\n\\n  {{#if\\n    (eq this.link 'repositories.show.dois')\\n  }}\\n    {{#if this.repository.isActive}}\\n      {{#if (and this.repository.isActive (or (can 'create doi' this.model) (can 'upload doi' this.model)) (not (gt this.repository.meta.prefixCount 0)))}}\\n        <div class=\\\"panel panel-transparent\\\">\\n          <div class=\\\"panel-body\\\">\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              Can't create DOI without a prefix.\\n            </BsAlert>\\n          </div>\\n        </div>\\n      {{/if}}\\n\\n      {{#if (gt this.model.length 0) }} \\n        <div class=\\\"panel facets add-25\\\">\\n          <div class=\\\"panel-body\\\">\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"shrink\\\">\\n                {{#if (and this.repository.isActive (or (can 'create doi' this.model) (can 'upload doi' this.model)) (gt this.repository.meta.prefixCount 0))}}\\n                  <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n                {{/if}}\\n                <MetadataDashboardButton @dashboardId={{@dashboardId}} />\\n                <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n                  <ExportBasicMetadata @model={{this.model}} @client_id={{this.repository.id}} @page={{this.page}} class=\\\"btn btn-warning\\\" />\\n                  {{#if (and (can 'move doi' this.repository))}} \\n                    <LinkTo\\n                      @route=\\\"repositories.show.transfer\\\"\\n                      @model={{this.repository.id}}\\n                      class=\\\"btn btn-warning\\\"\\n                      id=\\\"transfer-dois\\\"\\n                    >\\n                      <i class=\\\"fas fa-arrow-circle-right\\\"></i>\\n                      Transfer\\n                      {{if this.media.isXl ' DOIs'}}\\n                    </LinkTo>\\n                  {{/if}}\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{else}}\\n        {{#if (and this.repository.isActive (or (can 'create doi' this.model) (can 'upload doi' this.model)) (gt this.repository.meta.prefixCount 0))}}\\n          <div class=\\\"panel facets\\\">\\n            <div class=\\\"panel-body\\\">\\n              <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n              <MetadataDashboardButton @dashboardId={{@dashboardId}} />\\n            </div>\\n          </div>\\n        {{/if}}\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.length 0) }} \\n        <div class=\\\"panel facets add-25\\\">\\n          <div class=\\\"panel-body\\\">\\n            <MetadataDashboardButton @dashboardId={{@dashboardId}} />\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n                <ExportBasicMetadata @model={{this.model}} @client_id={{this.repository.id}} @page={{this.page}} class=\\\"btn btn-warning\\\" />\\n                {{#if (and (can 'move doi' this.repository))}} \\n                  <LinkTo\\n                    @route=\\\"repositories.show.transfer\\\"\\n                    @model={{this.repository.id}}\\n                    class=\\\"btn btn-warning\\\"\\n                    id=\\\"transfer-dois\\\"\\n                  >\\n                    <i class=\\\"fas fa-arrow-circle-right\\\"></i>\\n                    Transfer\\n                    {{if this.media.isXl ' DOIs'}}\\n                  </LinkTo>\\n                {{/if}}\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n  {{/if}}\\n\\n  {{#if (and (can 'viewState doi') (or this.model.meta.states this.model.query.state))}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          State\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.states}}\\n            {{#each this.model.meta.states as |state|}}\\n              <li>\\n                {{#if this.model.query.state}}\\n                  <LinkTo @route={{this.link}} @query={{hash state=null}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash state=state.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{state.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number state.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash state=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{titleize this.model.query.state}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.meta.resourceTypes this.model.query.resource-type-id)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Resource Type\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.resourceTypes}}\\n            {{#each this.model.meta.resourceTypes as |resourceType|}}\\n              <li>\\n                {{#if this.model.query.resource-type-id}}\\n                  <LinkTo @route={{this.link}} @query={{hash resource-type-id=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route={{this.link}}\\n                    @query={{hash resource-type-id=resourceType.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{resourceType.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number resourceType.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash resource-type-id=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{humanize (underscore this.model.query.resource-type-id)}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if this.isResearcherProfile}}\\n    {{#if (or this.model.meta.published this.model.query.published)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Year published\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.published}}\\n              {{#each this.model.meta.published as |year|}}\\n                <li>\\n                  {{#if this.model.query.published}}\\n                    <LinkTo @route={{this.link}} @query={{hash published=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo @route={{this.link}} @query={{hash published=year.id}}>\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{year.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{format-number year.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash published=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.published}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{else if (or this.model.meta.created this.model.query.created)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Year created\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.created}}\\n            {{#each this.model.meta.created as |year|}}\\n              <li>\\n                {{#if this.model.query.created}}\\n                  <LinkTo @route={{this.link}} @query={{hash created=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash created=year.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash created=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.created}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if\\n    (and\\n      (can 'source doi' this.model) (or this.model.meta.registered this.model.query.registered)\\n    )\\n  }}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Year registered\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.registered}}\\n            {{#each this.model.meta.registered as |year|}}\\n              <li>\\n                {{#if this.model.query.registered}}\\n                  <LinkTo @route={{this.link}} @query={{hash registered=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash registered=year.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash registered=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.registered}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n\\n  {{#if\\n    (and\\n      (not (is-empty this.model.content))\\n      (or\\n        (not-eq this.link 'repositories.show.dois')\\n        (not-eq this.model.meta.clients this.model.query.client-id)\\n      )\\n    )\\n  }}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Repository\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.clients}}\\n            {{#each this.model.meta.clients as |client|}}\\n              <li>\\n                {{#if this.model.query.client-id}}\\n                  <LinkTo @route={{this.link}} @query={{hash client-id=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash client-id=client.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{client.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number client.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash client-id=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.client-id}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if\\n    (and\\n      (can 'source doi' this.model)\\n      (or this.model.meta.affiliations this.model.query.affiliation-id)\\n    )\\n  }}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Affiliation\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.affiliations}}\\n            {{#each this.model.meta.affiliations as |affiliation|}}\\n              {{#if (not-eq affiliation.id affiliation.title)}}\\n                <li>\\n                  {{#if this.model.query.affiliation-id}}\\n                    <LinkTo @route={{this.link}} @query={{hash affiliation-id=null}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash affiliation-id=affiliation.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{affiliation.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{format-number affiliation.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/if}}\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash affiliation-id=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.affiliation-id}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#unless this.isResearcherProfile}}\\n    {{#if (or this.model.meta.prefixes this.model.query.prefix)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Prefix\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.prefixes}}\\n              {{#each this.model.meta.prefixes as |prefix|}}\\n                <li>\\n                  {{#if this.model.query.prefix}}\\n                    <LinkTo @route={{this.link}} @query={{hash prefix=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo @route={{this.link}} @query={{hash prefix=prefix.id}}>\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{prefix.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{format-number prefix.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash prefix=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.prefix}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{/unless}}\\n  {{#if (or this.model.meta.certificates this.model.query.certificate)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Repository Certificate\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.certificates}}\\n            {{#each this.model.meta.certificates as |certificate|}}\\n              <li>\\n                {{#if this.model.query.certificate}}\\n                  <LinkTo @route={{this.link}} @query={{hash certificate=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route={{this.link}}\\n                    @query={{hash certificate=certificate.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{certificate.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{certificate.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash certificate=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{titleize this.model.query.certificate}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#unless this.isResearcherProfile}}\\n    {{#if (or this.model.meta.schemaVersions this.model.query.schema-version)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Schema Version\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.schemaVersions}}\\n              {{#each this.model.meta.schemaVersions as |schemaVersion|}}\\n                <li>\\n                  {{#if this.model.query.schema-version}}\\n                    <LinkTo @route={{this.link}} @query={{hash schema-version=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash schema-version=schemaVersion.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{schemaVersion.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{format-number schemaVersion.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash schema-version=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.schema-version}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{/unless}}\\n  {{#if\\n    (and (can 'source doi' this.model) (or this.model.meta.sources this.model.query.source))\\n  }}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Source\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.sources}}\\n            {{#each this.model.meta.sources as |source|}}\\n              <li>\\n                {{#if this.model.query.source}}\\n                  <LinkTo @route={{this.link}} @query={{hash source=null}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash source=source.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{lowercase source.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number source.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash source=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.source}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if\\n    (and\\n      (can 'viewHealth doi' this.model)\\n      (or this.model.meta.linkChecksStatus this.model.query.link-checks-status)\\n    )\\n  }}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Link Check Status\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.linkChecksStatus}}\\n            {{#each this.model.meta.linkChecksStatus as |linkCheckStatus|}}\\n              <li>\\n                {{#if this.model.query.link-check-status}}\\n                  <LinkTo\\n                    @route={{this.link}}\\n                    @query={{hash link-check-status=null}}\\n                  >\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route={{this.link}}\\n                    @query={{hash link-check-status=linkCheckStatus.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{linkCheckStatus.id}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{format-number linkCheckStatus.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash link-check-status=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.link-check-status}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n</div>\\n\\n\\n<div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n  {{#if this.searchable}}\\n    <ModelSearch @model={{this.model}} @link={{this.link}} @sortable={{true}} @placeholder=\\\"Type to search. For example 10.4121/17185607.v1\\\" />\\n  {{/if}}\\n  {{#if this.model}}\\n    {{#each this.model as |doi|}}\\n      <div class=\\\"panel panel-transparent\\\" data-test-doi>\\n        <DoiSummary\\n          @model={{doi}}\\n          @isList={{true}}\\n          @isResearcherProfile={{this.isResearcherProfile}}\\n        />\\n        <div class=\\\"panel-footer\\\">\\n          {{#if doi.isDraft}}\\n            <i class=\\\"fas fa-info-circle\\\"></i>{{doi.doi}}\\n          {{else}}\\n            <a href={{doi.identifier}} data-test-identifier>\\n              <i class=\\\"fas fa-external-link-alt\\\"></i>\\n              {{doi.identifier}}\\n            </a>\\n          {{/if}}\\n        </div>\\n        <br />\\n      </div>\\n    {{/each}}\\n    <div class=\\\"text-center\\\">\\n      {{#if (gt this.model.meta.totalPages 1)}}\\n        <PageNumbers @model={{this.model}} @link={{this.link}} />\\n      {{/if}}\\n    </div>\\n  {{else}}\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      No DOIs found.\\n    </BsAlert>\\n  {{/if}}\\n</div>\",\"moduleName\":\"bracco/components/doi-list.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-list.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\n@classNames('row')\nexport default class DoiList extends Component {\n  @service\n  can;\n\n  @computed('data', 'link')\n  get isResearcherProfile() {\n    if (this.data == undefined) {\n      return false;\n    }\n    if (this.link == 'users.show.dois') {\n      return true;\n    } else {\n      return false;\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"row\\\">\\n  <div class=\\\"col-md-9\\\">\\n    <h3 class=\\\"member-results\\\">Media</h3>\\n  </div>\\n</div>\\n<div class=\\\"panel panel-transparent url\\\">\\n  <div class=\\\"panel-body\\\">\\n    {{#if this.model.media}}\\n      {{#each this.model.media as |media|}}\\n        <div class=\\\"row\\\">\\n          <div class=\\\"col-md-2\\\">\\n            <strong><media.media-type /></strong>\\n          </div>\\n          <div class=\\\"col-md-7\\\">\\n            <a href=\\\"{{media.url}}\\\">{{media.url}}</a>\\n          </div>\\n        </div>\\n      {{/each}}\\n    {{else}}\\n      There are no <a href=\\\"https://en.wikipedia.org/wiki/Media_type\\\">media types</a> and corresponding URLs registered for this DOI.\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"row\\\">\\n  <div class=\\\"col-md-9\\\">\\n    <h3 class=\\\"member-results\\\">Media</h3>\\n  </div>\\n</div>\\n<div class=\\\"panel panel-transparent url\\\">\\n  <div class=\\\"panel-body\\\">\\n    {{#if this.model.media}}\\n      {{#each this.model.media as |media|}}\\n        <div class=\\\"row\\\">\\n          <div class=\\\"col-md-2\\\">\\n            <strong><media.media-type /></strong>\\n          </div>\\n          <div class=\\\"col-md-7\\\">\\n            <a href=\\\"{{media.url}}\\\">{{media.url}}</a>\\n          </div>\\n        </div>\\n      {{/each}}\\n    {{else}}\\n      There are no <a href=\\\"https://en.wikipedia.org/wiki/Media_type\\\">media types</a> and corresponding URLs registered for this DOI.\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-media.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-media.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiMedia extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.hasMetadata}}\\n  <div id=\\\"metadata\\\" class=\\\"input-group pull-right\\\">\\n    <select onchange={{action \\\"selectMetadata\\\" value=\\\"target.value\\\"}}>\\n      {{#each-in this.formats as |key value|}}\\n        <option name=\\\"metadata\\\" value={{key}} selected={{eq this.metadata key}}>{{value}}</option>\\n      {{/each-in}}\\n    </select>\\n  </div>\\n  <h3 class=\\\"member-results\\\">Metadata</h3>\\n  <div class=\\\"clearfix\\\"/>\\n\\n  <div class=\\\"panel panel-transparent\\\">\\n    {{#if this.output}}\\n      <div class=\\\"panel-body\\\">\\n        <CodeBlock @class=\\\"metadata\\\" @code=\\\"{{this.output}}\\\" />\\n      </div>\\n    {{else}}\\n      <DoiSummary @model={{this.model}} />\\n      \\n      {{#unless this.model.isDraft}}\\n        <div class=\\\"panel-footer\\\">\\n          <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{this.model.identifier}}><i class=\\\"fas fa-external-link-alt\\\"></i> {{this.model.identifier}}</a>\\n        </div>\\n      {{/unless}}\\n    {{/if}}\\n  </div>\\n{{/if}}\\n\", {\"contents\":\"{{#if this.hasMetadata}}\\n  <div id=\\\"metadata\\\" class=\\\"input-group pull-right\\\">\\n    <select onchange={{action \\\"selectMetadata\\\" value=\\\"target.value\\\"}}>\\n      {{#each-in this.formats as |key value|}}\\n        <option name=\\\"metadata\\\" value={{key}} selected={{eq this.metadata key}}>{{value}}</option>\\n      {{/each-in}}\\n    </select>\\n  </div>\\n  <h3 class=\\\"member-results\\\">Metadata</h3>\\n  <div class=\\\"clearfix\\\"/>\\n\\n  <div class=\\\"panel panel-transparent\\\">\\n    {{#if this.output}}\\n      <div class=\\\"panel-body\\\">\\n        <CodeBlock @class=\\\"metadata\\\" @code=\\\"{{this.output}}\\\" />\\n      </div>\\n    {{else}}\\n      <DoiSummary @model={{this.model}} />\\n      \\n      {{#unless this.model.isDraft}}\\n        <div class=\\\"panel-footer\\\">\\n          <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{this.model.identifier}}><i class=\\\"fas fa-external-link-alt\\\"></i> {{this.model.identifier}}</a>\\n        </div>\\n      {{/unless}}\\n    {{/if}}\\n  </div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/doi-metadata.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-metadata.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { tagName } from '@ember-decorators/component';\nimport { inject as service } from '@ember/service';\nimport fetch from 'fetch';\nimport Component from '@ember/component';\nimport { isPresent } from '@ember/utils';\nimport vkbeautify from 'vkbeautify';\nimport ENV from 'bracco/config/environment';\nimport { UploadFile, UploadFileReader } from 'ember-file-upload';\n\n@classic\n@tagName('div')\nexport default class DoiMetadata extends Component {\n  @service\n  currentUser;\n\n  hasMetadata = false;\n  metadata = null;\n  output = null;\n  summary = true;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    // show metadata if at least one of these attributes is set\n    if (\n      isPresent(this.get('model.publicationYear')) ||\n      isPresent(this.get('model.titles')) ||\n      isPresent(this.get('model.publisher')) ||\n      isPresent(this.get('model.creators')) ||\n      (this.get('model.types') instanceof Object &&\n        !!this.get('model.types.resourceTypeGeneral')) ||\n      (this.get('model.types') instanceof Object &&\n        !!this.get('model.types.resourceType'))\n    ) {\n      this.set('hasMetadata', true);\n    }\n\n    let formats = {\n      summary: 'Summary View',\n      datacite: 'DataCite XML',\n      datacite_json: 'DataCite JSON',\n      schema_org: 'Schema.org JSON-LD',\n      citeproc: 'Citeproc JSON',\n      codemeta: 'Codemeta JSON',\n      bibtex: 'BibTeX',\n      ris: 'RIS',\n      jats: 'JATS XML'\n    };\n    this.set('formats', formats);\n  }\n\n  showMetadata(metadata) {\n    if (metadata === 'summary') {\n      this.set('output', '');\n    } else {\n      this.set('output', '');\n      let self = this;\n      let url = ENV.API_URL + '/dois/' + this.model.get('doi');\n      let acceptHeaders = {\n        datacite: 'application/vnd.datacite.datacite+xml',\n        datacite_json: 'application/vnd.datacite.datacite+json',\n        schema_org: 'application/vnd.schemaorg.ld+json',\n        citeproc: 'application/vnd.citationstyles.csl+json',\n        codemeta: 'application/vnd.codemeta.ld+json',\n        bibtex: 'application/x-bibtex',\n        ris: 'application/x-research-info-systems',\n        jats: 'application/vnd.jats+xml'\n      };\n      let headers = { Accept: acceptHeaders[metadata] };\n      if (this.currentUser.get('jwt')) {\n        headers = {\n          Authorization: 'Bearer ' + this.currentUser.get('jwt'),\n          Accept: acceptHeaders[metadata]\n        };\n      }\n      let result = fetch(url, {\n        headers\n      }).then(function (response) {\n        if (response.ok) {\n          return response.blob();\n        } else {\n          return response.statusText;\n        }\n      });\n\n      result.then(async function (response) {\n        if (typeof response === 'string') {\n          self.set('output', vkbeautify.json(JSON.stringify(response)));\n        } else {\n          let reader = UploadFile.fromBlob(response, 'blob')\n          reader.readAsText().then(\n            (result) => {\n              self.set('output', vkbeautify.xml(result));\n            },\n            (err) => {\n              console.error(err);\n            }\n          );\n        }\n      });\n    }\n    // this.get('router').transitionTo({ queryParams: { metadata: metadata } });\n  }\n\n  @action\n  selectMetadata(metadata) {\n    this.showMetadata(metadata);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group\\\">\\n    <input type=\\\"text\\\" class=\\\"form-control name-identifier-field no-error {{unless this.fragment.nameIdentifier 'no-success'}}\\\" value={{this.fragment.nameIdentifier}} placeholder=\\\"Name Identifier\\\" oninput={{action \\\"updateNameIdentifierAction\\\" value=\\\"target.value\\\"}} data-test-name-identifier />\\n    <span class=\\\"input-group-btn\\\">\\n      <BsButton @outline={{true}} @onClick={{action \\\"deleteNameIdentifierAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <input type=\\\"text\\\" class=\\\"form-control name-identifier-field\\\" value={{this.fragment.nameIdentifier}} placeholder=\\\"Name Identifier\\\" oninput={{action \\\"updateNameIdentifierAction\\\" value=\\\"target.value\\\"}} data-test-name-identifier/>\\n  \\n  <div class=\\\"help-block help-block-fragment name-identifier-field no-error {{unless this.fragment.nameIdentifier 'no-success'}}\\\">Use name identifier expressed as URL. Uniquely identifies an individual or legal entity, according to various schemas, e.g. ORCID, ROR or ISNI. The Given Name, Family Name, and Name will automatically be filled out for ORCID and ROR identifiers.</div>\\n{{/if}}\\n\", {\"contents\":\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group\\\">\\n    <input type=\\\"text\\\" class=\\\"form-control name-identifier-field no-error {{unless this.fragment.nameIdentifier 'no-success'}}\\\" value={{this.fragment.nameIdentifier}} placeholder=\\\"Name Identifier\\\" oninput={{action \\\"updateNameIdentifierAction\\\" value=\\\"target.value\\\"}} data-test-name-identifier />\\n    <span class=\\\"input-group-btn\\\">\\n      <BsButton @outline={{true}} @onClick={{action \\\"deleteNameIdentifierAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <input type=\\\"text\\\" class=\\\"form-control name-identifier-field\\\" value={{this.fragment.nameIdentifier}} placeholder=\\\"Name Identifier\\\" oninput={{action \\\"updateNameIdentifierAction\\\" value=\\\"target.value\\\"}} data-test-name-identifier/>\\n  \\n  <div class=\\\"help-block help-block-fragment name-identifier-field no-error {{unless this.fragment.nameIdentifier 'no-success'}}\\\">Use name identifier expressed as URL. Uniquely identifies an individual or legal entity, according to various schemas, e.g. ORCID, ROR or ISNI. The Given Name, Family Name, and Name will automatically be filled out for ORCID and ROR identifiers.</div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/doi-name-identifier.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-name-identifier.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiNameIdentifier extends Component {\n  @service\n  store;\n\n  validateOrcidIdentifier(id) {\n    let self = this;\n    this.store\n      .findRecord('person', id)\n      .then(function (person) {\n        self.joinNameParts({\n          givenName: person.givenName,\n          familyName: person.familyName,\n          nameIdentifierScheme: 'ORCID'\n        });\n      })\n      .catch(function () {\n        self.joinNameParts({\n          givenName: null,\n          familyName: null,\n          nameIdentifierScheme: 'ORCID'\n        });\n      });\n  }\n\n  validateRorIdentifier(value) {\n    let self = this;\n    let id = 'ror.org/' + value.substr(value.indexOf('0'));\n    this.store\n      .findRecord('ror', id)\n      .then(function (ror) {\n        self.joinNameParts({ name: ror.name, nameIdentifierScheme: 'ROR' });\n      })\n      .catch(function () {\n        self.joinNameParts({ name: null, nameIdentifierScheme: 'ROR' });\n      });\n  }\n\n  updateNameIdentifier(value) {\n    if (\n      value.startsWith('https://orcid.org') ||\n      value.startsWith('http://orcid.org')\n    ) {\n      let id = value.substr(value.indexOf('0'));\n      this.fragment.set('schemeUri', 'https://orcid.org');\n      this.fragment.set('nameIdentifierScheme', 'ORCID');\n      this.fragment.set('nameIdentifier', 'https://orcid.org/' + id);\n\n      const re =\n        /^(http|https):\\/\\/orcid\\.org\\/\\d{4}-\\d{4}-\\d{4}-\\d{3}[0-9X]+$/;\n      if (re.test(value)) {\n        this.validateOrcidIdentifier(id);\n      }\n    } else if (value.startsWith('https://ror.org')) {\n      let id = value.substr(8);\n\n      this.fragment.set('schemeUri', 'https://ror.org');\n      this.fragment.set('nameIdentifierScheme', 'ROR');\n      this.fragment.set('nameIdentifier', value);\n\n      const re = /^https:\\/\\/ror\\.org\\/0\\w{6}\\d{2}$/;\n      if (re.test(value)) {\n        this.validateRorIdentifier(id);\n      }\n    } else if (value.startsWith('http://isni.org')) {\n      this.fragment.set('schemeUri', 'http://isni.org');\n      this.fragment.set('nameIdentifierScheme', 'ISNI');\n      this.fragment.set('nameIdentifier', value);\n    } else if (value.length == 0) {\n      this.fragment.set('nameIdentifierScheme', null);\n      this.fragment.set('nameIdentifier', null);\n      this.joinNameParts({});\n    } else {\n      this.fragment.set('nameIdentifierScheme', 'Other');\n      this.fragment.set('nameIdentifier', value);\n    }\n  }\n\n  @action\n  updateNameIdentifierAction(value) {\n    this.updateNameIdentifier(value);\n  }\n\n  @action\n  deleteNameIdentifierAction() {\n    this.creator.get('nameIdentifiers').removeObject(this.fragment);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group {{if (v-get this.model 'publisher.name' 'isInvalid') 'has-error' 'has-feedback'}}\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\">Publisher</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.</div>\\n    <@form.element class=\\\"form-group {{if (and (not-eq this.model.state 'draft') (v-get this.model 'publisher.name' 'isValid')) 'is-valid'}}\\\" @controlType=\\\"power-select\\\" doi-publisher data-test-doi-publisher @value={{this.fragment.name}} @options={{this.organizations}} as |el| >\\n      <el.control\\n        @onChange={{action \\\"selectRor\\\"}}\\n        @search={{action \\\"searchRor\\\"}}\\n        @placeholder=\\\"Select publisher\\\"\\n        @searchPlaceholder=\\\"Type to search...\\\"\\n        @allowClear={{true}}\\n        @disabled={{this.disabled}}\\n        @searchEnabled={{true}}\\n        @onKeydown={{ action \\\"createOnEnter\\\" }}\\n        @noMatchesMessage=\\\"Press ENTER to use own publisher.\\\"\\n      as |item|>\\n          {{if item.name item.name this.fragment.name}}\\n        </el.control>\\n    </@form.element>\\n  </div>\\n</div>\\n\\n{{#if this.fragment.publisherIdentifier}}\\n  <div class=\\\"form-group required-nested-label\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3 input-fragment\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control affiliation-identifier-field no-error no-success\\\" value={{this.fragment.publisherIdentifier}} readonly=\\\"true\\\"/>\\n      <div class=\\\"help-block help-block-fragment affiliation-field\\\">\\n        Publisher names and identifiers are provided by the Research Organization Registry (ROR).\\n      </div>\\n    </div>\\n  </div>\\n{{/if}}\\n\", {\"contents\":\"<div class=\\\"form-group {{if (v-get this.model 'publisher.name' 'isInvalid') 'has-error' 'has-feedback'}}\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\">Publisher</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.</div>\\n    <@form.element class=\\\"form-group {{if (and (not-eq this.model.state 'draft') (v-get this.model 'publisher.name' 'isValid')) 'is-valid'}}\\\" @controlType=\\\"power-select\\\" doi-publisher data-test-doi-publisher @value={{this.fragment.name}} @options={{this.organizations}} as |el| >\\n      <el.control\\n        @onChange={{action \\\"selectRor\\\"}}\\n        @search={{action \\\"searchRor\\\"}}\\n        @placeholder=\\\"Select publisher\\\"\\n        @searchPlaceholder=\\\"Type to search...\\\"\\n        @allowClear={{true}}\\n        @disabled={{this.disabled}}\\n        @searchEnabled={{true}}\\n        @onKeydown={{ action \\\"createOnEnter\\\" }}\\n        @noMatchesMessage=\\\"Press ENTER to use own publisher.\\\"\\n      as |item|>\\n          {{if item.name item.name this.fragment.name}}\\n        </el.control>\\n    </@form.element>\\n  </div>\\n</div>\\n\\n{{#if this.fragment.publisherIdentifier}}\\n  <div class=\\\"form-group required-nested-label\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3 input-fragment\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control affiliation-identifier-field no-error no-success\\\" value={{this.fragment.publisherIdentifier}} readonly=\\\"true\\\"/>\\n      <div class=\\\"help-block help-block-fragment affiliation-field\\\">\\n        Publisher names and identifiers are provided by the Research Organization Registry (ROR).\\n      </div>\\n    </div>\\n  </div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/doi-publisher.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-publisher.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport { isBlank } from '@ember/utils';\n\n@classic\nexport default class DoiPublisher extends Component {\n  @service\n  store;\n\n  init(...args) {\n    super.init(...args);\n\n    this.organizations = this.organizations || [];\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('publisher')) {\n      this.model.set('publisher', this.store.createFragment('publisher'));\n    }\n  }\n\n  updatePublisher(organizationRecord) {\n    if (organizationRecord) {\n      this.fragment.set('name', organizationRecord.name);\n      this.set('name', organizationRecord.name);\n      this.fragment.set('publisherIdentifier', organizationRecord.id);\n      this.fragment.set('schemeUri', 'https://ror.org');\n      this.fragment.set('publisherIdentifierScheme', 'ROR');\n    } else {\n      this.fragment.set('name', '');\n      this.fragment.set('publisherIdentifier', null);\n      this.fragment.set('schemeUri', null);\n      this.fragment.set('publisherIdentifierScheme', null);\n      this.fragment.set('lang', null);\n    }\n  }\n\n  @action\n  createOnEnter(select, e) {\n    if (e.keyCode === 13 && select.isOpen && !isBlank(select.searchText)) {\n      select.actions.choose(select.searchText);\n      this.fragment.set('name', select.searchText);\n      this.fragment.set('publisherIdentifier', null);\n      this.fragment.set('schemeUri', null);\n      this.fragment.set('publisherIdentifierScheme', null);\n      this.fragment.set('lang', null);\n    }\n  }\n\n  @action\n  searchRor(query) {\n    let self = this;\n    this.store\n      .query('ror', { query })\n      .then(function (organizations) {\n        // ROR API does not seem to offer sorting of results.  The Ember array 'sortBy' seems to work.\n        organizations = organizations.sortBy('name')\n        self.set('organizations', organizations);\n      })\n      .catch(function (reason) {\n        return [];\n      });\n  }\n\n  @action\n  selectRor(ror) {\n    this.updatePublisher(ror);\n  }\n\n  @action\n  updatePublisherIdentifier(value) {\n    this.fragment.set('publisherIdentifier', value);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\"\\n    class=\\\"form-control related-identifier-field no-error {{unless this.fragment.relatedIdentifier 'no-success'}}\\\" placeholder=\\\"Related Identifier\\\" value={{this.fragment.relatedIdentifier}} oninput={{action \\\"updateRelatedIdentifierAction\\\" value=\\\"target.value\\\"}} data-test-related-identifier />\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteRelatedIdentifierAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-identifier-field no-error {{unless this.fragment.relatedIdentifier 'no-success'}}\\\">\\n  Must be a globally unique identifier. Visit the DataCite Metadata Schema documentation for\\n   <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://datacite-metadata-schema.readthedocs.io/en/4/appendices/appendix-1/relatedIdentifierType\\\"> the list of supported unique identifiers.</a>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedIdentifierType\\\" class=\\\"required-label subtitle\\\">Related Identifier Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" disabled={{this.controlledIdentifierType}} doi-related-identifier-type data-test-related-identifier-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relatedIdentifierType}} @helpText=\\\"The type of the Related Identifier.\\\" @options={{this.relatedIdentifierTypeList}} @destination={{this.fragment.relatedIdentifierType}} as |el|>\\n    <el.control @onChange={{action \\\"selectRelatedIdentifierTypeAction\\\"}} @allowClear={{true}} @placeholder=\\\"Select related Identifier Type\\\" @disabled={{false}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relationType\\\" class=\\\"required-label subtitle\\\">Relation Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" doi-relation-type data-test-related-relation-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relationType}} @helpText=\\\"The type of the Relation.\\\" @options={{this.relationTypeList}} @destination={{this.fragment.relationType}} as |el|>\\n    <el.control\\n      @onChange={{action \\\"selectRelationTypeAction\\\"}}\\n      @placeholder=\\\"Select Relation Type\\\" \\n      @disabled={{this.disabled}}\\n      @allowClear={{true}} \\n      @searchEnabled={{true}} as |item|>\\n        {{humanize (underscore item)}}\\n    </el.control>\\n  </@form.element>\\n</div>\\n\\n<div>\\n  <label for=\\\"relationTypeInformation\\\" class=\\\"subtitle\\\">Relation Type Information</label> \\n</div> \\n<div doi-relation-type-information data-test-relation-type-information-field>\\n  <input type=\\\"text\\\" class=\\\"form-control relation-type-information-field\\\" value={{this.fragment.relationTypeInformation}} placeholder=\\\"Relation Type Information\\\"\\n    oninput={{action \\\"updateRelationTypeInformationAction\\\" value=\\\"target.value\\\"}} data-test-relation-type-information />\\n</div>\\n<div\\n  class=\\\"help-block help-block-fragment relation-type-information-field\\\">\\n  Text to support the Relation Type.\\n</div>\\n\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedResourceType\\\" class=\\\"subtitle\\\">Resource Type General</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" doi-resource-type-general data-test-related-resource-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.resourceTypeGeneral}} @helpText=\\\"The general type of the related resource.\\\" @options={{this.resourceTypesGeneral}} @destination={{this.fragment.resourceTypeGeneral}} as |el|>\\n    <el.control\\n      @onChange={{action \\\"selectResourceTypeGeneralAction\\\"}}\\n      @allowClear={{true}}\\n      @placeholder=\\\"Select Resource Type General\\\" \\n      @disabled={{this.disabled}}\\n      @searchEnabled={{true}} as |item|>\\n        {{humanize (underscore item)}}\\n    </el.control>\\n  </@form.element>\\n</div>\\n\\n{{#if this.isMetadataRelationType}}\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"relatedMetadataScheme\\\" class=\\\"subtitle\\\">Related Metadata Scheme</label> \\n  </div> \\n  <input type=\\\"text\\\" class=\\\"form-control related-metadata-scheme-field\\\" value={{this.fragment.relatedMetadataScheme}} placeholder=\\\"Related Metadata Scheme\\\"\\n    oninput={{action \\\"updateRelatedMetadataSchemeAction\\\" value=\\\"target.value\\\"}} data-test-related-metadata-scheme />\\n\\n  <div\\n    class=\\\"help-block help-block-fragment related-metadata-scheme-field}}\\\">\\n    The name of the scheme.\\n  </div>\\n\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"relatedSchemeURI\\\" class=\\\"subtitle\\\">Related Metadata Scheme URI</label> \\n  </div> \\n  <input type=\\\"text\\\" class=\\\"form-control related-scheme-uri-field\\\" value={{this.fragment.schemeUri}} placeholder=\\\"Related Metadata Scheme URI\\\"\\n    oninput={{action \\\"updateSchemeURIAction\\\" value=\\\"target.value\\\"}} data-test-related-scheme-uri />\\n\\n  <div\\n    class=\\\"help-block help-block-fragment related-scheme-uri-field}}\\\">\\n    The URI of the relatedMetadataScheme. For example: http://www.ddialliance.org/Specification/DDILifecycle/3.1/XMLSchema/instance.xsd for DDI-L schema.\\n  </div>\\n\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"relatedSchemeType\\\" class=\\\"subtitle\\\">Related Metadata Scheme Type</label> \\n  </div> \\n\\n  <input type=\\\"text\\\" class=\\\"form-control related-scheme-type-field\\\" value={{this.fragment.schemeType}} placeholder=\\\"Related Metadata Scheme Type\\\"\\n    oninput={{action \\\"updateSchemeTypeAction\\\" value=\\\"target.value\\\"}} data-test-related-scheme-type />\\n\\n  <div\\n    class=\\\"help-block help-block-fragment related-scheme-type-field}}\\\">\\n    The type of the relatedMetadataScheme, linked with the schemeURI.\\n  </div>\\n{{/if}}\\n\\n<hr />\\n\", {\"contents\":\"<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\"\\n    class=\\\"form-control related-identifier-field no-error {{unless this.fragment.relatedIdentifier 'no-success'}}\\\" placeholder=\\\"Related Identifier\\\" value={{this.fragment.relatedIdentifier}} oninput={{action \\\"updateRelatedIdentifierAction\\\" value=\\\"target.value\\\"}} data-test-related-identifier />\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteRelatedIdentifierAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-identifier-field no-error {{unless this.fragment.relatedIdentifier 'no-success'}}\\\">\\n  Must be a globally unique identifier. Visit the DataCite Metadata Schema documentation for\\n   <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://datacite-metadata-schema.readthedocs.io/en/4/appendices/appendix-1/relatedIdentifierType\\\"> the list of supported unique identifiers.</a>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedIdentifierType\\\" class=\\\"required-label subtitle\\\">Related Identifier Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" disabled={{this.controlledIdentifierType}} doi-related-identifier-type data-test-related-identifier-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relatedIdentifierType}} @helpText=\\\"The type of the Related Identifier.\\\" @options={{this.relatedIdentifierTypeList}} @destination={{this.fragment.relatedIdentifierType}} as |el|>\\n    <el.control @onChange={{action \\\"selectRelatedIdentifierTypeAction\\\"}} @allowClear={{true}} @placeholder=\\\"Select related Identifier Type\\\" @disabled={{false}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relationType\\\" class=\\\"required-label subtitle\\\">Relation Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" doi-relation-type data-test-related-relation-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relationType}} @helpText=\\\"The type of the Relation.\\\" @options={{this.relationTypeList}} @destination={{this.fragment.relationType}} as |el|>\\n    <el.control\\n      @onChange={{action \\\"selectRelationTypeAction\\\"}}\\n      @placeholder=\\\"Select Relation Type\\\" \\n      @disabled={{this.disabled}}\\n      @allowClear={{true}} \\n      @searchEnabled={{true}} as |item|>\\n        {{humanize (underscore item)}}\\n    </el.control>\\n  </@form.element>\\n</div>\\n\\n<div>\\n  <label for=\\\"relationTypeInformation\\\" class=\\\"subtitle\\\">Relation Type Information</label> \\n</div> \\n<div doi-relation-type-information data-test-relation-type-information-field>\\n  <input type=\\\"text\\\" class=\\\"form-control relation-type-information-field\\\" value={{this.fragment.relationTypeInformation}} placeholder=\\\"Relation Type Information\\\"\\n    oninput={{action \\\"updateRelationTypeInformationAction\\\" value=\\\"target.value\\\"}} data-test-relation-type-information />\\n</div>\\n<div\\n  class=\\\"help-block help-block-fragment relation-type-information-field\\\">\\n  Text to support the Relation Type.\\n</div>\\n\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedResourceType\\\" class=\\\"subtitle\\\">Resource Type General</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" doi-resource-type-general data-test-related-resource-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.resourceTypeGeneral}} @helpText=\\\"The general type of the related resource.\\\" @options={{this.resourceTypesGeneral}} @destination={{this.fragment.resourceTypeGeneral}} as |el|>\\n    <el.control\\n      @onChange={{action \\\"selectResourceTypeGeneralAction\\\"}}\\n      @allowClear={{true}}\\n      @placeholder=\\\"Select Resource Type General\\\" \\n      @disabled={{this.disabled}}\\n      @searchEnabled={{true}} as |item|>\\n        {{humanize (underscore item)}}\\n    </el.control>\\n  </@form.element>\\n</div>\\n\\n{{#if this.isMetadataRelationType}}\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"relatedMetadataScheme\\\" class=\\\"subtitle\\\">Related Metadata Scheme</label> \\n  </div> \\n  <input type=\\\"text\\\" class=\\\"form-control related-metadata-scheme-field\\\" value={{this.fragment.relatedMetadataScheme}} placeholder=\\\"Related Metadata Scheme\\\"\\n    oninput={{action \\\"updateRelatedMetadataSchemeAction\\\" value=\\\"target.value\\\"}} data-test-related-metadata-scheme />\\n\\n  <div\\n    class=\\\"help-block help-block-fragment related-metadata-scheme-field}}\\\">\\n    The name of the scheme.\\n  </div>\\n\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"relatedSchemeURI\\\" class=\\\"subtitle\\\">Related Metadata Scheme URI</label> \\n  </div> \\n  <input type=\\\"text\\\" class=\\\"form-control related-scheme-uri-field\\\" value={{this.fragment.schemeUri}} placeholder=\\\"Related Metadata Scheme URI\\\"\\n    oninput={{action \\\"updateSchemeURIAction\\\" value=\\\"target.value\\\"}} data-test-related-scheme-uri />\\n\\n  <div\\n    class=\\\"help-block help-block-fragment related-scheme-uri-field}}\\\">\\n    The URI of the relatedMetadataScheme. For example: http://www.ddialliance.org/Specification/DDILifecycle/3.1/XMLSchema/instance.xsd for DDI-L schema.\\n  </div>\\n\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"relatedSchemeType\\\" class=\\\"subtitle\\\">Related Metadata Scheme Type</label> \\n  </div> \\n\\n  <input type=\\\"text\\\" class=\\\"form-control related-scheme-type-field\\\" value={{this.fragment.schemeType}} placeholder=\\\"Related Metadata Scheme Type\\\"\\n    oninput={{action \\\"updateSchemeTypeAction\\\" value=\\\"target.value\\\"}} data-test-related-scheme-type />\\n\\n  <div\\n    class=\\\"help-block help-block-fragment related-scheme-type-field}}\\\">\\n    The type of the relatedMetadataScheme, linked with the schemeURI.\\n  </div>\\n{{/if}}\\n\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-related-identifier.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-related-identifier.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\n/* eslint-disable no-useless-escape */\nimport Component from '@ember/component';\nimport { isURL, isISBN } from 'validator';\nimport { isBlank } from '@ember/utils';\nimport { pascalCase } from 'pascal-case';\n\nconst relationTypeList = [\n  'Is cited by',\n  'Cites',\n  'Is supplement to',\n  'Is supplemented by',\n  'Is continued by',\n  'Continues',\n  'Is described by',\n  'Describes',\n  'Has metadata',\n  'Is metadata for',\n  'Has version',\n  'Is version of',\n  'Is new version of',\n  'Is previous version of',\n  'Is part of',\n  'Has part',\n  'Is published in',\n  'Is referenced by',\n  'References',\n  'Is documented by',\n  'Documents',\n  'Is compiled by',\n  'Compiles',\n  'Is variant form of',\n  'Is original form of',\n  'Is identical to',\n  'Is reviewed by',\n  'Reviews',\n  'Is derived from',\n  'Is source of',\n  'Is required by',\n  'Requires',\n  'Is obsoleted by',\n  'Obsoletes',\n  'Is collected by',\n  'Collects',\n  'Is translation of',\n  'Has translation',\n  'Other'\n];\n\nconst relatedIdentifierTypeList = [\n  'ARK',\n  'arXiv',\n  'bibcode',\n  'CSTR',\n  'DOI',\n  'EAN13',\n  'EISSN',\n  'Handle',\n  'IGSN',\n  'ISBN',\n  'ISSN',\n  'ISTC',\n  'LISSN',\n  'LSID',\n  'PMID',\n  'PURL',\n  'RAiD',\n  'RRID',\n  'SWHID',\n  'UPC',\n  'URL',\n  'URN',\n  'w3id'\n];\n\nconst resourceTypeGeneralList = [\n  'Audiovisual',\n  'Award',\n  'Book',\n  'BookChapter',\n  'Collection',\n  'ComputationalNotebook',\n  'ConferencePaper',\n  'ConferenceProceeding',\n  'DataPaper',\n  'Dataset',\n  'Dissertation',\n  'Event',\n  'Image',\n  'Instrument',\n  'InteractiveResource',\n  'Journal',\n  'JournalArticle',\n  'Model',\n  'OutputManagementPlan',\n  'PeerReview',\n  'PhysicalObject',\n  'Poster',\n  'Preprint',\n  'Presentation',\n  'Project',\n  'Report',\n  'Service',\n  'Software',\n  'Sound',\n  'Standard',\n  'StudyRegistration',\n  'Text',\n  'Workflow',\n  'Other'\n];\n\n@classic\nexport default class DoiRelatedIdentifier extends Component {\n  @service\n  store;\n\n  relationTypeList = relationTypeList;\n  relationTypes = relationTypeList;\n  relatedIdentifierTypeList = relatedIdentifierTypeList;\n  relatedIdentifierTypes = relatedIdentifierTypeList;\n  controlledIdentifierType = false;\n  isMetadataRelationType = false;\n  resourceTypeGeneralList = resourceTypeGeneralList;\n  resourceTypesGeneral = resourceTypeGeneralList;\n\n  init(...args) {\n    super.init(...args);\n\n    this.isMetadataRelationTypes = this.isMetadataRelationTypes || [\n      'HasMetadata',\n      'IsMetadataFor'\n    ];\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (\n      relatedIdentifierTypeList.includes(\n        this.fragment.get('relatedIdentifierType')\n      )\n    ) {\n      this.set('controlledIdentifierType', true);\n    } else {\n      this.set('controlledIdentifierType', false);\n    }\n    if (\n      this.isMetadataRelationTypes.includes(this.fragment.get('relationType'))\n    ) {\n      this.set('isMetadataRelationType', true);\n    } else {\n      this.set('isMetadataRelationType', false);\n    }\n  }\n\n  updateRelatedIdentifier(value) {\n    const ark = /^ark:\\/[0-9]{5}\\/\\S+$/;\n    const lsid =\n      /^[uU][rR][nN]:[lL][sS][iI][dD]:(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%]):(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%]):(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%])[:]?(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%])?$/;\n    const purl = {\n      require_host: true,\n      host_whitelist: ['purl.org', 'oclc.org']\n    };\n    const arxiv =\n      /^(arXiv:)(\\d{4}.\\d{4,5}|[a-z\\-]+(\\.[A-Z]{2})?\\/\\d{7})(v\\d+)?/;\n    const doi = /^(10\\.\\d{4,5}\\/.+)/;\n    const doiUrl =\n      /^(?:(http|https):\\/\\/(dx.)?(doi.org|handle.test.datacite.org)?\\/)(10\\.\\d{4,5}\\/.+)/;\n    const bibcode = /\\d{4}[A-Za-z\\.\\&]{5}[\\w\\.]{4}[ELPQ-Z\\.][\\d\\.]{4}[A-Z]/;\n    const urn = /^urn:[a-z0-9][a-z0-9-]{0,31}:[a-z0-9()+,\\-.:=@;$_!*'%/?#]/;\n    const rrid = /^RRID:[a-zA-Z]+.+$/;\n    const swid0  = /^swh:1:([a-z]+):[0-9a-f]{40}$/\n    const swid1 = /^swh:1:(cnt|dir|rev|rel|snp):[0-9a-f]{40}$/\n    const swid2 = /^swh:1:(cnt|dir|rev|rel|snp):[0-9a-f]{40}(;[a-z]+=[a-zA-Z0-9:._-]+)*$/\n    // const raid = /^https?:\\/\\/(raid\\.org|raid\\.org\\.au|doi\\.org)\\/10\\.\\d{3,9}\\/[a-zA-Z0-9.\\-_]+$/\n    const raid = /^https?:\\/\\/(raid\\.org|raid\\.org\\.au)\\/10\\.\\d{3,9}\\/[a-zA-Z0-9.\\-_]+$/\n\n    switch (true) {\n      case isBlank(value):\n        this.fragment.set('relatedIdentifier', null);\n        this.fragment.set('relatedIdentifierType', null);\n        this.set('controlledIdentifierType', false);\n        this.selectResourceTypeGeneral(null);\n        this.fragment.set('schemeType', null);\n        this.fragment.set('relatedMetadataScheme', null);\n        this.fragment.set('relationType', null);\n        break;\n      case swid0.test(value) || swid1.test(value) || swid2.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'SWHID');\n        this.set('controlledIdentifierType', true);\n        break;\n      // ORDER IS IMPORTANT HERE - since RAiD identifiers are basically URLs, check for RAiD first.\n      case raid.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'RAiD');\n        this.set('controlledIdentifierType', true);\n        break;\n      case ark.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'ARK');\n        this.set('controlledIdentifierType', true);\n        break;\n      case arxiv.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'arXiv');\n        this.set('controlledIdentifierType', true);\n        break;\n      case doi.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'DOI');\n        this.set('controlledIdentifierType', true);\n        break;\n      case doiUrl.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'DOI');\n        this.set('controlledIdentifierType', true);\n        break;\n      case bibcode.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'bibcode');\n        this.set('controlledIdentifierType', true);\n        break;\n      case lsid.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'LSID');\n        this.set('controlledIdentifierType', true);\n        break;\n      case isURL(value, purl):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'PURL');\n        this.set('controlledIdentifierType', true);\n        break;\n      case urn.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'URN');\n        this.set('controlledIdentifierType', true);\n        break;\n      case rrid.test(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'RRID');\n        this.set('controlledIdentifierType', true);\n        break;\n      case isISBN(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'ISBN');\n        this.set('controlledIdentifierType', true);\n        break;\n      // // EAN currently not supported https://github.com/validatorjs/validator.js/issues/797\n      // case isEAN(value):\n      //   this.fragment.set('relatedIdentifier', value);\n      //   this.fragment.set('relatedIdentifierType', 'EAN13');\n      //   this.set('controlledIdentifierType', true);\n      //   break;\n      case isURL(value):\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'URL');\n        this.set('controlledIdentifierType', true);\n        break;\n      default:\n        // // Clears the relatedIdentifierType in case the user changes the relatedIdentifier after selecting it once before.\n        this.fragment.set('relatedIdentifier', value);\n        this.fragment.set('relatedIdentifierType', null);\n        this.fragment.set('relationType', null);\n        this.set('controlledIdentifierType', false);\n        break;\n    }\n  }\n\n  selectRelationType(relationType) {\n    const selectedRelationType = relationType ? pascalCase(relationType) : null;\n    if (this.isMetadataRelationTypes.includes(selectedRelationType)) {\n      this.set('isMetadataRelationType', true);\n    } else {\n      this.set('isMetadataRelationType', false);\n      this.fragment.set('schemeType', null);\n      this.fragment.set('relatedMetadataScheme', null);\n      this.fragment.set('schemeUri', null);\n    }\n    this.fragment.set('relationType', selectedRelationType);\n    this.set('relationTypes', relationTypeList);\n  }\n\n  selectRelatedIdentifierType(relatedIdentifierType) {\n    this.fragment.set('relatedIdentifierType', relatedIdentifierType);\n    this.set('relatedIdentifierTypes', relatedIdentifierTypeList);\n  }\n\n  selectResourceTypeGeneral(resourceTypeGeneral) {\n    const selectedResourceTypeGeneral = resourceTypeGeneral ? pascalCase(resourceTypeGeneral) : null;\n    this.fragment.set('resourceTypeGeneral', selectedResourceTypeGeneral);\n    this.set('resourceTypesGeneral', resourceTypeGeneralList);\n  }\n\n  @action\n  updateRelatedIdentifierAction(value) {\n    this.updateRelatedIdentifier(value.trim());\n  }\n\n  @action\n  updateRelatedMetadataSchemeAction(value) {\n    this.fragment.set('relatedMetadataScheme', value);\n  }\n\n  @action\n  updateSchemeURIAction(value) {\n    this.fragment.set('schemeUri', value);\n  }\n\n  @action\n  updateSchemeTypeAction(value) {\n    this.fragment.set('schemeType', value);\n  }\n\n  @action\n  selectRelationTypeAction(relationType) {\n    this.selectRelationType(relationType);\n  }\n\n  @action\n  updateRelationTypeInformationAction(value) {\n    this.fragment.set('relationTypeInformation', value);\n  }\n\n  @action\n  selectRelatedIdentifierTypeAction(relatedIdentifierType) {\n    this.selectRelatedIdentifierType(relatedIdentifierType);\n  }\n\n  @action\n  selectResourceTypeGeneralAction(resourceTypeGeneral) {\n    this.selectResourceTypeGeneral(resourceTypeGeneral);\n  }\n\n  @action\n  deleteRelatedIdentifierAction() {\n    this.model.get('relatedIdentifiers').removeObject(this.fragment);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\" data-test-related-identifiers-form-group>\\n  <label class=\\\"control-label col-md-3\\\" data-test-related-identifiers>Related Identifiers</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Identifiers of related resources.</div>\\n    {{#if this.showRelatedIdentifiers}}\\n      {{#each this.model.relatedIdentifiers as |relatedIdentifier index|}}\\n        <DoiRelatedIdentifier @model={{this.model}} @fragment={{relatedIdentifier}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.relatedIdentifiers.length 24)}}\\n        <BsButton id=\\\"add-related-identifier\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addRelatedIdentifier\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.relatedIdentifiers.length 0) \\\"another \\\"}} related identifier</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.relatedIdentifiers.length 0)}}\\n        <BsButton id=\\\"toggle-related-identifiers\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRelatedIdentifiers\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.relatedIdentifiers.length 'related identifier'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.relatedIdentifiers.length 0)}}\\n        <BsButton id=\\\"toggle-related-identifiers\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRelatedIdentifiers\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.relatedIdentifiers.length 'related identifier'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-related-identifier\\\" @outline={{true}} @onClick={{action \\\"addRelatedIdentifier\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add related identifier</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"form-group\\\" data-test-related-identifiers-form-group>\\n  <label class=\\\"control-label col-md-3\\\" data-test-related-identifiers>Related Identifiers</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Identifiers of related resources.</div>\\n    {{#if this.showRelatedIdentifiers}}\\n      {{#each this.model.relatedIdentifiers as |relatedIdentifier index|}}\\n        <DoiRelatedIdentifier @model={{this.model}} @fragment={{relatedIdentifier}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.relatedIdentifiers.length 24)}}\\n        <BsButton id=\\\"add-related-identifier\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addRelatedIdentifier\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.relatedIdentifiers.length 0) \\\"another \\\"}} related identifier</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.relatedIdentifiers.length 0)}}\\n        <BsButton id=\\\"toggle-related-identifiers\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRelatedIdentifiers\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.relatedIdentifiers.length 'related identifier'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.relatedIdentifiers.length 0)}}\\n        <BsButton id=\\\"toggle-related-identifiers\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRelatedIdentifiers\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.relatedIdentifiers.length 'related identifier'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-related-identifier\\\" @outline={{true}} @onClick={{action \\\"addRelatedIdentifier\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add related identifier</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/doi-related-identifiers.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-related-identifiers.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiRelatedIdentifiers extends Component {\n  showRelatedIdentifiers = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('relatedIdentifiers')) {\n      this.model.set('relatedIdentifiers', []);\n    }\n  }\n\n  @action\n  addRelatedIdentifier() {\n    this.model.get('relatedIdentifiers').createFragment();\n    this.set('showRelatedIdentifiers', true);\n  }\n\n  @action\n  toggleRelatedIdentifiers() {\n    this.set('showRelatedIdentifiers', !this.showRelatedIdentifiers);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div>\\n  <label for=\\\"name\\\" class=\\\"subtitle\\\">Contributor Name</label>\\n  <div class=\\\"input-group\\\">\\n    <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} data-test-related-item-contributor-name/>\\n    <span class=\\\"input-group-btn\\\">\\n        <BsButton @outline={{true}} @onClick={{action \\\"deleteRelatedItemContributor\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n    </span>\\n  </div>\\n</div>\\n\\n<label for=\\\"contributorType\\\" class=\\\"subtitle\\\">Contributor Type</label>\\n  <div class=\\\"power-select-fragment\\\" doi-related-item-contributor-type>\\n    <@form.element @controlType=\\\"power-select\\\" @value={{this.humanContributorType}} @helpText=\\\"The type of contributor of the resource.\\\" @options={{this.humanContributorTypes}} @formLayout=\\\"vertical\\\" @selected={{this.humanContributorType}} @destination={{this.humanContributorType}} as |el|>\\n      <el.control @allowClear={{true}} @onChange={{action \\\"selectContributorTypeAction\\\"}} @placeholder=\\\"Select Contributor Type\\\" @disabled={{this.disabled}} @searchEnabled={{true}} />\\n    </@form.element>\\n</div>  \\n\", {\"contents\":\"<div>\\n  <label for=\\\"name\\\" class=\\\"subtitle\\\">Contributor Name</label>\\n  <div class=\\\"input-group\\\">\\n    <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} data-test-related-item-contributor-name/>\\n    <span class=\\\"input-group-btn\\\">\\n        <BsButton @outline={{true}} @onClick={{action \\\"deleteRelatedItemContributor\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n    </span>\\n  </div>\\n</div>\\n\\n<label for=\\\"contributorType\\\" class=\\\"subtitle\\\">Contributor Type</label>\\n  <div class=\\\"power-select-fragment\\\" doi-related-item-contributor-type>\\n    <@form.element @controlType=\\\"power-select\\\" @value={{this.humanContributorType}} @helpText=\\\"The type of contributor of the resource.\\\" @options={{this.humanContributorTypes}} @formLayout=\\\"vertical\\\" @selected={{this.humanContributorType}} @destination={{this.humanContributorType}} as |el|>\\n      <el.control @allowClear={{true}} @onChange={{action \\\"selectContributorTypeAction\\\"}} @placeholder=\\\"Select Contributor Type\\\" @disabled={{this.disabled}} @searchEnabled={{true}} />\\n    </@form.element>\\n</div>  \\n\",\"moduleName\":\"bracco/components/doi-related-item-contributor.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-related-item-contributor.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport Component from '@ember/component';\nimport { pascalCase } from 'pascal-case';\nimport humanizeString from 'humanize-string';\nimport { isBlank } from '@ember/utils';\n\nconst contributorTypes = [\n  'ContactPerson',\n  'DataCollector',\n  'DataCurator',\n  'DataManager',\n  'Distributor',\n  'Editor',\n  'HostingInstitution',\n  'Producer',\n  'ProjectLeader',\n  'ProjectManager',\n  'ProjectMember',\n  'RegistrationAgency',\n  'RegistrationAuthority',\n  'RelatedPerson',\n  'Researcher',\n  'ResearchGroup',\n  'RightsHolder',\n  'Sponsor',\n  'Supervisor',\n  'Translator',\n  'WorkPackageLeader',\n  'Other'\n];\n\nconst humanContributorTypes = contributorTypes.map((type) =>\n  humanizeString(type)\n);\n\n@classic\nexport default class DoiRelatedItemContributor extends Component {\n  humanContributorTypes = humanContributorTypes;\n\n  @computed('fragment.contributorType')\n  get humanContributorType() {\n    return isBlank(this.get('fragment.contributorType'))\n      ? null\n      : humanizeString(this.get('fragment.contributorType'));\n  }\n\n  @computed('fragment.nameType')\n  get showPersonal() {\n    return this.get('fragment.nameType') !== 'Organizational';\n  }\n\n  isReadonlyNameType = false;\n  isReadonly = false;\n  isReadonlyNameParts = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n  }\n\n  joinNameParts(options = {}) {\n    if (options.nameIdentifierScheme === 'ORCID') {\n      this.fragment.set('nameType', 'Personal');\n      this.set('nameType', 'Personal');\n      this.set('isReadonlyNameParts', true);\n      this.set('isReadonlyNameType', true);\n    } else if (options.nameIdentifierScheme === 'ROR') {\n      this.fragment.set('nameType', 'Organizational');\n      this.set('nameType', 'Organizational');\n      this.set('isReadonlyNameType', true);\n    } else {\n      options.givenName = options.givenName || this.fragment.get('givenName');\n      options.familyName =\n        options.familyName || this.fragment.get('familyName');\n      options.name = options.name || this.fragment.get('name');\n\n      this.set('isReadonlyNameParts', false);\n      this.set('isReadonlyNameType', false);\n    }\n    switch (true) {\n      case this.fragment.get('nameType') === 'Personal':\n        this.set('isReadonly', true);\n\n        this.fragment.set('givenName', options.givenName);\n        this.fragment.set('familyName', options.familyName);\n\n        if (options.givenName && options.familyName) {\n          this.fragment.set(\n            'name',\n            options.familyName + ', ' + options.givenName\n          );\n        } else if (options.givenName) {\n          this.fragment.set('name', options.givenName);\n        } else if (options.familyName) {\n          this.fragment.set('name', options.familyName);\n        } else {\n          this.fragment.set('name', options.name);\n        }\n        return true;\n      case this.fragment.get('nameType') === 'Organizational':\n        this.fragment.set('givenName', null);\n        this.fragment.set('familyName', null);\n        this.fragment.set('name', options.name);\n        this.set('isReadonly', false);\n        return true;\n      default:\n        this.fragment.set('givenName', options.givenName);\n        this.fragment.set('familyName', options.familyName);\n        this.fragment.set('name', options.name);\n        this.set('isReadonly', false);\n        return true;\n    }\n  }\n\n  selectContributorType(contributorType) {\n    if (contributorType) {\n      let contributorTypeId = pascalCase(contributorType);\n      this.fragment.set('contributorType', contributorTypeId);\n      this.set('contributorType', contributorType);\n    } else {\n      this.fragment.set('contributorType', null);\n    }\n    this.set('humanContributorTypes', humanContributorTypes);\n  }\n\n  @action\n  updateName(value) {\n    this.fragment.set('name', value);\n  }\n\n  @action\n  selectContributorTypeAction(contributorType) {\n    this.selectContributorType(contributorType);\n  }\n\n  @action\n  deleteRelatedItemContributor() {\n    this.creator.get('contributors').removeObject(this.fragment);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div>\\n    <label for=\\\"name\\\" class=\\\"subtitle\\\">Creator Name</label>\\n    <div class=\\\"input-group\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} data-test-related-item-creator-name/> \\n        <span class=\\\"input-group-btn\\\">\\n            <BsButton @outline={{true}} @onClick={{action \\\"deleteRelatedItemCreator\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n        </span>\\n    </div>\\n</div>\", {\"contents\":\"<div>\\n    <label for=\\\"name\\\" class=\\\"subtitle\\\">Creator Name</label>\\n    <div class=\\\"input-group\\\">\\n        <input type=\\\"text\\\" class=\\\"form-control name-field\\\" value={{this.fragment.name}} placeholder=\\\"Name\\\" oninput={{action \\\"updateName\\\" value=\\\"target.value\\\"}} data-test-related-item-creator-name/> \\n        <span class=\\\"input-group-btn\\\">\\n            <BsButton @outline={{true}} @onClick={{action \\\"deleteRelatedItemCreator\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n        </span>\\n    </div>\\n</div>\",\"moduleName\":\"bracco/components/doi-related-item-creator.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-related-item-creator.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiRelatedItemCreator extends Component {\n  @computed('fragment.nameType')\n  get showPersonal() {\n    return this.get('fragment.nameType') !== 'Organizational';\n  }\n\n  isReadonlyNameType = false;\n  isReadonly = false;\n  isReadonlyNameParts = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.selectNameType(this.fragment.get('nameType'));\n\n    // if no givenName and familyName, and set for nameType \"Personal\"\n    if (\n      this.fragment.get('name') &&\n      this.fragment.get('nameType') === 'Personal' &&\n      (!this.fragment.get('givenName') || this.fragment.get('familyName'))\n    ) {\n      let familyName = this.fragment.get('name').split(',', 2)[0];\n      let givenName = this.fragment.get('name').split(',', 2)[1];\n      familyName = familyName ? familyName.trim() : null;\n      givenName = givenName ? givenName.trim() : null;\n      this.fragment.set('givenName', givenName);\n      this.fragment.set('familyName', familyName);\n    }\n    this.joinNameParts({});\n  }\n\n  joinNameParts(options = {}) {\n    if (options.nameIdentifierScheme === 'ORCID') {\n      this.fragment.set('nameType', 'Personal');\n      this.set('nameType', 'Personal');\n      this.set('isReadonlyNameParts', true);\n      this.set('isReadonlyNameType', true);\n    } else if (options.nameIdentifierScheme === 'ROR') {\n      this.fragment.set('nameType', 'Organizational');\n      this.set('nameType', 'Organizational');\n      this.set('isReadonlyNameType', true);\n    } else {\n      options.givenName = options.givenName || this.fragment.get('givenName');\n      options.familyName =\n        options.familyName || this.fragment.get('familyName');\n      options.name = options.name || this.fragment.get('name');\n\n      this.set('isReadonlyNameParts', false);\n      this.set('isReadonlyNameType', false);\n    }\n    switch (true) {\n      case this.fragment.get('nameType') === 'Personal':\n        this.set('isReadonly', true);\n\n        this.fragment.set('givenName', options.givenName);\n        this.fragment.set('familyName', options.familyName);\n\n        if (options.givenName && options.familyName) {\n          this.fragment.set(\n            'name',\n            options.familyName + ', ' + options.givenName\n          );\n        } else if (options.givenName) {\n          this.fragment.set('name', options.givenName);\n        } else if (options.familyName) {\n          this.fragment.set('name', options.familyName);\n        } else {\n          this.fragment.set('name', options.name);\n        }\n        return true;\n      case this.fragment.get('nameType') === 'Organizational':\n        this.fragment.set('givenName', null);\n        this.fragment.set('familyName', null);\n        this.fragment.set('name', options.name);\n        this.set('isReadonly', false);\n        return true;\n      default:\n        this.fragment.set('givenName', options.givenName);\n        this.fragment.set('familyName', options.familyName);\n        this.fragment.set('name', options.name);\n        this.set('isReadonly', false);\n        return true;\n    }\n  }\n\n  selectNameType(value) {\n    this.fragment.set('nameType', value);\n    this.set('nameType', value);\n\n    if (this.fragment.get('nameType') === 'Personal') {\n      this.set('isReadonly', true);\n      this.joinNameParts();\n    } else {\n      this.set('isReadonly', false);\n    }\n  }\n\n  @action\n  updateName(value) {\n    this.joinNameParts({ name: value });\n  }\n\n  @action\n  deleteRelatedItemCreator() {\n    this.creator.get('creators').removeObject(this.fragment);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemIdentifier\\\" class=\\\"subtitle\\\">Related Item Identifier</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-identifier-field\\\" placeholder=\\\"\\\" value={{this.fragment.relatedItemIdentifier}} oninput={{action \\\"updateRelatedItemIdentifierAction\\\" value=\\\"target.value\\\"}} data-test-related-item-identifier />\\n\\n<div class=\\\"help-block help-block-fragment related-item-identifier-field\\\">\\n  Must be a globally unique identifier. Visit the DataCite Metadata Schema documentation for\\n   <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://datacite-metadata-schema.readthedocs.io/en/4/appendices/appendix-1/relatedIdentifierType\\\"> the list of supported unique identifiers.</a>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemIdentifierType\\\" class=\\\"subtitle\\\">Related Identifier Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" disabled={{this.controlledIdentifierType}} doi-related-item-identifier data-test-related-item-identifier-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relatedItemIdentifierType}} @helpText=\\\"The type of the Related Identifier.\\\" @options={{this.relatedItemIdentifierTypeList}} @destination={{this.relatedItemIdentifierType}} as |el|>\\n    <el.control @onChange={{action \\\"selectRelatedItemIdentifierTypeAction\\\"}} @allowClear={{true}} @placeholder=\\\"Select related Identifier Type\\\" @disabled={{false}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\", {\"contents\":\"<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemIdentifier\\\" class=\\\"subtitle\\\">Related Item Identifier</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-identifier-field\\\" placeholder=\\\"\\\" value={{this.fragment.relatedItemIdentifier}} oninput={{action \\\"updateRelatedItemIdentifierAction\\\" value=\\\"target.value\\\"}} data-test-related-item-identifier />\\n\\n<div class=\\\"help-block help-block-fragment related-item-identifier-field\\\">\\n  Must be a globally unique identifier. Visit the DataCite Metadata Schema documentation for\\n   <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://datacite-metadata-schema.readthedocs.io/en/4/appendices/appendix-1/relatedIdentifierType\\\"> the list of supported unique identifiers.</a>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemIdentifierType\\\" class=\\\"subtitle\\\">Related Identifier Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" disabled={{this.controlledIdentifierType}} doi-related-item-identifier data-test-related-item-identifier-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relatedItemIdentifierType}} @helpText=\\\"The type of the Related Identifier.\\\" @options={{this.relatedItemIdentifierTypeList}} @destination={{this.relatedItemIdentifierType}} as |el|>\\n    <el.control @onChange={{action \\\"selectRelatedItemIdentifierTypeAction\\\"}} @allowClear={{true}} @placeholder=\\\"Select related Identifier Type\\\" @disabled={{false}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-related-item-identifier.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-related-item-identifier.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\n/* eslint-disable no-useless-escape */\nimport Component from '@ember/component';\nimport { isURL, isISBN } from 'validator';\nimport { isBlank } from '@ember/utils';\n\nconst relatedItemIdentifierTypeList = [\n  'ARK',\n  'arXiv',\n  'bibcode',\n  'CSTR',\n  'DOI',\n  'EAN13',\n  'EISSN',\n  'Handle',\n  'IGSN',\n  'ISBN',\n  'ISSN',\n  'ISTC',\n  'LISSN',\n  'LSID',\n  'PMID',\n  'PURL',\n  'RAiD',\n  'RRID',\n  'SWHID',\n  'UPC',\n  'URL',\n  'URN',\n  'w3id'\n];\n\n@classic\nexport default class DoiRelatedItemIdentifier extends Component {\n  @service\n  store;\n\n  relatedItemIdentifierTypeList = relatedItemIdentifierTypeList;\n  relatedItemIdentifierTypes = relatedItemIdentifierTypeList;\n\n  init(...args) {\n    super.init(...args);\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (\n      relatedItemIdentifierTypeList.includes(this.relatedItemIdentifierType)\n    ) {\n      this.set('controlledIdentifierType', true);\n    } else {\n      this.set('controlledIdentifierType', false);\n    }\n  }\n\n  updateRelatedItemIdentifier(value) {\n    const ark = /^ark:\\/[0-9]{5}\\/\\S+$/;\n    const lsid =\n      /^[uU][rR][nN]:[lL][sS][iI][dD]:(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%]):(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%]):(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%])[:]?(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%])?$/;\n    const purl = {\n      require_host: true,\n      host_whitelist: ['purl.org', 'oclc.org']\n    };\n    const arxiv =\n      /^(arXiv:)(\\d{4}.\\d{4,5}|[a-z\\-]+(\\.[A-Z]{2})?\\/\\d{7})(v\\d+)?/;\n    const doi = /^(10\\.\\d{4,5}\\/.+)/;\n    const doiUrl =\n      /^(?:(http|https):\\/\\/(dx.)?(doi.org|handle.test.datacite.org)?\\/)(10\\.\\d{4,5}\\/.+)/;\n    const bibcode = /\\d{4}[A-Za-z\\.\\&]{5}[\\w\\.]{4}[ELPQ-Z\\.][\\d\\.]{4}[A-Z]/;\n    const urn = /^urn:[a-z0-9][a-z0-9-]{0,31}:[a-z0-9()+,\\-.:=@;$_!*'%/?#]/;\n    const rrid = /^RRID:[a-zA-Z]+.+$/;\n    const swid0  = /^swh:1:([a-z]+):[0-9a-f]{40}$/\n    const swid1 = /^swh:1:(cnt|dir|rev|rel|snp):[0-9a-f]{40}$/\n    const swid2 = /^swh:1:(cnt|dir|rev|rel|snp):[0-9a-f]{40}(;[a-z]+=[a-zA-Z0-9:._-]+)*$/\n    // const raid = /^https?:\\/\\/(raid\\.org|raid\\.org\\.au|doi\\.org)\\/10\\.\\d{3,9}\\/[a-zA-Z0-9.\\-_]+$/\n    const raid = /^https?:\\/\\/(raid\\.org|raid\\.org\\.au)\\/10\\.\\d{3,9}\\/[a-zA-Z0-9.\\-_]+$/\n\n    switch (true) {\n      case isBlank(value):\n        this.fragment.set('relatedItemIdentifier', null);\n        this.fragment.set('relatedItemIdentifierType', null);\n        this.set('controlledIdentifierType', false);\n        break;\n      case swid0.test(value) || swid1.test(value) || swid2.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'SWHID');\n        this.set('controlledIdentifierType', true);\n        break;\n      // ORDER IS IMPORTANT HERE - since RAiD identifiers are basically URLs, check for RAiD first.\n      case raid.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'RAiD');\n        this.set('controlledIdentifierType', true);\n        break;\n      case ark.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'ARK');\n        this.set('controlledIdentifierType', true);\n        break;\n      case arxiv.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'arXiv');\n        this.set('controlledIdentifierType', true);\n        break;\n      case doi.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'DOI');\n        this.set('controlledIdentifierType', true);\n        break;\n      case doiUrl.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'DOI');\n        this.set('controlledIdentifierType', true);\n        break;\n      case bibcode.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'bibcode');\n        this.set('controlledIdentifierType', true);\n        break;\n      case lsid.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'LSID');\n        this.set('controlledIdentifierType', true);\n        break;\n      case isURL(value, purl):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'PURL');\n        this.set('controlledIdentifierType', true);\n        break;\n      case urn.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'URN');\n        this.set('controlledIdentifierType', true);\n        break;\n      case isISBN(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'ISBN');\n        this.set('controlledIdentifierType', true);\n        break;\n      case isURL(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', 'URL');\n        this.set('controlledIdentifierType', true);\n        break;\n      case rrid.test(value):\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedIdentifierType', 'RRID');\n        this.set('controlledIdentifierType', true);\n        break;\n      default:\n        // // Clears the relatedItemIdentifierType in case the user changes the relatedItemIdentifier after selecting it once before.\n        this.fragment.set('relatedItemIdentifier', value);\n        this.fragment.set('relatedItemIdentifierType', null);\n        this.set('controlledIdentifierType', false);\n        break;\n    }\n  }\n\n  selectRelatedItemIdentifierType(relatedItemIdentifierType) {\n    this.fragment.set('relatedItemIdentifierType', relatedItemIdentifierType);\n    this.set('relatedItemIdentifierTypes', relatedItemIdentifierTypeList);\n  }\n\n  @action\n  updateRelatedItemIdentifierAction(value) {\n    this.updateRelatedItemIdentifier(value.trim());\n  }\n\n  @action\n  selectRelatedItemIdentifierTypeAction(relatedItemIdentifierType) {\n    this.selectRelatedItemIdentifierType(relatedItemIdentifierType);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemTitle\\\" class=\\\"required-label subtitle\\\">Title</label> \\n</div> \\n\\n<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" class=\\\"form-control related-item-title-field\\\" value={{this.fragment.title}} placeholder=\\\"\\\"\\n  oninput={{action \\\"updateRelatedItemTitleAction\\\" value=\\\"target.value\\\"}} data-test-related-item-title />\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteRelatedItemAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-title-field}}\\\">\\n  One title by which the resource is known.\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemType\\\" class=\\\"required-label subtitle\\\">Related Item Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" doi-related-item-type data-test-related-item-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relatedItemType}} @helpText=\\\"The type of the Related Item.\\\" @options={{this.relatedItemTypeList}} @destination={{this.fragment.relatedItemType}} as |el|>\\n    <el.control @onChange={{action \\\"selectRelatedItemTypeAction\\\"}} @allowClear={{true}} @placeholder=\\\"Select related item Type\\\" @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relationType\\\" class=\\\"required-label subtitle\\\">Relation Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" doi-relation-type data-test-related-relation-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relationType}} @helpText=\\\"The type of the Relation.\\\" @options={{this.relationTypeList}} @destination={{this.fragment.relationType}} as |el|>\\n    <el.control\\n      @allowClear={{true}}\\n      @onChange={{action \\\"selectRelationTypeAction\\\"}}\\n      @placeholder=\\\"Select Relation Type\\\"\\n      @disabled={{this.disabled}} \\n      @searchEnabled={{true}} as |item|>\\n        {{humanize (underscore item)}}\\n    </el.control>\\n  </@form.element>\\n</div>\\n\\n<div>\\n  <label for=\\\"relationTypeInformation\\\" class=\\\"subtitle\\\">Relation Type Information</label> \\n</div> \\n<div doi-relation-type-information data-test-relation-type-information-field>\\n  <input type=\\\"text\\\" class=\\\"form-control relation-type-information-field\\\" value={{this.fragment.relationTypeInformation}} placeholder=\\\"Relation Type Information\\\"\\n    oninput={{action \\\"updateRelationTypeInformationAction\\\" value=\\\"target.value\\\"}} data-test-relation-type-information />\\n</div>\\n<div\\n  class=\\\"help-block help-block-fragment relation-type-information-field\\\">\\n  Text to support the Relation Type.\\n</div>\\n\\n<DoiRelatedItemIdentifier @model={{this.model}} @form={{this.form}} @fragment={{this.fragment.relatedItemIdentifier}} />\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemVolume\\\" class=\\\"subtitle\\\">Volume</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-volume-field\\\" placeholder=\\\"\\\" value={{this.fragment.volume}} oninput={{action \\\"updateRelatedItemVolumeAction\\\" value=\\\"target.value\\\"}} data-test-related-item-volume />\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-volume-field\\\">\\n  Volume of the related item.\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemIssue\\\" class=\\\"subtitle\\\">Issue</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-issue-field\\\" placeholder=\\\"\\\" value={{this.fragment.issue}} oninput={{action \\\"updateRelatedItemIssueAction\\\" value=\\\"target.value\\\"}} data-test-related-item-issue />\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-issue-field\\\">\\n  Issue number or name of the related item.\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemNumber\\\" class=\\\"subtitle\\\">Number</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-number-field\\\" placeholder=\\\"\\\" value={{this.fragment.number}} oninput={{action \\\"updateRelatedItemNumberAction\\\" value=\\\"target.value\\\"}} data-test-related-item-number />\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-number-field\\\">\\n  Number of the related item e.g. report number of article number.\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemPublicationYear\\\" class=\\\"subtitle\\\">Publication Year</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-publication-year-field\\\" placeholder=\\\"\\\" value={{this.fragment.publicationYear}} oninput={{action \\\"updateRelatedItemPublicationYearAction\\\" value=\\\"target.value\\\"}} data-test-related-item-publication-year />\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-volume-field\\\">\\n  The year when the resource was or will be made publicly available.\\n</div>\\n\\n<div class=\\\"label-vertical\\\">Related Item's Creators</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    {{#if this.showRelatedItemCreators}}\\n      {{#each this.fragment.creators as |creator index|}}\\n      <DoiRelatedItemCreator @model={{this.model}} @fragment={{creator}} @creator={{this.fragment}} @form={{this.form}}\\n        @index={{index}} />\\n      {{/each}}\\n      {{#if (lte this.fragment.creators.length 24)}}\\n      <BsButton id=\\\"add-related-item-creator\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addRelatedItemCreatorAction\\\" }}><i\\n          class=\\\"fas fa-plus\\\"></i> Add another creator</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.fragment.creators.length 0)}}\\n      <BsButton id=\\\"toggle-related-item-creators_1\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"toggleRelatedItemCreatorsAction\\\" }}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize\\n        this.fragment.creators.length 'creator'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.fragment.creators.length 0)}}\\n      <BsButton id=\\\"toggle-related-item-creators_0\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"toggleRelatedItemCreatorsAction\\\" }}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize\\n        this.fragment.creators.length 'creator'}}</BsButton>\\n      {{else}}\\n      <BsButton id=\\\"add-related-item-creator\\\" class=\\\"btn-sm btn-warnin\\\" @outline={{true}}\\n        @onClick={{action \\\"addRelatedItemCreatorAction\\\" }}><i class=\\\"fas fa-plus\\\"></i> Add creator</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\\n<div class=\\\"label-vertical\\\">Related Item's Contributors</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n\\n    {{#if this.showRelatedItemContributors}}\\n      {{#each this.fragment.contributors as |contributor index|}}\\n      <DoiRelatedItemContributor @model={{this.model}} @fragment={{contributor}} @creator={{this.fragment}} @form={{this.form}}\\n        @index={{index}} />\\n      {{/each}}\\n      {{#if (lte this.fragment.contributors.length 24)}}\\n      <BsButton id=\\\"add-related-item-contributor\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"addRelatedItemContributorAction\\\" }}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.relatedIdentifiers.length 0) \\\"another \\\"}} contributor</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.fragment.contributors.length 0)}}\\n      <BsButton id=\\\"toggle-related-item-contributors_1\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"toggleRelatedItemContributorsAction\\\" }}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize\\n        this.fragment.contributors.length 'contributor'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.fragment.contributors.length 0)}}\\n      <BsButton id=\\\"toggle-related-item-contributors_0\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"toggleRelatedItemContributorsAction\\\" }}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize\\n        this.fragment.contributors.length 'contributor'}}</BsButton>\\n      {{else}}\\n      <BsButton id=\\\"add-related-item-contributor\\\" class=\\\"btn-sm btn-warnin\\\" @outline={{true}}\\n        @onClick={{action \\\"addRelatedItemContributorAction\\\" }}><i class=\\\"fas fa-plus\\\"></i> Add contributor</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n<hr />\\n\", {\"contents\":\"<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemTitle\\\" class=\\\"required-label subtitle\\\">Title</label> \\n</div> \\n\\n<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" class=\\\"form-control related-item-title-field\\\" value={{this.fragment.title}} placeholder=\\\"\\\"\\n  oninput={{action \\\"updateRelatedItemTitleAction\\\" value=\\\"target.value\\\"}} data-test-related-item-title />\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteRelatedItemAction\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-title-field}}\\\">\\n  One title by which the resource is known.\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemType\\\" class=\\\"required-label subtitle\\\">Related Item Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" doi-related-item-type data-test-related-item-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relatedItemType}} @helpText=\\\"The type of the Related Item.\\\" @options={{this.relatedItemTypeList}} @destination={{this.fragment.relatedItemType}} as |el|>\\n    <el.control @onChange={{action \\\"selectRelatedItemTypeAction\\\"}} @allowClear={{true}} @placeholder=\\\"Select related item Type\\\" @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relationType\\\" class=\\\"required-label subtitle\\\">Relation Type</label> \\n</div> \\n<div class=\\\"power-select-fragment\\\" doi-relation-type data-test-related-relation-type>\\n  <@form.element @controlType=\\\"power-select\\\" @value={{this.fragment.relationType}} @helpText=\\\"The type of the Relation.\\\" @options={{this.relationTypeList}} @destination={{this.fragment.relationType}} as |el|>\\n    <el.control\\n      @allowClear={{true}}\\n      @onChange={{action \\\"selectRelationTypeAction\\\"}}\\n      @placeholder=\\\"Select Relation Type\\\"\\n      @disabled={{this.disabled}} \\n      @searchEnabled={{true}} as |item|>\\n        {{humanize (underscore item)}}\\n    </el.control>\\n  </@form.element>\\n</div>\\n\\n<div>\\n  <label for=\\\"relationTypeInformation\\\" class=\\\"subtitle\\\">Relation Type Information</label> \\n</div> \\n<div doi-relation-type-information data-test-relation-type-information-field>\\n  <input type=\\\"text\\\" class=\\\"form-control relation-type-information-field\\\" value={{this.fragment.relationTypeInformation}} placeholder=\\\"Relation Type Information\\\"\\n    oninput={{action \\\"updateRelationTypeInformationAction\\\" value=\\\"target.value\\\"}} data-test-relation-type-information />\\n</div>\\n<div\\n  class=\\\"help-block help-block-fragment relation-type-information-field\\\">\\n  Text to support the Relation Type.\\n</div>\\n\\n<DoiRelatedItemIdentifier @model={{this.model}} @form={{this.form}} @fragment={{this.fragment.relatedItemIdentifier}} />\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemVolume\\\" class=\\\"subtitle\\\">Volume</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-volume-field\\\" placeholder=\\\"\\\" value={{this.fragment.volume}} oninput={{action \\\"updateRelatedItemVolumeAction\\\" value=\\\"target.value\\\"}} data-test-related-item-volume />\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-volume-field\\\">\\n  Volume of the related item.\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemIssue\\\" class=\\\"subtitle\\\">Issue</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-issue-field\\\" placeholder=\\\"\\\" value={{this.fragment.issue}} oninput={{action \\\"updateRelatedItemIssueAction\\\" value=\\\"target.value\\\"}} data-test-related-item-issue />\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-issue-field\\\">\\n  Issue number or name of the related item.\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemNumber\\\" class=\\\"subtitle\\\">Number</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-number-field\\\" placeholder=\\\"\\\" value={{this.fragment.number}} oninput={{action \\\"updateRelatedItemNumberAction\\\" value=\\\"target.value\\\"}} data-test-related-item-number />\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-number-field\\\">\\n  Number of the related item e.g. report number of article number.\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"relatedItemPublicationYear\\\" class=\\\"subtitle\\\">Publication Year</label> \\n</div> \\n<input type=\\\"text\\\"\\n    class=\\\"form-control related-item-publication-year-field\\\" placeholder=\\\"\\\" value={{this.fragment.publicationYear}} oninput={{action \\\"updateRelatedItemPublicationYearAction\\\" value=\\\"target.value\\\"}} data-test-related-item-publication-year />\\n\\n<div\\n  class=\\\"help-block help-block-fragment related-item-volume-field\\\">\\n  The year when the resource was or will be made publicly available.\\n</div>\\n\\n<div class=\\\"label-vertical\\\">Related Item's Creators</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n    {{#if this.showRelatedItemCreators}}\\n      {{#each this.fragment.creators as |creator index|}}\\n      <DoiRelatedItemCreator @model={{this.model}} @fragment={{creator}} @creator={{this.fragment}} @form={{this.form}}\\n        @index={{index}} />\\n      {{/each}}\\n      {{#if (lte this.fragment.creators.length 24)}}\\n      <BsButton id=\\\"add-related-item-creator\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addRelatedItemCreatorAction\\\" }}><i\\n          class=\\\"fas fa-plus\\\"></i> Add another creator</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.fragment.creators.length 0)}}\\n      <BsButton id=\\\"toggle-related-item-creators_1\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"toggleRelatedItemCreatorsAction\\\" }}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize\\n        this.fragment.creators.length 'creator'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.fragment.creators.length 0)}}\\n      <BsButton id=\\\"toggle-related-item-creators_0\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"toggleRelatedItemCreatorsAction\\\" }}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize\\n        this.fragment.creators.length 'creator'}}</BsButton>\\n      {{else}}\\n      <BsButton id=\\\"add-related-item-creator\\\" class=\\\"btn-sm btn-warnin\\\" @outline={{true}}\\n        @onClick={{action \\\"addRelatedItemCreatorAction\\\" }}><i class=\\\"fas fa-plus\\\"></i> Add creator</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\\n<div class=\\\"label-vertical\\\">Related Item's Contributors</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-sm-12\\\">\\n\\n    {{#if this.showRelatedItemContributors}}\\n      {{#each this.fragment.contributors as |contributor index|}}\\n      <DoiRelatedItemContributor @model={{this.model}} @fragment={{contributor}} @creator={{this.fragment}} @form={{this.form}}\\n        @index={{index}} />\\n      {{/each}}\\n      {{#if (lte this.fragment.contributors.length 24)}}\\n      <BsButton id=\\\"add-related-item-contributor\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"addRelatedItemContributorAction\\\" }}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.relatedIdentifiers.length 0) \\\"another \\\"}} contributor</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.fragment.contributors.length 0)}}\\n      <BsButton id=\\\"toggle-related-item-contributors_1\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"toggleRelatedItemContributorsAction\\\" }}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize\\n        this.fragment.contributors.length 'contributor'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.fragment.contributors.length 0)}}\\n      <BsButton id=\\\"toggle-related-item-contributors_0\\\" class=\\\"btn-sm\\\" @outline={{true}}\\n        @onClick={{action \\\"toggleRelatedItemContributorsAction\\\" }}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize\\n        this.fragment.contributors.length 'contributor'}}</BsButton>\\n      {{else}}\\n      <BsButton id=\\\"add-related-item-contributor\\\" class=\\\"btn-sm btn-warnin\\\" @outline={{true}}\\n        @onClick={{action \\\"addRelatedItemContributorAction\\\" }}><i class=\\\"fas fa-plus\\\"></i> Add contributor</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-related-item.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-related-item.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\n/* eslint-disable no-useless-escape */\nimport Component from '@ember/component';\nimport { pascalCase } from 'pascal-case';\n\nconst relationTypeList = [\n  'Cites',\n  'Is cited by',\n  'Compiles',\n  'Is compiled by',\n  'Continues',\n  'Is continued by',\n  'Describes',\n  'Is described by',\n  'Documents',\n  'Is documented by',\n  'Is derived from',\n  'Is source of',\n  'Has metadata',\n  'Is metadata for',\n  'Has part',\n  'Is part of',\n  'Is supplemented by',\n  'Is supplement to',\n  'Obsoletes',\n  'Is obsoleted by',\n  'References',\n  'Is referenced by',\n  'Requires',\n  'Is required by',\n  'Reviews',\n  'Is reviewed by',\n  'Has version',\n  'Is version of',\n  'Is new version of',\n  'Is previous version of',\n  'Is published in',\n  'Is variant form of',\n  'Is original form of',\n  'Is identical to',\n  'Is collected by',\n  'Collects',\n  'Is translation of',\n  'Has translation',\n  'Other'\n];\n\nconst relatedItemTypeList = [\n  'Audiovisual',\n  'Award',\n  'Book',\n  'BookChapter',\n  'Collection',\n  'ComputationalNotebook',\n  'ConferencePaper',\n  'ConferenceProceeding',\n  'DataPaper',\n  'Dataset',\n  'Dissertation',\n  'Event',\n  'Image',\n  'Instrument',\n  'InteractiveResource',\n  'Journal',\n  'JournalArticle',\n  'Model',\n  'OutputManagementPlan',\n  'PeerReview',\n  'PhysicalObject',\n  'Poster',\n  'Preprint',\n  'Presentation',\n  'Project',\n  'Report',\n  'Service',\n  'Software',\n  'Sound',\n  'Standard',\n  'StudyRegistration',\n  'Text',\n  'Workflow',\n  'Other'\n];\n\n@classic\nexport default class DoiRelatedItem extends Component {\n  @service\n  store;\n\n  relationTypeList = relationTypeList;\n  relationTypes = relationTypeList;\n  relatedItemTypeList = relatedItemTypeList;\n  relatedItemTypes = relatedItemTypeList;\n  showRelatedItemCreators = false;\n  showRelatedItemContributors = false;\n\n  init(...args) {\n    super.init(...args);\n\n    this.isMetadataRelationTypes = this.isMetadataRelationTypes || [\n      'HasMetadata',\n      'IsMetadataFor'\n    ];\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.fragment.get('relatedItemIdentifier')) {\n      this.fragment.set('relatedIdentifier', {});\n      // this.fragment.get('relatedIdentifier').createFragment();\n    }\n\n    if (!this.fragment.get('titles')) {\n      this.fragment.set('titles', []);\n    }\n    if (this.fragment.get('titles').length == 0) {\n      this.fragment.get('titles').createFragment();\n    }\n\n    if (!this.fragment.get('creators')) {\n      this.fragment.set('creators', []);\n    }\n\n    if (!this.fragment.get('contributors')) {\n      this.fragment.set('contributors', []);\n    }\n  }\n\n  selectRelationType(relationType) {\n    if (this.isMetadataRelationTypes.includes(relationType)) {\n      this.set('isMetadataRelationType', true);\n    } else {\n      this.set('isMetadataRelationType', false);\n      this.fragment.set('schemeType', null);\n      this.fragment.set('relatedMetadataScheme', null);\n      this.fragment.set('schemeUri', null);\n    }\n    if (relationType) {\n      this.fragment.set('relationType', pascalCase(relationType));\n    } else {\n      this.fragment.set('relationType', null);\n    }\n    this.set('relationTypes', relationTypeList);\n  }\n\n  selectRelatedItemType(relatedItemType) {\n    if (relatedItemType) {\n      this.fragment.set('relatedItemType', pascalCase(relatedItemType));\n    } else {\n      this.fragment.set('relatedItemType', null);\n    }\n    this.set('relatedItemTypes', relatedItemTypeList);\n  }\n\n  @action\n  updateRelatedItemTitleAction(value) {\n    this.fragment.set('titles', [{ title: value }]);\n  }\n\n  @action\n  updateRelatedItemVolumeAction(value) {\n    this.fragment.set('volume', value);\n  }\n\n  @action\n  updateRelatedItemIssueAction(value) {\n    this.fragment.set('issue', value);\n  }\n\n  @action\n  updateRelatedItemNumberAction(value) {\n    this.fragment.set('number', value);\n  }\n\n  @action\n  updateRelatedItemPublicationYearAction(value) {\n    this.fragment.set('publicationYear', value);\n  }\n\n  @action\n  selectRelationTypeAction(relationType) {\n    this.selectRelationType(relationType);\n  }\n\n  @action\n  updateRelationTypeInformationAction(value) {\n    this.fragment.set('relationTypeInformation', value);\n  }\n\n  @action\n  selectRelatedItemTypeAction(relatedItemType) {\n    this.selectRelatedItemType(relatedItemType);\n  }\n\n  @action\n  deleteRelatedItemAction() {\n    this.model.get('relatedItems').removeObject(this.fragment);\n  }\n\n  @action\n  addRelatedItemCreatorAction() {\n    this.fragment.get('creators').createFragment();\n    this.set('showRelatedItemCreators', true);\n  }\n\n  @action\n  toggleRelatedItemCreatorsAction() {\n    this.set('showRelatedItemCreators', !this.showRelatedItemCreators);\n  }\n\n  @action\n  addRelatedItemContributorAction() {\n    this.fragment.get('contributors').createFragment();\n    this.set('showRelatedItemContributors', true);\n  }\n\n  @action\n  toggleRelatedItemContributorsAction() {\n    this.set(\n      'showRelatedItemContributors',\n      !this.showRelatedItemContributors\n    );\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\" data-test-related-items-form-group>\\n  <label class=\\\"control-label col-md-3\\\" data-test-related-items>Related Items</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Related Items.</div>\\n    {{#if this.showRelatedItems}}\\n      {{#each this.model.relatedItems as |relatedItem index|}}\\n        <DoiRelatedItem @model={{this.model}} @fragment={{relatedItem}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.relatedItems.length 24)}}\\n        <BsButton id=\\\"add-related-item\\\" class=\\\"btn-sm btn-warning\\\" @outline={{true}} @onClick={{action \\\"addRelatedItem\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.relatedItems.length 0) \\\"another \\\"}} related item</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.relatedItems.length 0)}}\\n        <BsButton id=\\\"toggle-related-items\\\" class=\\\"btn-sm btn-warning\\\" @outline={{true}} @onClick={{action \\\"toggleRelatedItems\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.relatedItems.length 'related item'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.relatedItems.length 0)}}\\n        <BsButton id=\\\"toggle-related-items\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRelatedItems\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.relatedItems.length 'related item'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-related-item\\\" @outline={{true}} @onClick={{action \\\"addRelatedItem\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add related item</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"form-group\\\" data-test-related-items-form-group>\\n  <label class=\\\"control-label col-md-3\\\" data-test-related-items>Related Items</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Related Items.</div>\\n    {{#if this.showRelatedItems}}\\n      {{#each this.model.relatedItems as |relatedItem index|}}\\n        <DoiRelatedItem @model={{this.model}} @fragment={{relatedItem}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.relatedItems.length 24)}}\\n        <BsButton id=\\\"add-related-item\\\" class=\\\"btn-sm btn-warning\\\" @outline={{true}} @onClick={{action \\\"addRelatedItem\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.relatedItems.length 0) \\\"another \\\"}} related item</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.relatedItems.length 0)}}\\n        <BsButton id=\\\"toggle-related-items\\\" class=\\\"btn-sm btn-warning\\\" @outline={{true}} @onClick={{action \\\"toggleRelatedItems\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.relatedItems.length 'related item'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.relatedItems.length 0)}}\\n        <BsButton id=\\\"toggle-related-items\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRelatedItems\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.relatedItems.length 'related item'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-related-item\\\" @outline={{true}} @onClick={{action \\\"addRelatedItem\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add related item</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/doi-related-items.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-related-items.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiRelatedItems extends Component {\n  showRelatedItems = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('relatedItems')) {\n      this.model.set('relatedItems', []);\n    }\n  }\n\n  @action\n  addRelatedItem() {\n    this.model.get('relatedItems').createFragment();\n    this.set('showRelatedItems', true);\n  }\n\n  @action\n  toggleRelatedItems() {\n    this.set('showRelatedItems', !this.showRelatedItems);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-rights-list>Rights</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Rights information for the resource.</div>\\n    {{#if this.showRights}}\\n      {{#each this.model.rightsList as |rights index|}}\\n        <DoiRights @model={{this.model}} @fragment={{rights}} @form={{this.form}} @index={{index}} @spdx={{this.spdx}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.rightsList.length 4)}}\\n        <BsButton id=\\\"add-rights\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addRights\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.rightsList.length 0) \\\"more \\\"}} rights</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.rightsList.length 0)}}\\n        <BsButton id=\\\"toggle-rights\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRights\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.rightsList.length 'right'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.rightsList.length 0)}}\\n        <BsButton id=\\\"toggle-rights\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRights\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.rightsList.length 'right'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-rights\\\" @outline={{true}} @onClick={{action \\\"addRights\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add rights</BsButton>\\n      {{/if}}\\n    {{/if}}    \\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-rights-list>Rights</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Rights information for the resource.</div>\\n    {{#if this.showRights}}\\n      {{#each this.model.rightsList as |rights index|}}\\n        <DoiRights @model={{this.model}} @fragment={{rights}} @form={{this.form}} @index={{index}} @spdx={{this.spdx}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.rightsList.length 4)}}\\n        <BsButton id=\\\"add-rights\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"addRights\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.rightsList.length 0) \\\"more \\\"}} rights</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.rightsList.length 0)}}\\n        <BsButton id=\\\"toggle-rights\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRights\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.rightsList.length 'right'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.rightsList.length 0)}}\\n        <BsButton id=\\\"toggle-rights\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleRights\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.rightsList.length 'right'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-rights\\\" @outline={{true}} @onClick={{action \\\"addRights\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add rights</BsButton>\\n      {{/if}}\\n    {{/if}}    \\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-rights-list.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-rights-list.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiRightsList extends Component {\n  showRights = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('rightsList')) {\n      this.model.set('rightsList', []);\n    }\n  }\n\n  @action\n  addRights() {\n    this.model.get('rightsList').createFragment();\n    this.set('showRights', true);\n  }\n\n  @action\n  toggleRights() {\n    this.set('showRights', !this.showRights);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"power-select-fragment\\\" doi-rights data-test-rights>\\n  <@form.element @controlType=\\\"power-select\\\" @options={{this.spdxLicenseList}} @value={{this.fragment.rights}} @destination={{this.fragment.rights}} as |el|>\\n    <el.control @searchEnabled={{true}} @onChange={{action \\\"selectRights\\\"}} @placeholder=\\\"Search standard licenses\\\" @onKeydown={{action \\\"createOnEnter\\\"}} @search={{action \\\"searchRights\\\"}} @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @noMatchesMessage=\\\"Press ENTER to add a new license.\\\" @disabled={{this.disabled}} as |item|>\\n      {{if item.name item.name this.fragment.rights}}\\n    </el.control>\\n    <div class=\\\"help-block\\\">\\n      The list of standard licenses is provided by <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://spdx.org\\\">SPDX</a>.\\n    </div>\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"rights-uri\\\" class=\\\"subtitle\\\">Rights URI</label>\\n</div>\\n<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" placeholder=\\\"Rights URI\\\" class=\\\"form-control rights-uri-field\\\" value={{this.fragment.rightsUri}} disabled={{this.isSpdxId}} oninput={{action \\\"updateRightsUri\\\" value=\\\"target.value\\\"}} data-test-rights-uri />\\n\\n  <div class=\\\"help-block help-block-fragment rights-uri-field}}\\\">\\n    The URI of the license.\\n  </div>\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteRights\\\" this.index}} data-test-delete-rights><i class=\\\"fas fa-trash\\\"></i> </BsButton >\\n  </span>\\n</div>\\n\\n  <hr />\\n\", {\"contents\":\"<div class=\\\"power-select-fragment\\\" doi-rights data-test-rights>\\n  <@form.element @controlType=\\\"power-select\\\" @options={{this.spdxLicenseList}} @value={{this.fragment.rights}} @destination={{this.fragment.rights}} as |el|>\\n    <el.control @searchEnabled={{true}} @onChange={{action \\\"selectRights\\\"}} @placeholder=\\\"Search standard licenses\\\" @onKeydown={{action \\\"createOnEnter\\\"}} @search={{action \\\"searchRights\\\"}} @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @noMatchesMessage=\\\"Press ENTER to add a new license.\\\" @disabled={{this.disabled}} as |item|>\\n      {{if item.name item.name this.fragment.rights}}\\n    </el.control>\\n    <div class=\\\"help-block\\\">\\n      The list of standard licenses is provided by <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://spdx.org\\\">SPDX</a>.\\n    </div>\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"rights-uri\\\" class=\\\"subtitle\\\">Rights URI</label>\\n</div>\\n<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" placeholder=\\\"Rights URI\\\" class=\\\"form-control rights-uri-field\\\" value={{this.fragment.rightsUri}} disabled={{this.isSpdxId}} oninput={{action \\\"updateRightsUri\\\" value=\\\"target.value\\\"}} data-test-rights-uri />\\n\\n  <div class=\\\"help-block help-block-fragment rights-uri-field}}\\\">\\n    The URI of the license.\\n  </div>\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteRights\\\" this.index}} data-test-delete-rights><i class=\\\"fas fa-trash\\\"></i> </BsButton >\\n  </span>\\n</div>\\n\\n  <hr />\\n\",\"moduleName\":\"bracco/components/doi-rights.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-rights.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { isBlank, typeOf } from '@ember/utils';\n\n@classic\nexport default class DoiRights extends Component {\n  isSpdxId = false;\n\n  init(...args) {\n    super.init(...args);\n\n    this.selected = this.selected || [];\n    this.set('spdxLicenseListComplete', this.spdx.spdxList);\n    this.set('spdxLicenseList', this.spdx.spdxList);\n  }\n\n  updateRights(rights) {\n    switch (true) {\n      case isBlank(rights):\n        this.fragment.set('rights', null);\n        this.fragment.set('rightsUri', null);\n        this.set('isSpdxId', false);\n        break;\n      case typeOf(rights) === 'string':\n        this.fragment.set('rights', rights);\n        this.fragment.set('rightsUri', null);\n        this.set('isSpdxId', false);\n        break;\n      default:\n        this.fragment.set('rights', rights.name);\n        this.fragment.set('rightsUri', rights.seeAlso[0]);\n        this.set('isSpdxId', true);\n        break;\n    }\n  }\n\n  @action\n  createOnEnter(select, e) {\n    if (\n      e.keyCode === 13 &&\n      select.isOpen &&\n      !select.highlighted &&\n      !isBlank(select.searchText)\n    ) {\n      if (!this.selected.includes(select.searchText)) {\n        this.spdxLicenseList.push(select.searchText);\n        select.actions.choose(select.searchText);\n        this.updateRights(select.searchText);\n        this.set('spdxLicenseList', this.spdxLicenseListComplete);\n      }\n    }\n  }\n\n  @action\n  selectRights(value) {\n    this.updateRights(value);\n  }\n\n  @action\n  updateRightsUri(value) {\n    this.fragment.set('rightsUri', value);\n  }\n\n  @action\n  deleteRights() {\n    this.model.get('rightsList').removeObject(this.fragment);\n  }\n\n  @action\n  searchRights(query) {\n    let rightsFound = this.spdxLicenseListComplete.filter(function (rights) {\n      return rights.name.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('spdxLicenseList', rightsFound);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" placeholder=\\\"Size\\\" class=\\\"form-control size-field\\\" value={{this.fragment}} oninput={{action \\\"updateSize\\\" value=\\\"target.value\\\"}} onblur={{action \\\"selectSize\\\" }} data-test-size/>    \\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteSize\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n<hr />\\n\", {\"contents\":\"<div class=\\\"input-group\\\">\\n  <input type=\\\"text\\\" placeholder=\\\"Size\\\" class=\\\"form-control size-field\\\" value={{this.fragment}} oninput={{action \\\"updateSize\\\" value=\\\"target.value\\\"}} onblur={{action \\\"selectSize\\\" }} data-test-size/>    \\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteSize\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n  </span>\\n</div>\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-size.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-size.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiSize extends Component {\n  @action\n  updateSize(value) {\n    this.set('fragment', value);\n  }\n\n  @action\n  selectSize() {\n    this.model.get('sizes').splice(this.index, 1, this.fragment);\n    this.model.set('sizes', Array.from(this.model.get('sizes')));\n  }\n\n  @action\n  deleteSize() {\n    this.model.get('sizes').splice(this.index, 1);\n    this.model.set('sizes', Array.from(this.model.get('sizes')));\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-sizes>Sizes</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Size (e.g. bytes, pages, inches, etc.) or duration (extent), e.g. hours, minutes, days, etc., of the resource.</div>\\n    {{#if this.showSizes}}\\n      {{#each this.model.sizes as |size index|}}\\n        <DoiSize @model={{this.model}} @fragment={{size}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.sizes.length 5)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-size\\\" @outline={{true}} @onClick={{action \\\"addSize\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.sizes.length 0) \\\"another \\\"}}size</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.sizes.length 0)}}\\n        <BsButton id=\\\"toggle-sizes\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleSizes\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.sizes.length 'size'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.sizes.length 0)}}\\n        <BsButton id=\\\"toggle-sizes\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleSizes\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.sizes.length 'size'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-size\\\" @outline={{true}} @onClick={{action \\\"addSize\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add size</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-sizes>Sizes</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Size (e.g. bytes, pages, inches, etc.) or duration (extent), e.g. hours, minutes, days, etc., of the resource.</div>\\n    {{#if this.showSizes}}\\n      {{#each this.model.sizes as |size index|}}\\n        <DoiSize @model={{this.model}} @fragment={{size}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.sizes.length 5)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-size\\\" @outline={{true}} @onClick={{action \\\"addSize\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.sizes.length 0) \\\"another \\\"}}size</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.sizes.length 0)}}\\n        <BsButton id=\\\"toggle-sizes\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleSizes\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.sizes.length 'size'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.sizes.length 0)}}\\n        <BsButton id=\\\"toggle-sizes\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleSizes\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.sizes.length 'size'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-size\\\" @outline={{true}} @onClick={{action \\\"addSize\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add size</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-sizes.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-sizes.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { schedule } from '@ember/runloop';\n\n@classic\nexport default class DoiSizes extends Component {\n  showSizes = false;\n\n  init() {\n    super.init();\n\n    schedule(\"afterRender\",this,function() {\n      if (!this.model.get('sizes')) {\n        this.model.set('sizes', []);\n      }\n    });\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n  }\n\n  @action\n  addSize() {\n    this.model.get('sizes').push('');\n    this.model.set('sizes', Array.from(this.model.get('sizes')));\n    this.set('showSizes', true);\n  }\n\n  @action\n  toggleSizes() {\n    this.set('showSizes', !this.showSizes);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\">State</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">The state determines whether a DOI is registered in the global Handle System and if its metadata is publicly available. Once in Registered or Findable state, a DOI cannot be deleted. <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/doi-states\\\">Learn more&nbsp;…</a></div>\\n    <div><RadioButton @value=\\\"draft\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectStateAction\\\"}} @disabled={{this.draft}} />Draft <span class=\\\"help-block\\\">the DOI is not yet registered in the global Handle System, does not need to have valid metadata or a URL, and can be deleted</span></div>\\n    <div><RadioButton @value=\\\"registered\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectStateAction\\\"}} @disabled={{this.registered}} />Registered <span class=\\\"help-block\\\">the DOI is registered in the global Handle System, but its metadata is not publicly available</span></div>\\n    <div><RadioButton @value=\\\"findable\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectStateAction\\\"}} @disabled={{this.findable}} />Findable <span class=\\\"help-block\\\">the DOI is registered in the global Handle System and its metadata is publicly available</span></div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\">State</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">The state determines whether a DOI is registered in the global Handle System and if its metadata is publicly available. Once in Registered or Findable state, a DOI cannot be deleted. <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/doi-states\\\">Learn more&nbsp;…</a></div>\\n    <div><RadioButton @value=\\\"draft\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectStateAction\\\"}} @disabled={{this.draft}} />Draft <span class=\\\"help-block\\\">the DOI is not yet registered in the global Handle System, does not need to have valid metadata or a URL, and can be deleted</span></div>\\n    <div><RadioButton @value=\\\"registered\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectStateAction\\\"}} @disabled={{this.registered}} />Registered <span class=\\\"help-block\\\">the DOI is registered in the global Handle System, but its metadata is not publicly available</span></div>\\n    <div><RadioButton @value=\\\"findable\\\" @groupValue={{this.state}} @radioClass=\\\"radio\\\" @changed={{action \\\"selectStateAction\\\"}} @disabled={{this.findable}} />Findable <span class=\\\"help-block\\\">the DOI is registered in the global Handle System and its metadata is publicly available</span></div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-state.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-state.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { A } from '@ember/array';\n\nconst stateList = {\n  draft: ['draft', 'registered', 'findable'],\n  registered: ['registered', 'findable'],\n  findable: ['registered', 'findable']\n};\n\n@classic\nexport default class DoiState extends Component {\n  draft = true;\n  registered = true;\n  findable = true;\n  stateList = stateList;\n  state = null;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.selectState(this.model.get('state'));\n  }\n\n  selectState(state) {\n    this.set('state', state);\n    this.model.set('state', state);\n    this.setStates(state);\n  }\n\n  setStates(state) {\n    if (state == '' || state == 'undetermined') {\n      state = 'draft';\n    }\n    let states = [];\n    states = stateList[state];\n    A(states).forEach((item) => {\n      this.set(item, false);\n    });\n  }\n\n  @action\n  selectStateAction(state) {\n    this.selectState(state);\n  }\n\n  @action\n  setStatesAction(state) {\n    this.setStates(state);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (and (not this.simple) (gt this.index 0)) }}\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"subject\\\" class=\\\"subtitle\\\">\\n      Subject\\n    </label>\\n  </div>\\n{{/if}}\\n<div class=\\\"input-group\\\">\\n  <div class=\\\"power-select-fragment\\\" doi-subject data-test-doi-subject>\\n    <@form.element\\n       @controlType=\\\"power-select\\\"\\n       @options={{this.subjects}}\\n       @value={{this.fragment.subject}}\\n       @destination={{this.fragment.subject}}\\n       class=\\\"power-select-subject\\\" as |el|\\n       >\\n       <el.control\\n         @searchEnabled={{true}}\\n         @onChange={{action \\\"updateSubject\\\"}}\\n         @placeholder=\\\"Search Subject from the OECD Fields of Science and Technology (FOS) OR create a new keyword\\\"\\n         @onKeydown={{ action \\\"createOnEnter\\\" }}\\n         @search={{ action \\\"searchSubject\\\" }}\\n         @allowClear={{true}}\\n         @searchPlaceholder=\\\"Type to search subject OR create a new keyword...\\\"\\n         @noMatchesMessage=\\\"Press ENTER to add new subject, keyword, classification code, or key phrase describing the resource.\\\"\\n         @disabled={{this.disabled}}\\n         class=\\\"power-select-subject-field\\\"\\n         />\\n       {{#unless this.simple }}\\n         <div class=\\\"help-block\\\">\\n           The default subject scheme is provided by the\\n           <a\\n             target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf\\\"\\n             >\\n             OECD Fields of Science and Technology (FOS)\\n           </a>\\n           .\\n         </div>\\n       {{/unless}}\\n     </@form.element>\\n  </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;\\\">\\n    <BsButton @outline={{true}} @onClick={{action 'deleteSubject' this.index}}>\\n      <i class=\\\"fas fa-trash pull-left\\\"></i>\\n    </BsButton>\\n  </span>\\n</div>\\n{{#unless this.simple }}\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"subjectScheme\\\" class=\\\"subtitle\\\">\\n    Subject Scheme\\n  </label>\\n</div>\\n<div class=\\\"input-group\\\">\\n  <input\\n    type=\\\"text\\\"\\n    placeholder=\\\"Subject Scheme\\\"\\n    class=\\\"form-control subject-scheme-field\\\"\\n    disabled={{this.oecdSelected}}\\n    value={{this.fragment.subjectScheme}}\\n    oninput={{action 'updateSubjectScheme' value='target.value'}}\\n    data-test-subject-scheme\\n  />\\n  <div class=\\\"help-block help-block-fragment\\\">\\n    The name of the subject scheme or classification code or authority if one\\n    is used.\\n  </div>\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"subjectSchemeUri\\\" class=\\\"subtitle\\\">\\n      Subject Scheme URI\\n    </label>\\n  </div>\\n  <input\\n    type=\\\"text\\\"\\n    placeholder=\\\"Subject Scheme URI\\\"\\n    class=\\\"form-control subject-scheme-uri-field\\\"\\n    disabled={{this.oecdSelected}}\\n    value={{this.fragment.subjectSchemeUri}}\\n    oninput={{action 'updateSubjectSchemeUri' value='target.value'}}\\n    data-test-subject-uri\\n  />\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action 'deleteSubject' this.index}}>\\n      <i class=\\\"fas fa-trash\\\"></i>\\n    </BsButton>\\n  </span>\\n</div>\\n<div class=\\\"help-block help-block-fragment\\\">\\n  The URI of the subject identifier scheme. For example http://id.loc.gov/authorities/subjects\\n</div>\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"classificationCode\\\" class=\\\"subtitle\\\">\\n    Classification Code\\n  </label>\\n</div>\\n<input\\n  type=\\\"text\\\"\\n  placeholder=\\\"Classification Code\\\"\\n  class=\\\"form-control subject-classification-code-field\\\"\\n  disabled={{this.oecdSelected}}\\n  value={{this.fragment.classificationCode}}\\n  oninput={{action 'updateClassificationCode' value='target.value'}}\\n  data-test-classification-code\\n/>\\n<div class=\\\"help-block help-block-fragment\\\">\\n  The classification code used for the subject term in the subject scheme\\n</div>\\n<hr />\\n{{/unless}}\\n\", {\"contents\":\"{{#if (and (not this.simple) (gt this.index 0)) }}\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"subject\\\" class=\\\"subtitle\\\">\\n      Subject\\n    </label>\\n  </div>\\n{{/if}}\\n<div class=\\\"input-group\\\">\\n  <div class=\\\"power-select-fragment\\\" doi-subject data-test-doi-subject>\\n    <@form.element\\n       @controlType=\\\"power-select\\\"\\n       @options={{this.subjects}}\\n       @value={{this.fragment.subject}}\\n       @destination={{this.fragment.subject}}\\n       class=\\\"power-select-subject\\\" as |el|\\n       >\\n       <el.control\\n         @searchEnabled={{true}}\\n         @onChange={{action \\\"updateSubject\\\"}}\\n         @placeholder=\\\"Search Subject from the OECD Fields of Science and Technology (FOS) OR create a new keyword\\\"\\n         @onKeydown={{ action \\\"createOnEnter\\\" }}\\n         @search={{ action \\\"searchSubject\\\" }}\\n         @allowClear={{true}}\\n         @searchPlaceholder=\\\"Type to search subject OR create a new keyword...\\\"\\n         @noMatchesMessage=\\\"Press ENTER to add new subject, keyword, classification code, or key phrase describing the resource.\\\"\\n         @disabled={{this.disabled}}\\n         class=\\\"power-select-subject-field\\\"\\n         />\\n       {{#unless this.simple }}\\n         <div class=\\\"help-block\\\">\\n           The default subject scheme is provided by the\\n           <a\\n             target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf\\\"\\n             >\\n             OECD Fields of Science and Technology (FOS)\\n           </a>\\n           .\\n         </div>\\n       {{/unless}}\\n     </@form.element>\\n  </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;\\\">\\n    <BsButton @outline={{true}} @onClick={{action 'deleteSubject' this.index}}>\\n      <i class=\\\"fas fa-trash pull-left\\\"></i>\\n    </BsButton>\\n  </span>\\n</div>\\n{{#unless this.simple }}\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"subjectScheme\\\" class=\\\"subtitle\\\">\\n    Subject Scheme\\n  </label>\\n</div>\\n<div class=\\\"input-group\\\">\\n  <input\\n    type=\\\"text\\\"\\n    placeholder=\\\"Subject Scheme\\\"\\n    class=\\\"form-control subject-scheme-field\\\"\\n    disabled={{this.oecdSelected}}\\n    value={{this.fragment.subjectScheme}}\\n    oninput={{action 'updateSubjectScheme' value='target.value'}}\\n    data-test-subject-scheme\\n  />\\n  <div class=\\\"help-block help-block-fragment\\\">\\n    The name of the subject scheme or classification code or authority if one\\n    is used.\\n  </div>\\n  <div class=\\\"power-select-label\\\">\\n    <label for=\\\"subjectSchemeUri\\\" class=\\\"subtitle\\\">\\n      Subject Scheme URI\\n    </label>\\n  </div>\\n  <input\\n    type=\\\"text\\\"\\n    placeholder=\\\"Subject Scheme URI\\\"\\n    class=\\\"form-control subject-scheme-uri-field\\\"\\n    disabled={{this.oecdSelected}}\\n    value={{this.fragment.subjectSchemeUri}}\\n    oninput={{action 'updateSubjectSchemeUri' value='target.value'}}\\n    data-test-subject-uri\\n  />\\n  <span class=\\\"input-group-btn\\\">\\n    <BsButton @outline={{true}} @onClick={{action 'deleteSubject' this.index}}>\\n      <i class=\\\"fas fa-trash\\\"></i>\\n    </BsButton>\\n  </span>\\n</div>\\n<div class=\\\"help-block help-block-fragment\\\">\\n  The URI of the subject identifier scheme. For example http://id.loc.gov/authorities/subjects\\n</div>\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"classificationCode\\\" class=\\\"subtitle\\\">\\n    Classification Code\\n  </label>\\n</div>\\n<input\\n  type=\\\"text\\\"\\n  placeholder=\\\"Classification Code\\\"\\n  class=\\\"form-control subject-classification-code-field\\\"\\n  disabled={{this.oecdSelected}}\\n  value={{this.fragment.classificationCode}}\\n  oninput={{action 'updateClassificationCode' value='target.value'}}\\n  data-test-classification-code\\n/>\\n<div class=\\\"help-block help-block-fragment\\\">\\n  The classification code used for the subject term in the subject scheme\\n</div>\\n<hr />\\n{{/unless}}\\n\",\"moduleName\":\"bracco/components/doi-subject.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-subject.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { attributeBindings } from '@ember-decorators/component';\nimport Component from '@ember/component';\nimport { isBlank } from '@ember/utils';\nimport fosMapping from '../utils/fos-mappings';\n\nconst completeSubjectList = fosMapping.allLabels().sort();\n\n@classic\n@attributeBindings('simple')\nexport default class DoiSubject extends Component {\n  completeSubjectList = completeSubjectList;\n  subjects = completeSubjectList;\n  oecdSelected = false;\n\n  init(...args) {\n    super.init(...args);\n    this.selected = this.selected || [];\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (\n      this.fragment.get('subject') &&\n      completeSubjectList.includes(\n        this.fragment.get('subject').replace('FOS: ', '')\n      )\n    ) {\n      this.set('oecdSelected', true);\n    } else {\n      this.set('oecdSelected', false);\n    }\n  }\n\n  setSchemeUri(value) {\n    this.fragment.set('schemeUri', value);\n    this.set('schemeUri', value);\n  }\n\n  setScheme(value) {\n    this.fragment.set('subjectScheme', value);\n    this.set('subjectScheme', value);\n  }\n\n  setClassificationCode(value) {\n    this.fragment.set('classificationCode', value);\n    this.set('classificationCode', value);\n  }\n\n  subjectText(value) {\n    if (this.simple) {\n      return value;\n    }\n    return 'FOS: ' + value;\n  }\n\n  @action\n  createOnEnter(select, e) {\n    if (\n      e.keyCode === 13 &&\n      select.isOpen &&\n      !select.highlighted &&\n      !isBlank(select.searchText)\n    ) {\n      if (!this.selected.includes(select.searchText)) {\n        this.subjects.push(select.searchText);\n        select.actions.choose(select.searchText);\n        this.fragment.set('subject', select.searchText);\n        this.set('subjects', completeSubjectList);\n      }\n    }\n  }\n\n  @action\n  updateSubject(value) {\n    var fos = fosMapping.findSubjectByLabel(value);\n    if (fos) {\n      this.fragment.set('subject', this.subjectText(fos.subject));\n      this.setScheme(fos.subjectScheme);\n      this.setSchemeUri(fos.schemeUri);\n      this.setClassificationCode(fos.classificationCode);\n      this.set('oecdSelected', true);\n    } else {\n      this.fragment.set('subject', value);\n      this.setScheme(null);\n      this.setSchemeUri(null);\n      this.setClassificationCode(null);\n      this.set('oecdSelected', false);\n    }\n  }\n\n  @action\n  updateSubjectScheme(value) {\n    this.fragment.set('subjectScheme', value);\n  }\n\n  @action\n  updateSubjectSchemeUri(value) {\n    this.setSchemeUri(value);\n  }\n\n  @action\n  updateClassificationCode(value) {\n    this.setClassificationCode(value);\n  }\n\n  @action\n  deleteSubject() {\n    this.model.get('subjects').removeObject(this.fragment);\n  }\n\n  @action\n  searchSubject(query) {\n    let subjects = completeSubjectList.filter(function (subject) {\n      return subject.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('subjects', subjects);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\" data-test-doi-subjects>\\n  <label class=\\\"control-label col-md-3\\\">Subjects</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Subject, keyword, classification code, or key phrase describing the resource.</div>\\n    {{#if this.showSubjects}}\\n      {{#each this.model.subjects as |subject index|}}\\n        <DoiSubject @model={{this.model}} @fragment={{subject}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.subjects.length 6)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-subject\\\" @outline={{true}} @onClick={{action \\\"addSubject\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.subjects.length 0) \\\"another \\\"}} subject</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.subjects.length 0)}}\\n        <BsButton id=\\\"toggle-subjects\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleSubjects\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.subjects.length 'subject'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.subjects.length 0)}}\\n        <BsButton id=\\\"toggle-subjects\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleSubjects\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.subjects.length 'subject'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-subject\\\" @outline={{true}} @onClick={{action \\\"addSubject\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add subject</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\" data-test-doi-subjects>\\n  <label class=\\\"control-label col-md-3\\\">Subjects</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Subject, keyword, classification code, or key phrase describing the resource.</div>\\n    {{#if this.showSubjects}}\\n      {{#each this.model.subjects as |subject index|}}\\n        <DoiSubject @model={{this.model}} @fragment={{subject}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.subjects.length 6)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-subject\\\" @outline={{true}} @onClick={{action \\\"addSubject\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.subjects.length 0) \\\"another \\\"}} subject</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.subjects.length 0)}}\\n        <BsButton id=\\\"toggle-subjects\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleSubjects\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.subjects.length 'subject'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.subjects.length 0)}}\\n        <BsButton id=\\\"toggle-subjects\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleSubjects\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.subjects.length 'subject'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-subject\\\" @outline={{true}} @onClick={{action \\\"addSubject\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add subject</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-subjects.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-subjects.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiSubjects extends Component {\n  showSubjects = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('subjects')) {\n      this.model.set('subjects', []);\n    }\n  }\n\n  @action\n  addSubject() {\n    this.model.get('subjects').createFragment();\n    this.set('showSubjects', true);\n  }\n\n  @action\n  toggleSubjects() {\n    this.set('showSubjects', !this.showSubjects);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<h3 class=\\\"work\\\">\\n  {{#if this.isList}}\\n    <LinkTo @route=\\\"dois.show\\\" @model={{this.model.id}}>{{#if (and (gt this.model.titles.length 0) (gt this.model.titles.firstObject.title.length 0))}}{{format-text this.model.titles.firstObject.title}}{{else}}{{this.model.doi}}{{/if}}</LinkTo>\\n    <span class=\\\"small\\\" data-test-resource-type-general>{{this.model.types.resourceTypeGeneral}}</span>\\n  {{else}}\\n    {{#if this.model.isDraft}}\\n      {{#if (and (gt this.model.titles.length 0) (gt this.model.titles.firstObject.title.length 0))}}{{format-text this.model.titles.firstObject.title}}{{else}}{{this.model.doi}}{{/if}}\\n    {{else}}\\n      <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{this.model.identifier}}\\\" data-test-doi>{{#if (gt this.model.titles.length 0)}}{{format-text this.model.titles.firstObject.title}}{{else}}{{this.model.doi}}{{/if}}</a>\\n    {{/if}}\\n    <span class=\\\"small\\\" data-test-resource-type-general>{{this.model.types.resourceTypeGeneral}}</span>\\n  {{/if}}\\n</h3>\\n{{#if this.model.creators}}\\n\\n  <CreatorShow @creators={{this.model.creators}}  @showOnly=\\\"50\\\" />\\n{{/if}}\\n<div class=\\\"metadata\\\" data-test-metadata>\\n  {{format-metadata this.model.publicationYear resourceTypeGeneral=this.model.types.resourceTypeGeneral resourceType=this.model.types.resourceType container=this.model.bcontainer publisher=this.model.publisher version=this.model.version}}\\n</div>\\n{{#if this.model.descriptions}}\\n  <div class=\\\"description\\\" data-test-description>\\n    {{#if (gt this.model.descriptions.length 0)}}{{format-text this.model.descriptions.firstObject.description limit=150}}{{/if}}\\n  </div>\\n{{/if}}\\n{{#if this.isList}}\\n  <div class=\\\"created\\\" data-test-created>\\n    Created\\n    {{format-time this.model.created year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}.\\n    <span class=\\\"text-{{this.model.state}}\\\">{{titleize this.model.state}}</span>\\n  </div>\\n{{/if}}\\n{{#if this.isResearcherProfile}}\\n  <div class=\\\"metadata license\\\">\\n    <div class=\\\"metrics-counter\\\">\\n      {{#if (add this.model.citationCount this.model.viewCount this.model.downloadCount)}}\\n          {{#if this.model.citationCount}}\\n            <i class=\\\"metrics-icons\\\" citations-test-badge> <i class=\\\"fas fa-quote-right\\\"></i> {{ format-numbers this.model.citationCount }} {{ pluralize this.model.citationCount 'Citation' without-count=true}}</i>\\n          {{else}}\\n            <i class=\\\"metrics-icons\\\" citations-test-badge><i class=\\\"fas fa-info-circle\\\"></i> No citations were reported.</i>\\n          {{/if}}\\n          {{#if (add this.model.viewCount this.model.downloadCount) }}\\n            {{#if this.model.viewCount}}\\n              <i class=\\\"metrics-icons\\\"><i class=\\\"fas fa-eye\\\"></i> {{ format-numbers this.model.viewCount }}  {{ pluralize this.model.viewCount 'View' without-count=true }} </i>\\n            {{/if}}\\n            {{#if this.model.downloadCount}}\\n              <i class=\\\"metrics-icons\\\"><i class=\\\"fas fa-download\\\"></i> {{ format-numbers this.model.downloadCount }}   {{ pluralize this.model.downloadCount 'Download' without-count=true }} </i>\\n            {{/if}}\\n          {{else}}\\n            <i class=\\\"metrics-icons\\\"><i class=\\\"fas fa-info-circle\\\"></i> No usage information was reported.</i>\\n          {{/if}}\\n      {{else}}\\n        <i><i class=\\\"fas fa-info-circle\\\"></i> No citations were reported. No usage information was reported.</i>\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}\\n{{#if this.model.rightsList}}\\n  {{#each this.model.rightsList as |rights|}}\\n    <CcLicense @licenseURL={{rights.rightsUri}} />\\n  {{/each}}\\n{{/if}}\\n\\n\\n\", {\"contents\":\"<h3 class=\\\"work\\\">\\n  {{#if this.isList}}\\n    <LinkTo @route=\\\"dois.show\\\" @model={{this.model.id}}>{{#if (and (gt this.model.titles.length 0) (gt this.model.titles.firstObject.title.length 0))}}{{format-text this.model.titles.firstObject.title}}{{else}}{{this.model.doi}}{{/if}}</LinkTo>\\n    <span class=\\\"small\\\" data-test-resource-type-general>{{this.model.types.resourceTypeGeneral}}</span>\\n  {{else}}\\n    {{#if this.model.isDraft}}\\n      {{#if (and (gt this.model.titles.length 0) (gt this.model.titles.firstObject.title.length 0))}}{{format-text this.model.titles.firstObject.title}}{{else}}{{this.model.doi}}{{/if}}\\n    {{else}}\\n      <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{this.model.identifier}}\\\" data-test-doi>{{#if (gt this.model.titles.length 0)}}{{format-text this.model.titles.firstObject.title}}{{else}}{{this.model.doi}}{{/if}}</a>\\n    {{/if}}\\n    <span class=\\\"small\\\" data-test-resource-type-general>{{this.model.types.resourceTypeGeneral}}</span>\\n  {{/if}}\\n</h3>\\n{{#if this.model.creators}}\\n\\n  <CreatorShow @creators={{this.model.creators}}  @showOnly=\\\"50\\\" />\\n{{/if}}\\n<div class=\\\"metadata\\\" data-test-metadata>\\n  {{format-metadata this.model.publicationYear resourceTypeGeneral=this.model.types.resourceTypeGeneral resourceType=this.model.types.resourceType container=this.model.bcontainer publisher=this.model.publisher version=this.model.version}}\\n</div>\\n{{#if this.model.descriptions}}\\n  <div class=\\\"description\\\" data-test-description>\\n    {{#if (gt this.model.descriptions.length 0)}}{{format-text this.model.descriptions.firstObject.description limit=150}}{{/if}}\\n  </div>\\n{{/if}}\\n{{#if this.isList}}\\n  <div class=\\\"created\\\" data-test-created>\\n    Created\\n    {{format-time this.model.created year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}.\\n    <span class=\\\"text-{{this.model.state}}\\\">{{titleize this.model.state}}</span>\\n  </div>\\n{{/if}}\\n{{#if this.isResearcherProfile}}\\n  <div class=\\\"metadata license\\\">\\n    <div class=\\\"metrics-counter\\\">\\n      {{#if (add this.model.citationCount this.model.viewCount this.model.downloadCount)}}\\n          {{#if this.model.citationCount}}\\n            <i class=\\\"metrics-icons\\\" citations-test-badge> <i class=\\\"fas fa-quote-right\\\"></i> {{ format-numbers this.model.citationCount }} {{ pluralize this.model.citationCount 'Citation' without-count=true}}</i>\\n          {{else}}\\n            <i class=\\\"metrics-icons\\\" citations-test-badge><i class=\\\"fas fa-info-circle\\\"></i> No citations were reported.</i>\\n          {{/if}}\\n          {{#if (add this.model.viewCount this.model.downloadCount) }}\\n            {{#if this.model.viewCount}}\\n              <i class=\\\"metrics-icons\\\"><i class=\\\"fas fa-eye\\\"></i> {{ format-numbers this.model.viewCount }}  {{ pluralize this.model.viewCount 'View' without-count=true }} </i>\\n            {{/if}}\\n            {{#if this.model.downloadCount}}\\n              <i class=\\\"metrics-icons\\\"><i class=\\\"fas fa-download\\\"></i> {{ format-numbers this.model.downloadCount }}   {{ pluralize this.model.downloadCount 'Download' without-count=true }} </i>\\n            {{/if}}\\n          {{else}}\\n            <i class=\\\"metrics-icons\\\"><i class=\\\"fas fa-info-circle\\\"></i> No usage information was reported.</i>\\n          {{/if}}\\n      {{else}}\\n        <i><i class=\\\"fas fa-info-circle\\\"></i> No citations were reported. No usage information was reported.</i>\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}\\n{{#if this.model.rightsList}}\\n  {{#each this.model.rightsList as |rights|}}\\n    <CcLicense @licenseURL={{rights.rightsUri}} />\\n  {{/each}}\\n{{/if}}\\n\\n\\n\",\"moduleName\":\"bracco/components/doi-summary.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-summary.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\n@classNames('panel-body')\nexport default class DoiSummary extends Component {\n  isList = false;\n\n  @service\n  store;\n\n  isResearcherProfile = false;\n\n  didRender() {\n    super.didRender(...arguments);\n\n    window.MathJax.typeset([this.element]);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (gt this.index 0)}}\\n  <div>\\n    <div class=\\\"input-group\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control title-field\\\" value={{this.fragment.title}} placeholder=\\\"Title\\\" oninput={{action \\\"updateTitle\\\" value=\\\"target.value\\\"}} data-test-title/>\\n      <span class=\\\"input-group-btn\\\">\\n        <BsButton @outline={{true}} @onClick={{action \\\"deleteTitle\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n      </span>\\n    </div>\\n  </div>\\n{{else}}\\n  <div>\\n    <input type=\\\"text\\\" class=\\\"form-control title-field\\\" value={{this.fragment.title}} placeholder=\\\"Title\\\" oninput={{action \\\"updateTitle\\\" value=\\\"target.value\\\"}} data-test-title/>\\n  </div>\\n{{/if}}\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"titleType\\\" class=\\\"subtitle\\\">Title Type</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment\\\"  doi-title-type>\\n  <@form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" @value={{this.fragment.titleType}} @options={{this.titleTypes}} @destination={{this.fragment.titleType}} as |el|>\\n    <el.control @onChange={{action \\\"selectTitleType\\\"}} @placeholder=\\\"Select Title Type\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"titleType\\\" class=\\\"subtitle\\\">Language</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment\\\"  doi-title-lang>\\n  <@form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" @value={{this.language}} @options={{this.languages}} as |el|>\\n    <el.control @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Select Language\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<hr />\\n\", {\"contents\":\"{{#if (gt this.index 0)}}\\n  <div>\\n    <div class=\\\"input-group\\\">\\n      <input type=\\\"text\\\" class=\\\"form-control title-field\\\" value={{this.fragment.title}} placeholder=\\\"Title\\\" oninput={{action \\\"updateTitle\\\" value=\\\"target.value\\\"}} data-test-title/>\\n      <span class=\\\"input-group-btn\\\">\\n        <BsButton @outline={{true}} @onClick={{action \\\"deleteTitle\\\" this.index}}><i class=\\\"fas fa-trash\\\"></i></BsButton>\\n      </span>\\n    </div>\\n  </div>\\n{{else}}\\n  <div>\\n    <input type=\\\"text\\\" class=\\\"form-control title-field\\\" value={{this.fragment.title}} placeholder=\\\"Title\\\" oninput={{action \\\"updateTitle\\\" value=\\\"target.value\\\"}} data-test-title/>\\n  </div>\\n{{/if}}\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"titleType\\\" class=\\\"subtitle\\\">Title Type</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment\\\"  doi-title-type>\\n  <@form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" @value={{this.fragment.titleType}} @options={{this.titleTypes}} @destination={{this.fragment.titleType}} as |el|>\\n    <el.control @onChange={{action \\\"selectTitleType\\\"}} @placeholder=\\\"Select Title Type\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<div class=\\\"power-select-label\\\">\\n  <label for=\\\"titleType\\\" class=\\\"subtitle\\\">Language</label>\\n</div>\\n\\n<div class=\\\"power-select-fragment\\\"  doi-title-lang>\\n  <@form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" @value={{this.language}} @options={{this.languages}} as |el|>\\n    <el.control @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Select Language\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n  </@form.element>\\n</div>\\n\\n<hr />\\n\",\"moduleName\":\"bracco/components/doi-title.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-title.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport Component from '@ember/component';\nimport ISO6391 from 'iso-639-1';\nimport LanguageComputedMixin from '../mixins/language-computed';\n\nconst titleTypes = ['AlternativeTitle', 'Subtitle', 'TranslatedTitle', 'Other'];\nconst languageList = ISO6391.getAllNames();\n\n@classic\nexport default class DoiTitle extends Component.extend(LanguageComputedMixin) {\n  titleTypes = titleTypes;\n  languageList = languageList;\n  languages = languageList;\n\n  @action\n  updateTitle(value) {\n    this.fragment.set('title', value);\n  }\n\n  @action\n  deleteTitle() {\n    this.model.get('titles').removeObject(this.fragment);\n  }\n\n  @action\n  selectTitleType(titleType) {\n    this.fragment.set('titleType', titleType);\n  }\n\n  @action\n  searchLanguage(query) {\n    let languages = languageList.filter(function (language) {\n      return language.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('languages', languages);\n  }\n\n  @action\n  selectLanguage(language) {\n    if (language) {\n      this.fragment.set('lang', ISO6391.getCode(language));\n    } else {\n      this.fragment.set('lang', null);\n    }\n    this.set('languages', languageList);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group data-test-doi-titles\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\" data-test-titles>Titles</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">One or more names or titles by which the resource is known.</div>\\n    {{#if this.showTitles}}\\n      {{#each this.model.titles as |title index|}}\\n        <DoiTitle @model={{this.model}} @fragment={{title}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.titles.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-title\\\" @outline={{true}} @onClick={{action \\\"addTitle\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add another title</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.titles.length 0)}}\\n        <BsButton id=\\\"toggle-titles\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleTitles\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.titles.length 'title'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.titles.length 0)}}\\n        <BsButton id=\\\"toggle-titles\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleTitles\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.titles.length 'title'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-title\\\" @outline={{true}} @onClick={{action \\\"addTitle\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add title</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group data-test-doi-titles\\\">\\n  <label class=\\\"control-label col-md-3 required-label\\\" data-test-titles>Titles</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">One or more names or titles by which the resource is known.</div>\\n    {{#if this.showTitles}}\\n      {{#each this.model.titles as |title index|}}\\n        <DoiTitle @model={{this.model}} @fragment={{title}} @form={{this.form}} @index={{index}} />\\n      {{/each}}\\n\\n      {{#if (lte this.model.titles.length 4)}}\\n        <BsButton class=\\\"btn-sm\\\" id=\\\"add-title\\\" @outline={{true}} @onClick={{action \\\"addTitle\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add another title</BsButton>\\n      {{/if}}\\n\\n      {{#if (gt this.model.titles.length 0)}}\\n        <BsButton id=\\\"toggle-titles\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleTitles\\\"}}><i class=\\\"fas fa-eye-slash\\\"></i> Hide {{pluralize this.model.titles.length 'title'}}</BsButton>\\n      {{/if}}\\n    {{else}}\\n      {{#if (gt this.model.titles.length 0)}}\\n        <BsButton id=\\\"toggle-titles\\\" class=\\\"btn-sm\\\" @outline={{true}} @onClick={{action \\\"toggleTitles\\\"}}><i class=\\\"fas fa-eye\\\"></i> Show {{pluralize this.model.titles.length 'title'}}</BsButton>\\n      {{else}}\\n        <BsButton class=\\\"btn-sm btn-warning\\\" id=\\\"add-title\\\" @outline={{true}} @onClick={{action \\\"addTitle\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add title</BsButton>\\n      {{/if}}\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-titles.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-titles.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { schedule } from '@ember/runloop';\n\n@classic\nexport default class DoiTitles extends Component {\n  showTitles = true;\n\n  init() {\n    super.init();\n\n    schedule(\"afterRender\",this,function() {\n      if (this.model.get('titles').length == 0) {\n        this.send(\"addTitle\");\n      }\n    });\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model.get('titles')) {\n      this.model.set('titles', []);\n    }\n  }\n\n  @action\n  addTitle() {\n    this.model.get('titles').createFragment();\n    this.set('showTitles', true);\n  }\n\n  @action\n  toggleTitles() {\n    this.set('showTitles', !this.showTitles);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3 form-help-header\\\">\\n      <h3 class=\\\"help-header\\\">Transfer DOI</h3>\\n    </div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @on={{action \\\"submitAction\\\" this.model}} as |form|>\\n      <form.element @controlType=\\\"hidden\\\" class=\\\"form-group\\\" @property=\\\"doi\\\" />\\n      <form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" @property=\\\"repository\\\" @label=\\\"Repository\\\" @helpText=\\\"Transfer the DOI to this repository.\\\" @optionLabelPath=\\\"name\\\" @options={{this.repositories}} @destination={{this.repository.id}} as |el|>\\n        <el.control @onChange={{action \\\"selectRepositoryAction\\\"}} @search={{action \\\"searchRepositoryAction\\\"}} @searchField=\\\"name\\\" @searchPlaceholder=\\\"Type to search...\\\" @searchEnabled={{true}} as |item|>\\n          {{item.name}}\\n        </el.control>\\n      </form.element>\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <button type=\\\"submit\\\" disabled={{this.isDisabled}} {{action \\\"submitAction\\\" this.model}} class=\\\"btn btn-sm btn-fill\\\">Transfer DOI</button>\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3 form-help-header\\\">\\n      <h3 class=\\\"help-header\\\">Transfer DOI</h3>\\n    </div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @on={{action \\\"submitAction\\\" this.model}} as |form|>\\n      <form.element @controlType=\\\"hidden\\\" class=\\\"form-group\\\" @property=\\\"doi\\\" />\\n      <form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" @property=\\\"repository\\\" @label=\\\"Repository\\\" @helpText=\\\"Transfer the DOI to this repository.\\\" @optionLabelPath=\\\"name\\\" @options={{this.repositories}} @destination={{this.repository.id}} as |el|>\\n        <el.control @onChange={{action \\\"selectRepositoryAction\\\"}} @search={{action \\\"searchRepositoryAction\\\"}} @searchField=\\\"name\\\" @searchPlaceholder=\\\"Type to search...\\\" @searchEnabled={{true}} as |item|>\\n          {{item.name}}\\n        </el.control>\\n      </form.element>\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <button type=\\\"submit\\\" disabled={{this.isDisabled}} {{action \\\"submitAction\\\" this.model}} class=\\\"btn btn-sm btn-fill\\\">Transfer DOI</button>\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/doi-transfer.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-transfer.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\nexport default class DoiTransfer extends Component {\n  @service\n  currentUser;\n\n  @service\n  store;\n\n  @service\n  router;\n\n  oldRepository = null;\n  repositories = null;\n  isDisabled = true;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.model.set('mode', 'transfer');\n\n    this.searchRepository(null);\n  }\n\n  searchRepository(query) {\n    let self = this;\n    if (self.isDestroying || self.isDestroyed) {\n      return;\n    }\n    if (this.currentUser.get('isAdmin')) {\n      this.store\n        .query('repository', { query, sort: 'name', 'page[size]': 100 })\n        .then(function (repositories) {\n          self.set('repositories', repositories);\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          self.set('repositories', []);\n        });\n    } else if (this.currentUser.get('isConsortium')) {\n      this.store\n        .query('repository', {\n          query,\n          'consortium-id': this.currentUser.get('provider_id'),\n          sort: 'name',\n          'page[size]': 100\n        })\n        .then(function (repositories) {\n          self.set('repositories', repositories);\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          self.set('repositories', []);\n        });\n    } else if (this.currentUser.get('isProvider')) {\n      this.store\n        .query('repository', {\n          query,\n          'provider-id': this.currentUser.get('provider_id'),\n          sort: 'name',\n          'page[size]': 100\n        })\n        .then(function (repositories) {\n          self.set('repositories', repositories);\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          self.set('repositories', []);\n        });\n    }\n  }\n\n  selectRepository(repository) {\n    this.set('oldRepository', this.model.get('repository.id'));\n    this.model.set('repository', repository);\n    this.model.set('provider', repository.get('provider'));\n    this.set('isDisabled', repository.id === this.oldRepository);\n  }\n\n  @action\n  searchRepositoryAction(query) {\n    this.searchRepository(query);\n  }\n\n  @action\n  selectRepositoryAction(repository) {\n    this.selectRepository(repository);\n  }\n\n  @action\n  submitAction(doi) {\n    let self = this;\n    doi.save().then(function (doi) {\n      self.router.transitionTo('dois.show', doi);\n    });\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo('dois.show', this.model);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group {{if (v-get this.model 'types.resourceTypeGeneral' 'isInvalid') 'has-error' 'has-feedback'}}\\\">\\n  <label class=\\\"control-label col-md-3\\\">Resource Type General</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">The general type of the resource.</div>\\n    <@form.element @controlType=\\\"power-select\\\" id=\\\"resource-type-general\\\" class=\\\"form-group {{if (and (not-eq this.model.state 'draft') (v-get this.model 'types.resourceTypeGeneral' 'isValid')) 'is-valid'}}\\\" @property=\\\"types.resourceTypeGeneral\\\" @options={{this.resourceTypesGeneral}} @helpText=\\\"If none of the provided values matches, use Other and specify the resource type in the field below.\\\" @destination={{this.resourceTypeGeneral}} as |el|>\\n      <el.control\\n        @onChange={{action \\\"selectResourceTypeGeneralAction\\\"}}\\n        @placeholder=\\\"Select Resource Type General\\\"\\n        @disabled={{this.disabled}} \\n        @searchEnabled={{true}} as |item|>\\n          {{humanize (underscore item)}}\\n      </el.control>\\n    </@form.element>\\n  </div>\\n</div>\\n\\n<div class=\\\"form-group\\\">\\n  <div class=\\\"col-md-9 col-md-offset-3\\\">\\n    <div class=\\\"power-select-label\\\">\\n      <label for=\\\"subject\\\" class=\\\"subtitle\\\">Resource Type</label>\\n    </div>\\n    <div class=\\\"power-select-fragment\\\" doi-resource-type>\\n      <@form.element @controlType=\\\"text\\\" id=\\\"resource-type\\\" class=\\\"form-group\\\" @property=\\\"types.resourceType\\\" @helpText=\\\"A description of the resource, the preferred format is a single term of some detail.\\\" as |el| >\\n        <el.control placeholder=\\\"Resource Type\\\" disabled={{this.disabled}} />\\n      </@form.element>\\n    </div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group {{if (v-get this.model 'types.resourceTypeGeneral' 'isInvalid') 'has-error' 'has-feedback'}}\\\">\\n  <label class=\\\"control-label col-md-3\\\">Resource Type General</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">The general type of the resource.</div>\\n    <@form.element @controlType=\\\"power-select\\\" id=\\\"resource-type-general\\\" class=\\\"form-group {{if (and (not-eq this.model.state 'draft') (v-get this.model 'types.resourceTypeGeneral' 'isValid')) 'is-valid'}}\\\" @property=\\\"types.resourceTypeGeneral\\\" @options={{this.resourceTypesGeneral}} @helpText=\\\"If none of the provided values matches, use Other and specify the resource type in the field below.\\\" @destination={{this.resourceTypeGeneral}} as |el|>\\n      <el.control\\n        @onChange={{action \\\"selectResourceTypeGeneralAction\\\"}}\\n        @placeholder=\\\"Select Resource Type General\\\"\\n        @disabled={{this.disabled}} \\n        @searchEnabled={{true}} as |item|>\\n          {{humanize (underscore item)}}\\n      </el.control>\\n    </@form.element>\\n  </div>\\n</div>\\n\\n<div class=\\\"form-group\\\">\\n  <div class=\\\"col-md-9 col-md-offset-3\\\">\\n    <div class=\\\"power-select-label\\\">\\n      <label for=\\\"subject\\\" class=\\\"subtitle\\\">Resource Type</label>\\n    </div>\\n    <div class=\\\"power-select-fragment\\\" doi-resource-type>\\n      <@form.element @controlType=\\\"text\\\" id=\\\"resource-type\\\" class=\\\"form-group\\\" @property=\\\"types.resourceType\\\" @helpText=\\\"A description of the resource, the preferred format is a single term of some detail.\\\" as |el| >\\n        <el.control placeholder=\\\"Resource Type\\\" disabled={{this.disabled}} />\\n      </@form.element>\\n    </div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-types.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-types.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { pascalCase } from 'pascal-case';\n\nconst resourceTypeGeneralList = [\n  'Audiovisual',\n  'Award',\n  'Book',\n  'BookChapter',\n  'Collection',\n  'ComputationalNotebook',\n  'ConferencePaper',\n  'ConferenceProceeding',\n  'DataPaper',\n  'Dataset',\n  'Dissertation',\n  'Event',\n  'Image',\n  'Instrument',\n  'InteractiveResource',\n  'Journal',\n  'JournalArticle',\n  'Model',\n  'OutputManagementPlan',\n  'PeerReview',\n  'PhysicalObject',\n  'Poster',\n  'Preprint',\n  'Presentation',\n  'Project',\n  'Report',\n  'Service',\n  'Software',\n  'Sound',\n  'Standard',\n  'StudyRegistration',\n  'Text',\n  'Workflow',\n  'Other'\n];\n\n@classic\nexport default class DoiTypes extends Component {\n  resourceTypeGeneralList = resourceTypeGeneralList;\n  resourceTypesGeneral = resourceTypeGeneralList;\n\n  selectResourceTypeGeneral(resourceTypeGeneral) {\n    this.model.set('types', {\n      resourceTypeGeneral: pascalCase(resourceTypeGeneral)\n    });\n    this.set('resourceTypesGeneral', resourceTypeGeneralList);\n  }\n\n  @action\n  selectResourceTypeGeneralAction(resourceTypeGeneral) {\n    this.selectResourceTypeGeneral(resourceTypeGeneral);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group required-nested-label {{if (v-get this.model 'xml' 'isInvalid') 'has-error' 'has-feedback'}}\\\">\\n  <label class=\\\"control-label col-md-3\\\">Metadata</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">Metadata that describe the resource.</div>\\n    <div class=\\\"btn-toolbar btn-sm btn-file\\\">\\n\\n      {{! v5 syntax - ember-file-upload}}\\n      {{#let (file-queue name=\\\"file\\\" onFileAdded=this.didSelectFiles) as |queue|}}\\n        <label for=\\\"upload-file\\\">\\n          <span class=\\\"btn btn-sm\\\" role=\\\"button\\\" aria-controls=\\\"upload-file\\\">\\n            <i class=\\\"fas fa-upload\\\"></i>\\n            Upload File\\n          </span>\\n        </label>\\n        <input\\n          type=\\\"file\\\"\\n          id=\\\"upload-file\\\"\\n          accept=\\\"application/xml,application/json,text/plain,.bib,.ris\\\"\\n          hidden\\n          {{queue.selectFile}}\\n        >\\n      {{/let}}\\n\\n    </div>\\n  </div>\\n\\n  <@form.element @controlType=\\\"textarea\\\" @property=\\\"xml\\\" @showValidationOn=\\\"focusOut\\\" id=\\\"metadata\\\" @helpText=\\\"Upload a file with metadata in DataCite XML format, or one of the other supported formats. The DOI in the metadata will be replaced with the DOI in the DOI field if different.\\\" as |el|>\\n    <el.control class=\\\"form-control metadata\\\" rows={{15}} />\\n  </@form.element>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group required-nested-label {{if (v-get this.model 'xml' 'isInvalid') 'has-error' 'has-feedback'}}\\\">\\n  <label class=\\\"control-label col-md-3\\\">Metadata</label>\\n  <div class=\\\"col-md-9 input-fragment\\\">\\n    <div class=\\\"label-vertical\\\">Metadata that describe the resource.</div>\\n    <div class=\\\"btn-toolbar btn-sm btn-file\\\">\\n\\n      {{! v5 syntax - ember-file-upload}}\\n      {{#let (file-queue name=\\\"file\\\" onFileAdded=this.didSelectFiles) as |queue|}}\\n        <label for=\\\"upload-file\\\">\\n          <span class=\\\"btn btn-sm\\\" role=\\\"button\\\" aria-controls=\\\"upload-file\\\">\\n            <i class=\\\"fas fa-upload\\\"></i>\\n            Upload File\\n          </span>\\n        </label>\\n        <input\\n          type=\\\"file\\\"\\n          id=\\\"upload-file\\\"\\n          accept=\\\"application/xml,application/json,text/plain,.bib,.ris\\\"\\n          hidden\\n          {{queue.selectFile}}\\n        >\\n      {{/let}}\\n\\n    </div>\\n  </div>\\n\\n  <@form.element @controlType=\\\"textarea\\\" @property=\\\"xml\\\" @showValidationOn=\\\"focusOut\\\" id=\\\"metadata\\\" @helpText=\\\"Upload a file with metadata in DataCite XML format, or one of the other supported formats. The DOI in the metadata will be replaced with the DOI in the DOI field if different.\\\" as |el|>\\n    <el.control class=\\\"form-control metadata\\\" rows={{15}} />\\n  </@form.element>\\n</div>\\n\",\"moduleName\":\"bracco/components/doi-upload.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/doi-upload.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport { UploadFile, UploadFileReader } from 'ember-file-upload';\n\n@classic\nexport default class DoiUpload extends Component {\n  b64DecodeUnicode(str) {\n    // Going backwards: from bytestream, to percent-encoding, to original string.\n    return decodeURIComponent(\n      atob(str)\n        .split('')\n        .map(function (c) {\n          return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n        })\n        .join('')\n    );\n  }\n\n  @action\n  async didSelectFiles(file) {\n    file.readAsText().then((xml) => {\n        this.model.set('xml', xml)\n      },\n      (err) => {\n        console.error(err);\n      }\n    );\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"panel panel-default\\\">\\n  <div class=\\\"panel-heading\\\">\\n    <h3 class=\\\"panel-title\\\" id=\\\"{{this.chartId}}-title\\\">\\n      {{pluralize this.count this.label without-count=true}}\\n      <span class=\\\"small pull-right\\\">\\n        by resource type\\n      </span>\\n    </h3>\\n  </div>\\n  <div class=\\\"panel-body panel-chart\\\">\\n    <div class=\\\"graphs\\\" id={{this.chartId}}></div>\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"panel panel-default\\\">\\n  <div class=\\\"panel-heading\\\">\\n    <h3 class=\\\"panel-title\\\" id=\\\"{{this.chartId}}-title\\\">\\n      {{pluralize this.count this.label without-count=true}}\\n      <span class=\\\"small pull-right\\\">\\n        by resource type\\n      </span>\\n    </h3>\\n  </div>\\n  <div class=\\\"panel-body panel-chart\\\">\\n    <div class=\\\"graphs\\\" id={{this.chartId}}></div>\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/donut-chart.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/donut-chart.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport { action, computed } from '@ember/object';\nimport { schedule } from '@ember/runloop';\nimport Component from '@ember/component';\nimport { select } from 'd3-selection';\nimport { format } from 'd3-format';\nimport { arc, pie } from 'd3-shape';\nimport { scaleOrdinal } from 'd3-scale';\nimport { schemeSet3 } from 'd3-scale-chromatic';\n\nconst categoryList = [\n  'user',\n  'other',\n  'software',\n  'dataset',\n  'text',\n  'collection',\n  'institution',\n  'audiovisual',\n  'other1',\n  'other2',\n  'other3',\n  'other4'\n];\n\n@classic\n@tagName('div')\n@classNames('col-lg-3', 'col-md-4')\nexport default class DonutChart extends Component {\n  @computed('data')\n  get count() {\n    if (this.data) {\n      return this.data.reduce(function (a, b) {\n        return a + b.count;\n      }, 0);\n    } else {\n      return 0;\n    }\n  }\n\n  label = 'Chart';\n\n  @computed('label')\n  get chartId() {\n    return 'chart-donut-' + this.label.toLowerCase();\n  }\n\n  @computed('link', 'model.id')\n  get doiLink() {\n    if (this.link === 'users.show.dois') {\n      return '/users/' + this.model.id + '/dois';\n    } else {\n      return null;\n    }\n  }\n\n  categories = categoryList;\n\n  init(...args) {\n    super.init(...args);\n\n    this.set(this, this.data, []);\n    schedule('afterRender', this, function () {\n      this.send('donutChart');\n    });\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.donutChart();\n  }\n\n  donutChart() {\n    let formatFixed = format(',.0f');\n\n    let chartId = this.chartId;\n    let data = this.data ? this.data : [];\n    let radius = 80;\n\n    let title = this.count;\n    let subtitle = null;\n    let categories = this.categories;\n\n    // use colors from colorbrewer\n    let color = scaleOrdinal().domain(categories).range(schemeSet3);\n\n    // var tip = d3Tip()\n    //   .attr('class', 'tooltip')\n    //   .html(function(d) { return d.data.title + ': ' + formatFixed(d.count); });\n\n    // remove chart before building new one\n    // wrap in try/catch block to handle fastboot\n    try {\n      select('#' + chartId)\n        .selectAll('*')\n        .remove();\n\n      let chart = select('#' + chartId)\n        .append('svg')\n        .data([data])\n        .attr('width', radius * 2 + 50)\n        .attr('height', radius * 2 + 10)\n        .attr('class', 'chart donut')\n        .append('svg:g')\n        .attr(\n          'transform',\n          'translate(' + (radius + 20) + ',' + (radius + 10) + ')'\n        );\n\n      let myArc = arc()\n        .outerRadius(radius - 5)\n        .innerRadius(radius - 30);\n\n      let myPie = pie()\n        .sort(null)\n        .value(function (d) {\n          return d.count;\n        });\n\n      let arcs = chart\n        .selectAll('g.slice')\n        .data(myPie)\n        .enter()\n        .append('svg:g')\n        .attr('class', 'slice');\n\n      // arcs.call(tip)\n\n      arcs\n        .append('svg:path')\n        .attr('fill', function (d) {\n          if (!categories.includes(d.data.id)) {\n            d.data.id = 'other';\n          }\n          return color(d.data.id);\n        })\n        .attr('d', myArc);\n      // .on('mouseover', function(d, i, nodes) {\n      //   console.log(d)\n      //  })\n      // .on('mouseout', function(d, i, nodes) {\n      //   console.log(d)\n      //  })\n\n      if (subtitle !== null) {\n        chart\n          .append('text')\n          .attr('dy', 0)\n          .attr('text-anchor', 'middle')\n          .attr('class', 'title')\n          .text(formatFixed(title));\n\n        chart\n          .append('text')\n          .attr('dy', 21)\n          .attr('text-anchor', 'middle')\n          .attr('class', 'subtitle')\n          .text(subtitle);\n      } else {\n        chart\n          .append('text')\n          .attr('dy', 8)\n          .attr('text-anchor', 'middle')\n          .attr('class', 'title-only')\n          .text(formatFixed(title));\n      }\n\n      // return chart object\n      return chart;\n    } catch (error) {\n      // console.error(error);\n    }\n  }\n\n  @action\n  donutChartAction() {\n    this.donutChart();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<button onclick={{action \\\"exportBasicMetadata\\\" this.model}} class=\\\"ember-view btn btn-warning export-basic-metadata\\\" id=\\\"export-metadata\\\" type=\\\"button\\\"><i class=\\\"fas fa-download\\\"></i> Export DOI Metadata </button>\\n\", {\"contents\":\"<button onclick={{action \\\"exportBasicMetadata\\\" this.model}} class=\\\"ember-view btn btn-warning export-basic-metadata\\\" id=\\\"export-metadata\\\" type=\\\"button\\\"><i class=\\\"fas fa-download\\\"></i> Export DOI Metadata </button>\\n\",\"moduleName\":\"bracco/components/export-basic-metadata.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/export-basic-metadata.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\nimport Papa from 'papaparse';\nimport { saveAs } from 'file-saver';\nimport currentDate from '../utils/current-date';\nimport formatCreators from '../utils/format-creators';\n\n@classic\n@tagName('')\n@classNames('')\nexport default class ExportBasicMetadata extends Component {\n  @action\n  exportBasicMetadata(model) {\n    let dois = [];\n\n    this.model.forEach(function (doi) {\n      dois.push({\n        doi: doi.doi,\n        url: doi.url,\n        registered: doi.registered,\n        state: doi.state,\n        resourceTypeGeneral: doi.types.resourceTypeGeneral,\n        resourceType: doi.types.resourceType,\n        title: doi.title,\n        author: formatCreators(doi.creators, {}),\n        publisher: doi.publisher ? doi.publisher.name : null,\n        publicationYear: doi.publicationYear\n      });\n    });\n\n    var csv = Papa.unparse(dois);\n\n    var blob = new Blob([csv], { type: 'text/csv;charset=utf-8' });\n    var filename =\n      currentDate() +\n      (this.client_id ? '-' + this.client_id : '-' + 'dois') +\n      (this.page ? '-' + this.page : '') +\n      '.csv';\n    saveAs(blob, filename);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<a href={{get (links) 'STATUS_URL'}} target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" aria-label=\\\"All Systems Operational\\\">\\n  <span class=\\\"color-dot\\\"></span>\\n  <span class=\\\"color-description\\\"></span>\\n</a>\\n\", {\"contents\":\"<a href={{get (links) 'STATUS_URL'}} target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" aria-label=\\\"All Systems Operational\\\">\\n  <span class=\\\"color-dot\\\"></span>\\n  <span class=\\\"color-description\\\"></span>\\n</a>\\n\",\"moduleName\":\"bracco/components/footer-status.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/footer-status.hbs\"}});\nimport classic from 'ember-classic-decorator';\n/* global StatusPage*/\n\nimport Component from '@ember/component';\n\n@classic\nexport default class FooterStatus extends Component {\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (typeof StatusPage !== 'undefined') {\n      let sp = new StatusPage.page({ page: 'nmtzsv0smzk5' });\n      let self = this;\n\n      sp.summary({\n        success(data) {\n          self.element.querySelector('.color-description').textContent =\n            data.status.description;\n          self.element\n            .querySelector('.color-dot')\n            .classList.add(data.status.indicator);\n        }\n      });\n    }\n  }\n}\n","import { inject as service } from '@ember/service';\nimport Component from '@glimmer/component';\nimport layout from '../templates/head';\nimport { setComponentTemplate } from '@ember/component';\n\nexport default class HeadContent extends Component {\n  @service('head-data') model;\n}\n\nsetComponentTemplate(layout, HeadContent);\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<h2 class=\\\"work\\\">\\n  DataCite\\n</h2>\\n<div class=\\\"tab-content nav-tabs-member\\\">\\n  <BsNav\\n    @type=\\\"tabs\\\"\\n    @justified={{false}}\\n    @stacked={{false}}\\n    @fill={{false}} as |nav|\\n  >\\n    <nav.item>\\n      <nav.linkTo @route=\\\"index\\\" class=\\\"nav-link\\\">\\n        Info\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"settings\\\" class=\\\"nav-link\\\">\\n        Settings\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"providers\\\" class=\\\"nav-link\\\">\\n        Members\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"contacts\\\" class=\\\"nav-link\\\">\\n        Contacts\\n      </nav.linkTo>\\n    </nav.item>\\n    {{#if (feature-flag 'showResearchers')}}\\n      <nav.item>\\n        <nav.linkTo @route=\\\"users\\\" class=\\\"nav-link\\\">\\n          Users\\n        </nav.linkTo>\\n      </nav.item>\\n    {{/if}}\\n    <nav.item>\\n      <nav.linkTo @route=\\\"repositories\\\" class=\\\"nav-link\\\">\\n        Repositories\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"prefixes\\\" class=\\\"nav-link\\\">\\n        Prefixes\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"dois\\\" class=\\\"nav-link\\\">\\n        DOIs\\n      </nav.linkTo>\\n    </nav.item>\\n  </BsNav>\\n</div>\", {\"contents\":\"<h2 class=\\\"work\\\">\\n  DataCite\\n</h2>\\n<div class=\\\"tab-content nav-tabs-member\\\">\\n  <BsNav\\n    @type=\\\"tabs\\\"\\n    @justified={{false}}\\n    @stacked={{false}}\\n    @fill={{false}} as |nav|\\n  >\\n    <nav.item>\\n      <nav.linkTo @route=\\\"index\\\" class=\\\"nav-link\\\">\\n        Info\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"settings\\\" class=\\\"nav-link\\\">\\n        Settings\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"providers\\\" class=\\\"nav-link\\\">\\n        Members\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"contacts\\\" class=\\\"nav-link\\\">\\n        Contacts\\n      </nav.linkTo>\\n    </nav.item>\\n    {{#if (feature-flag 'showResearchers')}}\\n      <nav.item>\\n        <nav.linkTo @route=\\\"users\\\" class=\\\"nav-link\\\">\\n          Users\\n        </nav.linkTo>\\n      </nav.item>\\n    {{/if}}\\n    <nav.item>\\n      <nav.linkTo @route=\\\"repositories\\\" class=\\\"nav-link\\\">\\n        Repositories\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"prefixes\\\" class=\\\"nav-link\\\">\\n        Prefixes\\n      </nav.linkTo>\\n    </nav.item>\\n    <nav.item>\\n      <nav.linkTo @route=\\\"dois\\\" class=\\\"nav-link\\\">\\n        DOIs\\n      </nav.linkTo>\\n    </nav.item>\\n  </BsNav>\\n</div>\",\"moduleName\":\"bracco/components/index-header.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/index-header.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\nexport default class IndexHeader extends Component {\n  didRender() {\n    super.didRender(...arguments);\n\n    if (this.element.querySelector('a.active.nav-link') == null) {\n      this.element.querySelector('a.nav-link').classList.add(\"active\")\n    }\n \n    if (this.element.querySelector('a.active.nav-link').parentElement !== null) {\n      this.element.querySelector('a.active.nav-link').parentElement.classList.add(\"active\")\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content\\\" id=\\\"info-tab\\\">\\n  {{#if (can \\\"read messages\\\" this.model)}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n  {{/if}}\\n  <UserRole />\\n  <div class=\\\"row row-chart\\\">\\n    <BarChart @data={{this.json.providers}} @label=\\\"Member\\\" @link=\\\"providers\\\" @offset={{true}} />\\n    <BarChart @data={{this.json.clients}} @label=\\\"Repository\\\" @link=\\\"repositories\\\" />\\n    <BarChart @data={{this.json.dois}} @label=\\\"DOI\\\" @link=\\\"dois\\\" @cumulative={{false}} />\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"content\\\" id=\\\"info-tab\\\">\\n  {{#if (can \\\"read messages\\\" this.model)}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n  {{/if}}\\n  <UserRole />\\n  <div class=\\\"row row-chart\\\">\\n    <BarChart @data={{this.json.providers}} @label=\\\"Member\\\" @link=\\\"providers\\\" @offset={{true}} />\\n    <BarChart @data={{this.json.clients}} @label=\\\"Repository\\\" @link=\\\"repositories\\\" />\\n    <BarChart @data={{this.json.dois}} @label=\\\"DOI\\\" @link=\\\"dois\\\" @cumulative={{false}} />\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/index-info.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/index-info.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport fetch from 'fetch';\nimport { Promise } from 'rsvp';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class IndexInfo extends Component {\n  json = null;\n\n  @service\n  flashMessages;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    let promise = new Promise((resolve, reject) => {\n      const url = ENV.API_URL + '/providers/' + (this.model ? this.model.get('id') : '')  + '/stats';\n      const headers = { Accept: 'application/json' };\n      fetch(url, {\n        headers\n      })\n        .then((response) => {\n          response.text().then((text) => {\n            try {\n              let json = JSON.parse(text);\n              if (!response.ok) {\n                response.responseJSON = json;\n                reject(response);\n              } else {\n                resolve(json);\n              }\n            } catch (SyntaxError) {\n              response.responseText = text;\n              reject(response);\n            }\n          });\n        })\n        .catch(reject);\n    });\n\n    let self = this;\n    promise.then(\n      function (value) {\n        // Error without checking is: 'TypeError: Cannot read property 'isDestroyed' of undefined'.\n        if (self.isDestroyed) {\n          return;\n        }\n\n        self.set('json', value);\n      },\n      function (reason) {\n        console.debug(reason);\n      }\n    );\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if this.edit}}\\n  <BsForm @formLayout=\\\"vertical\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\" this.model}} as |form|>\\n    <form.element @controlType=\\\"text\\\" @label=\\\"Name\\\" @property=\\\"name\\\" />\\n    <form.element @controlType=\\\"text\\\" @label=\\\"Contact\\\" @property=\\\"contact\\\" />\\n    <form.element @controlType=\\\"email\\\" @label=\\\"Email\\\" @property=\\\"email\\\" />\\n\\n    <div class=\\\"pseudo-footer\\\">\\n      <div class=\\\"btn-toolbar pull-right\\\">\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n        <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\">Save</button>\\n      </div>\\n      <div class=\\\"clearfix\\\"/>\\n    </div>\\n  </BsForm>\\n{{else}}\\n  {{#if this.model.contactEmail}}\\n    <h5>Contact Email</h5>\\n    <a href=\\\"{{this.model.contactEmail}}\\\">{{this.model.contactEmail}}</a>\\n  {{/if}}\\n\\n  <div class=\\\"pseudo-footer\\\">\\n    {{this.model.uid}}\\n    <span><i class=\\\"fas fa-question-circle\\\"></i>\\n      <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>Each provider has a unique ID.</BsTooltip>\\n    </span>\\n    <button class=\\\"btn-link\\\" type=\\\"button\\\" {{action \\\"editAction\\\" this.model}}><i class=\\\"fas fa-pencil-alt\\\"></i></button>\\n  </div>\\n{{/if}}\\n\", {\"contents\":\"{{#if this.edit}}\\n  <BsForm @formLayout=\\\"vertical\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\" this.model}} as |form|>\\n    <form.element @controlType=\\\"text\\\" @label=\\\"Name\\\" @property=\\\"name\\\" />\\n    <form.element @controlType=\\\"text\\\" @label=\\\"Contact\\\" @property=\\\"contact\\\" />\\n    <form.element @controlType=\\\"email\\\" @label=\\\"Email\\\" @property=\\\"email\\\" />\\n\\n    <div class=\\\"pseudo-footer\\\">\\n      <div class=\\\"btn-toolbar pull-right\\\">\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n        <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\">Save</button>\\n      </div>\\n      <div class=\\\"clearfix\\\"/>\\n    </div>\\n  </BsForm>\\n{{else}}\\n  {{#if this.model.contactEmail}}\\n    <h5>Contact Email</h5>\\n    <a href=\\\"{{this.model.contactEmail}}\\\">{{this.model.contactEmail}}</a>\\n  {{/if}}\\n\\n  <div class=\\\"pseudo-footer\\\">\\n    {{this.model.uid}}\\n    <span><i class=\\\"fas fa-question-circle\\\"></i>\\n      <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>Each provider has a unique ID.</BsTooltip>\\n    </span>\\n    <button class=\\\"btn-link\\\" type=\\\"button\\\" {{action \\\"editAction\\\" this.model}}><i class=\\\"fas fa-pencil-alt\\\"></i></button>\\n  </div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/index-show.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/index-show.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\nexport default class IndexShow extends Component {\n  @service\n  store;\n\n  edit = false;\n  provider = null;\n\n  @action\n  editAction(provider) {\n    this.set('provider', provider);\n    this.set('edit', true);\n  }\n\n  @action\n  submitAction() {\n    this.provider.save();\n    this.set('edit', false);\n  }\n\n  @action\n  cancelAction() {\n    this.set('edit', false);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"wrapper landing-page\\\">\\n  <div\\n    class=\\\"landing-header\\\"\\n    style={{html-safe (concat 'background-image: url(' (cdn-url) '/images/fabrica/header.png);')}}\\n  >\\n    <div class=\\\"container-fluid\\\">\\n      <div class=\\\"motto\\\">\\n        <h1>\\n          {{site-title}}\\n        </h1>\\n        <p>\\n          Register and manage DOIs and metadata.\\n        </p>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"section section-white\\\">\\n    <div class=\\\"row row-section\\\">\\n      <div class=\\\"container-fluid\\\">\\n        <div class=\\\"col-sm-8 col-sm-offset-2\\\">\\n          {{#each this.flashMessages.queue as |flash|}}\\n            <FlashMessage @flash={{flash}} />\\n          {{/each}}\\n          <p>\\n            Fabrica is DataCite's web interface where you can create, find, connect and track all of your DOIs and metadata. Fabrica also includes all of the functionalities needed to manage repository accounts, prefixes and contacts.\\n          </p>\\n          <p>\\n            To access this service you need to sign in with one of the following accounts: Member, Consortium, Consortium Organization, Repository. More information about how to use Fabrica is available\\n            <a href={{get (links) \\\"FABRICA_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              here.\\n            </a>\\n          </p>\\n          <p>\\n            Fabrica complements the\\n            <a href={{get (links) \\\"API_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              REST\\n            </a>\\n            ,\\n            <a href={{get (links) \\\"MDS_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              MDS\\n            </a>\\n            ,\\n            <a href={{get (links) \\\"OAI_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              OAI-PMH\\n            </a>\\n            , and\\n            <a href={{get (links) \\\"GRAPHQL_TOOL_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              GraphQL\\n            </a>\\n            APIs.\\n          </p>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"section section-white\\\">\\n    <div class=\\\"row row-section\\\">\\n      <div class=\\\"container-fluid\\\">\\n          <div class=\\\"col-sm-2 col-sm-offset-2 info\\\">\\n            <div class=\\\"icon icon-landing\\\">\\n              <i class=\\\"fas fa-sitemap\\\" aria-hidden=\\\"true\\\"></i>\\n            </div>\\n            <h2 class=\\\"landing-feature-title\\\">\\n              Repositories\\n            </h2>\\n          <div class=\\\"description-centered\\\">\\n            <p>\\n              Use Fabrica to manage your repositories.\\n            </p>\\n          </div>\\n        </div>\\n          <div class=\\\"col-sm-2 col-sm-offset-1 info\\\">\\n            <div class=\\\"icon icon-landing\\\">\\n              <i class=\\\"fas fa-tags\\\" aria-hidden=\\\"true\\\"></i>\\n            </div>\\n            <h2 class=\\\"landing-feature-title\\\">\\n              Prefixes\\n            </h2>\\n          <div class=\\\"description-centered\\\">\\n            <p>\\n              Use Fabrica to manage your prefixes.\\n            </p>\\n          </div>\\n        </div>\\n          <div class=\\\"col-sm-2 col-sm-offset-1 info\\\">\\n            <div class=\\\"icon icon-landing\\\">\\n              <i class=\\\"fas fa-file-alt\\\" aria-hidden=\\\"true\\\"></i>\\n            </div>\\n            <h2 class=\\\"landing-feature-title\\\">\\n              DOIs\\n            </h2>\\n          <div class=\\\"description-centered\\\">\\n            <p>\\n              Register and manage DOIs and their metadata through Fabrica.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"wrapper landing-page\\\">\\n  <div\\n    class=\\\"landing-header\\\"\\n    style={{html-safe (concat 'background-image: url(' (cdn-url) '/images/fabrica/header.png);')}}\\n  >\\n    <div class=\\\"container-fluid\\\">\\n      <div class=\\\"motto\\\">\\n        <h1>\\n          {{site-title}}\\n        </h1>\\n        <p>\\n          Register and manage DOIs and metadata.\\n        </p>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"section section-white\\\">\\n    <div class=\\\"row row-section\\\">\\n      <div class=\\\"container-fluid\\\">\\n        <div class=\\\"col-sm-8 col-sm-offset-2\\\">\\n          {{#each this.flashMessages.queue as |flash|}}\\n            <FlashMessage @flash={{flash}} />\\n          {{/each}}\\n          <p>\\n            Fabrica is DataCite's web interface where you can create, find, connect and track all of your DOIs and metadata. Fabrica also includes all of the functionalities needed to manage repository accounts, prefixes and contacts.\\n          </p>\\n          <p>\\n            To access this service you need to sign in with one of the following accounts: Member, Consortium, Consortium Organization, Repository. More information about how to use Fabrica is available\\n            <a href={{get (links) \\\"FABRICA_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              here.\\n            </a>\\n          </p>\\n          <p>\\n            Fabrica complements the\\n            <a href={{get (links) \\\"API_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              REST\\n            </a>\\n            ,\\n            <a href={{get (links) \\\"MDS_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              MDS\\n            </a>\\n            ,\\n            <a href={{get (links) \\\"OAI_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              OAI-PMH\\n            </a>\\n            , and\\n            <a href={{get (links) \\\"GRAPHQL_TOOL_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              GraphQL\\n            </a>\\n            APIs.\\n          </p>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"section section-white\\\">\\n    <div class=\\\"row row-section\\\">\\n      <div class=\\\"container-fluid\\\">\\n          <div class=\\\"col-sm-2 col-sm-offset-2 info\\\">\\n            <div class=\\\"icon icon-landing\\\">\\n              <i class=\\\"fas fa-sitemap\\\" aria-hidden=\\\"true\\\"></i>\\n            </div>\\n            <h2 class=\\\"landing-feature-title\\\">\\n              Repositories\\n            </h2>\\n          <div class=\\\"description-centered\\\">\\n            <p>\\n              Use Fabrica to manage your repositories.\\n            </p>\\n          </div>\\n        </div>\\n          <div class=\\\"col-sm-2 col-sm-offset-1 info\\\">\\n            <div class=\\\"icon icon-landing\\\">\\n              <i class=\\\"fas fa-tags\\\" aria-hidden=\\\"true\\\"></i>\\n            </div>\\n            <h2 class=\\\"landing-feature-title\\\">\\n              Prefixes\\n            </h2>\\n          <div class=\\\"description-centered\\\">\\n            <p>\\n              Use Fabrica to manage your prefixes.\\n            </p>\\n          </div>\\n        </div>\\n          <div class=\\\"col-sm-2 col-sm-offset-1 info\\\">\\n            <div class=\\\"icon icon-landing\\\">\\n              <i class=\\\"fas fa-file-alt\\\" aria-hidden=\\\"true\\\"></i>\\n            </div>\\n            <h2 class=\\\"landing-feature-title\\\">\\n              DOIs\\n            </h2>\\n          <div class=\\\"description-centered\\\">\\n            <p>\\n              Register and manage DOIs and their metadata through Fabrica.\\n            </p>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/landing-page.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/landing-page.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\nexport default class LandingPage extends Component {\n  @service\n  flashMessages;\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<ul class={{this.class}}>\\n  {{#each this.links as |link| }}\\n    <li>\\n      <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{link.url}}>{{link.name}}</a>\\n    </li>\\n  {{/each}}\\n</ul>\\n\", {\"contents\":\"<ul class={{this.class}}>\\n  {{#each this.links as |link| }}\\n    <li>\\n      <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{link.url}}>{{link.name}}</a>\\n    </li>\\n  {{/each}}\\n</ul>\\n\",\"moduleName\":\"bracco/components/list-links.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/list-links.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class ListLinks extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<a href=\\\"#\\\" class=\\\"dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" id=\\\"services\\\">Services <span class=\\\"caret\\\"></span></a>\\n<ul class=\\\"dropdown-menu\\\" role=\\\"menu\\\">\\n  {{#if this.navmenuTitle}}\\n    <li class=\\\"dropdown-header\\\">{{this.navmenuTitle}}</li>\\n  {{/if}}\\n  {{#each this.links as |link| }}\\n    {{#if (eq link.name \\\"divider\\\")}}\\n      <li class=\\\"divider\\\"></li>\\n    {{else}}\\n      <li>\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{link.url}}>\\n          {{#if link.icon}}\\n            <i class=\\\"fas fa-{{link.icon}}\\\"></i>\\n          {{/if}}\\n          {{link.name}}\\n        </a>\\n      </li>\\n    {{/if}}\\n  {{/each}}\\n</ul>\\n\", {\"contents\":\"<a href=\\\"#\\\" class=\\\"dropdown-toggle\\\" data-toggle=\\\"dropdown\\\" id=\\\"services\\\">Services <span class=\\\"caret\\\"></span></a>\\n<ul class=\\\"dropdown-menu\\\" role=\\\"menu\\\">\\n  {{#if this.navmenuTitle}}\\n    <li class=\\\"dropdown-header\\\">{{this.navmenuTitle}}</li>\\n  {{/if}}\\n  {{#each this.links as |link| }}\\n    {{#if (eq link.name \\\"divider\\\")}}\\n      <li class=\\\"divider\\\"></li>\\n    {{else}}\\n      <li>\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{link.url}}>\\n          {{#if link.icon}}\\n            <i class=\\\"fas fa-{{link.icon}}\\\"></i>\\n          {{/if}}\\n          {{link.name}}\\n        </a>\\n      </li>\\n    {{/if}}\\n  {{/each}}\\n</ul>\\n\",\"moduleName\":\"bracco/components/menu-links.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/menu-links.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\nimport ENV from 'bracco/config/environment';\n\n@classic\n@tagName('li')\nexport default class MenuLinks extends Component {\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.set('navmenuTitle', ENV.NAVMENU_TITLE);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (and (not-eq this.fabricaDeployTarget \\\"test\\\") this.metadataDashboardUrl)}}\\n  <div class=\\\"metadata-dashboard-button\\\">\\n    <BsButton class=\\\"btn-warning\\\"  id=\\\"metadata-dashboard-button\\\" {{on \\\"click\\\" (fn this.openLink this.metadataDashboardUrl)}}>\\n      <i class=\\\"fas fa-external-link-alt\\\"></i>Metadata Dashboard\\n    </BsButton>\\n  </div>\\n{{/if}}\\n\", {\"contents\":\"{{#if (and (not-eq this.fabricaDeployTarget \\\"test\\\") this.metadataDashboardUrl)}}\\n  <div class=\\\"metadata-dashboard-button\\\">\\n    <BsButton class=\\\"btn-warning\\\"  id=\\\"metadata-dashboard-button\\\" {{on \\\"click\\\" (fn this.openLink this.metadataDashboardUrl)}}>\\n      <i class=\\\"fas fa-external-link-alt\\\"></i>Metadata Dashboard\\n    </BsButton>\\n  </div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/metadata-dashboard-button.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/metadata-dashboard-button.hbs\"}});\nimport Component from '@glimmer/component';\nimport ENV from 'bracco/config/environment';\nimport { action } from '@ember/object';\n\nexport default class MetadataDashboardButton extends Component {\n\n  get metadataDashboardUrl() {\n    return ENV.METADATA_DASHBOARD_URL + (this.args.dashboardId ? \"/\" + this.args.dashboardId.toLowerCase() : '');\n  }\n\n  get fabricaDeployTarget() {\n    return ENV.fabricaDeployTarget;\n  }\n\n  @action\n  openLink(url) {\n    document.activeElement.blur(); // Remove focus from the button after clicking to ultimately clear the styles when the user returns to the page.\n    window.open(url, '_blank', 'noopener,noreferrer');\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"panel panel-default\\\">\\n  <div class=\\\"panel-heading\\\">\\n    <h3 class=\\\"panel-title\\\">\\n      {{this.label}} <span class=\\\"small pull-right\\\">total</span>\\n    </h3>\\n  </div>\\n  <div class=\\\"panel-body panel-chart\\\">\\n    <div class=\\\"user-metrics-counter-box\\\" id=\\\"metrics-counter-doi\\\">\\n      <p class=\\\"user-metrics-counter\\\">\\n        {{#if (gt this.count 0)}}\\n          <LinkTo @route={{this.link}} @query={{this.query}} @model={{this.model.id}}>{{format-numbers this.count}}</LinkTo>\\n        {{else}}\\n          {{format-numbers this.count}}\\n        {{/if}}\\n      </p>\\n    </div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"panel panel-default\\\">\\n  <div class=\\\"panel-heading\\\">\\n    <h3 class=\\\"panel-title\\\">\\n      {{this.label}} <span class=\\\"small pull-right\\\">total</span>\\n    </h3>\\n  </div>\\n  <div class=\\\"panel-body panel-chart\\\">\\n    <div class=\\\"user-metrics-counter-box\\\" id=\\\"metrics-counter-doi\\\">\\n      <p class=\\\"user-metrics-counter\\\">\\n        {{#if (gt this.count 0)}}\\n          <LinkTo @route={{this.link}} @query={{this.query}} @model={{this.model.id}}>{{format-numbers this.count}}</LinkTo>\\n        {{else}}\\n          {{format-numbers this.count}}\\n        {{/if}}\\n      </p>\\n    </div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/metrics-counter.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/metrics-counter.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\n@classNames('col-lg-3', 'col-md-4')\nexport default class MetricsCounter extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"  <form class=\\\"form-horizontal\\\" {{action 'doSearch' this.query on='submit'}}>\\n    <div id=\\\"search\\\" class=\\\"input-group\\\">\\n      <Input\\n        name=\\\"query\\\"\\n        @value={{this.query}}\\n        class=\\\"form-control\\\"\\n        placeholder={{if this.placeholder this.placeholder \\\"Type to search...\\\"}}\\n        @escape-press={{action 'clear'}}\\n        @enter={{action 'doSearch'}}\\n      />\\n      {{#if this.hasInput}}\\n        <span\\n          id=\\\"search-clear\\\"\\n          title=\\\"Clear\\\"\\n          aria-label=\\\"Clear\\\"\\n          {{action 'clear'}}\\n        >\\n          <i class=\\\"fas fa-times-circle\\\"></i>\\n        </span>\\n      {{/if}}\\n      <div class=\\\"input-group-btn\\\">\\n        <button type=\\\"submit\\\" class=\\\"btn btn-primary hidden-xs\\\">\\n          Search\\n        </button>\\n      </div>\\n    </div>\\n    {{#if this.hasFilters}}\\n      <span class=\\\"help-block\\\">\\n        <LinkTo\\n          @route={{this.link}}\\n          @query={{hash\\n            page=1\\n            size=25\\n            sort=null\\n            query=null\\n            created=null\\n            registered=null\\n            state=null\\n            resource-type-id=null\\n            schema-version=null\\n            prefix=null\\n            client-id=null\\n            consortium-organization-id=null\\n            affiliation-id=null\\n            source=null\\n            year=null\\n            provider-id=null\\n            region=null\\n            member-type=null\\n            organization-type=null\\n            focus-area=null\\n            link-check-status=null\\n            client-type=null\\n            repository-type=null\\n            non-profit-status=null\\n            has-required-contacts=null\\n            certificate=null\\n            software=null\\n            has-citations=null\\n            has-views=null\\n            has-downloads=null\\n            role-name=null\\n          }}\\n        >\\n          Reset All\\n        </LinkTo>\\n      </span>\\n    {{/if}}\\n  </form>\\n  {{#if (gt this.model.meta.total 1)}}\\n    {{#if this.sortable}}\\n      <div id=\\\"sort\\\" class=\\\"input-group pull-right\\\">\\n        <select onchange={{action 'sort' value='target.value'}}>\\n          {{#each-in this.formats as |key value|}}\\n            <option name=\\\"sort\\\" value={{key}} selected={{eq this.sort key}}>\\n              {{value}}\\n            </option>\\n          {{/each-in}}\\n        </select>\\n      </div>\\n    {{/if}}\\n    <h3 class=\\\"member-results\\\" data-test-results>\\n      {{format-number this.model.meta.total}}\\n      {{pluralize this.model.meta.total this.modelName without-count=true}}\\n    </h3>\\n  {{/if}}\\n\", {\"contents\":\"  <form class=\\\"form-horizontal\\\" {{action 'doSearch' this.query on='submit'}}>\\n    <div id=\\\"search\\\" class=\\\"input-group\\\">\\n      <Input\\n        name=\\\"query\\\"\\n        @value={{this.query}}\\n        class=\\\"form-control\\\"\\n        placeholder={{if this.placeholder this.placeholder \\\"Type to search...\\\"}}\\n        @escape-press={{action 'clear'}}\\n        @enter={{action 'doSearch'}}\\n      />\\n      {{#if this.hasInput}}\\n        <span\\n          id=\\\"search-clear\\\"\\n          title=\\\"Clear\\\"\\n          aria-label=\\\"Clear\\\"\\n          {{action 'clear'}}\\n        >\\n          <i class=\\\"fas fa-times-circle\\\"></i>\\n        </span>\\n      {{/if}}\\n      <div class=\\\"input-group-btn\\\">\\n        <button type=\\\"submit\\\" class=\\\"btn btn-primary hidden-xs\\\">\\n          Search\\n        </button>\\n      </div>\\n    </div>\\n    {{#if this.hasFilters}}\\n      <span class=\\\"help-block\\\">\\n        <LinkTo\\n          @route={{this.link}}\\n          @query={{hash\\n            page=1\\n            size=25\\n            sort=null\\n            query=null\\n            created=null\\n            registered=null\\n            state=null\\n            resource-type-id=null\\n            schema-version=null\\n            prefix=null\\n            client-id=null\\n            consortium-organization-id=null\\n            affiliation-id=null\\n            source=null\\n            year=null\\n            provider-id=null\\n            region=null\\n            member-type=null\\n            organization-type=null\\n            focus-area=null\\n            link-check-status=null\\n            client-type=null\\n            repository-type=null\\n            non-profit-status=null\\n            has-required-contacts=null\\n            certificate=null\\n            software=null\\n            has-citations=null\\n            has-views=null\\n            has-downloads=null\\n            role-name=null\\n          }}\\n        >\\n          Reset All\\n        </LinkTo>\\n      </span>\\n    {{/if}}\\n  </form>\\n  {{#if (gt this.model.meta.total 1)}}\\n    {{#if this.sortable}}\\n      <div id=\\\"sort\\\" class=\\\"input-group pull-right\\\">\\n        <select onchange={{action 'sort' value='target.value'}}>\\n          {{#each-in this.formats as |key value|}}\\n            <option name=\\\"sort\\\" value={{key}} selected={{eq this.sort key}}>\\n              {{value}}\\n            </option>\\n          {{/each-in}}\\n        </select>\\n      </div>\\n    {{/if}}\\n    <h3 class=\\\"member-results\\\" data-test-results>\\n      {{format-number this.model.meta.total}}\\n      {{pluralize this.model.meta.total this.modelName without-count=true}}\\n    </h3>\\n  {{/if}}\\n\",\"moduleName\":\"bracco/components/model-search.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/model-search.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { classNames } from '@ember-decorators/component';\nimport { inject as service } from '@ember/service';\nimport { notEmpty } from '@ember/object/computed';\nimport Component from '@ember/component';\n\nconst placeholders = {\n  doi: 'DOI',\n  contact: 'Contact',\n  provider: 'Provider',\n  organization: 'Organization',\n  repository: 'Repository',\n  prefix: 'Prefix',\n  'repository-prefix': 'Prefix',\n  'provider-prefix': 'Prefix'\n};\n\n@classic\n@classNames('div')\nexport default class ModelSearch extends Component {\n  @service\n  router;\n\n  @notEmpty('query')\n  hasInput;\n\n  hasFilters = true;\n  helpText = null;\n  filters = null;\n  query = null;\n  sort = null;\n  queryParams = {};\n  modelName = null;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    if (!this.model) {\n      return;\n    }\n\n    this.set('query', this.model.get('query.query'));\n    this.set('sort', this.model.get('query.sort'));\n    this.set('filters', this.model.get('query'));\n\n    if (this.name) {\n      this.set('modelName', this.name);\n    } else {\n      this.set('modelName', placeholders[this.model.get('modelName')]);\n    }\n\n    if (this.modelName === 'DOI') {\n      this.set('formats', {\n        '-updated': 'Sort by Date Updated',\n        '-created': 'Sort by Date Created',\n        name: 'Sort by DOI',\n        title: 'Sort Alphabetically',\n        relevance: 'Sort by Relevance'\n      });\n    } else if (this.modelName === 'Prefix') {\n      this.set('formats', {\n        name: 'Sort by Prefix',\n        '-created': 'Sort by Date Created'\n      });\n    } else {\n      this.set('formats', {\n        name: 'Sort by Name',\n        '-created': 'Sort by Date Joined',\n        relevance: 'Sort by Relevance'\n      });\n    }\n  }\n\n  search() {\n    let params = Object.assign(this.model.get('query'), {\n      query: this.query,\n      sort: this.sort\n    });\n\n    this.router.transitionTo({ queryParams: params });\n  }\n\n  @action\n  doSearch(query) {\n    if (query) {\n      this.set('sort', 'relevance');\n    } else if (this.sort === 'relevance') {\n      this.set('sort', null);\n    }\n\n    this.set('query', query);\n    this.search();\n  }\n\n  @action\n  clear() {\n    this.set('query', null);\n    this.set('sort', null);\n    this.search();\n  }\n\n  @action\n  selectMetadata(metadata) {\n    this.showMetadata(metadata);\n  }\n\n  @action\n  sort(sort) {\n    this.set('sort', sort);\n    this.search();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{yield}}\", {\"contents\":\"{{yield}}\",\"moduleName\":\"bracco/components/model-validation-errors.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/model-validation-errors.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class ModelValidationErrors extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"panel panel-default\\\">\\n  <div class=\\\"panel-heading\\\">\\n    <h3 class=\\\"panel-title\\\" id=\\\"{{this.chartId}}-title\\\">\\n      {{pluralize this.count this.label without-count=true}}\\n      <span class=\\\"small pull-right\\\">by month</span>\\n    </h3>\\n  </div>\\n  <div class=\\\"panel-body panel-chart\\\">\\n    <h2 class=\\\"member graphs\\\">\\n      {{#if this.model}}\\n        <LinkTo @route={{this.link}} @model={{this.model.id}}>{{format-number this.count}}</LinkTo>\\n      {{else if this.link}}\\n        <LinkTo @route={{this.link}}>{{format-number this.count}}</LinkTo>\\n      {{else}}\\n        {{format-number this.count}}\\n      {{/if}}\\n      {{#unless this.cumulative}}<span class=\\\"small\\\">in 2019</span>{{/unless}}\\n    </h2>\\n    <div class=\\\"graphs\\\" id={{this.chartId}}></div>\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"panel panel-default\\\">\\n  <div class=\\\"panel-heading\\\">\\n    <h3 class=\\\"panel-title\\\" id=\\\"{{this.chartId}}-title\\\">\\n      {{pluralize this.count this.label without-count=true}}\\n      <span class=\\\"small pull-right\\\">by month</span>\\n    </h3>\\n  </div>\\n  <div class=\\\"panel-body panel-chart\\\">\\n    <h2 class=\\\"member graphs\\\">\\n      {{#if this.model}}\\n        <LinkTo @route={{this.link}} @model={{this.model.id}}>{{format-number this.count}}</LinkTo>\\n      {{else if this.link}}\\n        <LinkTo @route={{this.link}}>{{format-number this.count}}</LinkTo>\\n      {{else}}\\n        {{format-number this.count}}\\n      {{/if}}\\n      {{#unless this.cumulative}}<span class=\\\"small\\\">in 2019</span>{{/unless}}\\n    </h2>\\n    <div class=\\\"graphs\\\" id={{this.chartId}}></div>\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/month-chart.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/month-chart.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport { action, computed } from '@ember/object';\nimport { schedule } from '@ember/runloop';\nimport Component from '@ember/component';\nimport { select } from 'd3-selection';\n// import { format } from \"d3-format\";\nimport { axisBottom } from 'd3-axis';\nimport { max } from 'd3-array';\nimport { timeYears } from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport { scaleTime, scaleLinear } from 'd3-scale';\nimport { A } from '@ember/array';\n\n@classic\n@tagName('div')\n@classNames('col-lg-3', 'col-md-4')\nexport default class MonthChart extends Component {\n  data = null;\n\n  @computed('data', 'summarize')\n  get count() {\n    if (this.data) {\n      if (this.summarize) {\n        return A(this.data).reduce(function (a, b) {\n          return a + b.count;\n        }, 0);\n      } else {\n        let currentYear = A(this.data).findBy(\n          'id',\n          new Date().getFullYear().toString()\n        );\n        if (currentYear) {\n          return currentYear.count;\n        } else {\n          return 0;\n        }\n      }\n    } else {\n      return 0;\n    }\n  }\n\n  label = 'Chart';\n\n  @computed('label')\n  get chartId() {\n    return 'chart-' + this.label.toLowerCase();\n  }\n\n  cumulative = true;\n  summarize = false;\n\n  init() {\n    super.init();\n\n    schedule('afterRender', this, function () {\n      this.send('barChart');\n    });\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.barChartInt();\n  }\n\n  barChartInt() {\n    let formatMonthYear = timeFormat('%B %Y');\n    // let formatFixed = format(\",.0f\");\n\n    let chartId = this.chartId;\n    let data = this.data ? this.data : [];\n\n    let height = 100;\n    let margin = { top: 10, right: 5, bottom: 20, left: 5 };\n\n    let currentYear = new Date().getFullYear();\n    let startDate = new Date(`${currentYear - 10}-01-01`);\n    let endDate = new Date(`${currentYear + 1}-01-01`);\n    let domain = [startDate, endDate];\n    let length = timeYears(startDate, endDate).length;\n    let width = length * 22;\n\n    let x = scaleTime().domain(domain).rangeRound([0, width]);\n\n    let y = scaleLinear()\n      .domain([\n        0,\n        max(data, function (d) {\n          return d.count;\n        })\n      ])\n      .rangeRound([height, 0]);\n\n    let xAxis = axisBottom().scale(x).tickSize(0).ticks(0);\n\n    // var tip = d3Tip()\n    //   .attr('class', 'tooltip')\n    //   .html(function(d) { return d.id + ': ' + formatFixed(d.count); });\n\n    // remove chart before building new one\n    // wrap in try/catch block to handle fastboot\n    try {\n      select('#' + chartId)\n        .selectAll('*')\n        .remove();\n\n      let chart = select('#' + chartId)\n        .append('svg')\n        .data([data])\n        .attr('width', margin.left + width + margin.right)\n        .attr('height', margin.top + height + margin.bottom)\n        .attr('class', 'chart barchart')\n        .append('svg:g')\n        .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');\n\n      chart\n        .selectAll('.bar')\n        .data(data)\n        .enter()\n        .append('rect')\n        .attr('id', function (d) {\n          return chartId + '-' + d.id;\n        })\n        .attr('class', 'bar relations')\n        .attr('x', function (d) {\n          return x(new Date(Date.parse(d.id + '-01T12:00:00Z')));\n        })\n        .attr('width', width / length - 1)\n        .attr('y', function (d) {\n          return y(d.count);\n        })\n        .attr('height', function (d) {\n          return height - y(d.count);\n        });\n      // .on('mouseover', function(d) {\n      //   // var id = '#' + chartId + '-' + d.id;\n      //   var title = formatFixed(d.count);\n      //   var dateStamp = Date.parse(d.id + '-01T12:00:00Z');\n      //   var dateString = \" in \" + formatYear(new Date(dateStamp));\n      //   console.log(title + dateString);\n      //  })\n      // .on('mouseout', function(d, i, nodes) {\n      //   console.log(d)\n      //  });\n\n      chart\n        .append('g')\n        .attr('class', 'x axis')\n        .attr('transform', 'translate(0,' + height + ')')\n        .call(xAxis);\n\n      chart\n        .append('text')\n        .attr('class', 'label')\n        .attr('text-anchor', 'middle')\n        .attr('transform', 'translate(11,' + (height + 18) + ')')\n        .text(formatMonthYear(startDate));\n\n      chart\n        .append('text')\n        .attr('class', 'label')\n        .attr('text-anchor', 'middle')\n        .attr(\n          'transform',\n          'translate(' + (width - 11) + ',' + (height + 18) + ')'\n        )\n        .text(formatMonthYear(endDate) - 1);\n\n      // let self = this;\n      // chart.selectAll(\"rect\").each(\n      //   function(d) {\n      //     var id = '#' + chartId + '-' + d.id;\n      //     var title = formatFixed(d.count);\n      //     var dateStamp = Date.parse(d.id + '-01T12:00:00Z');\n      //     var dateString = \" in \" + formatYear(new Date(dateStamp));\n\n      //     self.$(id).tooltip({ title: title + dateString, container: \"body\"});\n      //   }\n      // );\n\n      // return chart object\n      return chart;\n    } catch (error) {\n      // console.error(error);\n    }\n  }\n\n  @action\n  barChart() {\n    this.barChartInt();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"col-md-3\\\">\\n  {{#if (can 'create organization' this.model)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"btn-toolbar\\\">\\n          <div class=\\\"btn-group btn-group-sm\\\">\\n            <LinkTo\\n              @route=\\\"providers.show.organizations.new\\\"\\n              @model={{this.model.provider.id}}\\n              class=\\\"btn btn-warning\\\"\\n              id=\\\"add-organization\\\"\\n            >\\n              <i class=\\\"fas fa-plus\\\"></i>\\n              Add\\n              {{if this.media.isXl 'Consortium '}}\\n              Organization\\n            </LinkTo>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  {{else}}\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"edit\\\"></div>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.organizations.meta.years this.model.organizations.query.year)}}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Year joined\\n        </h4>\\n        <ul>\\n          {{#if this.model.organizations.meta.years}}\\n            {{#each this.model.organizations.meta.years as |year|}}\\n              <li>\\n                {{#if this.model.organizations.query.year}}\\n                  <LinkTo @route={{this.link}} @query={{hash year=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash year=year.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash year=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.year}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.organizations.meta.regions this.model.organizations.query.region)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Region\\n        </h4>\\n        <ul>\\n          {{#if this.model.organizations.meta.regions}}\\n            {{#each this.model.organizations.meta.regions as |region|}}\\n              <li>\\n                {{#if this.model.organizations.query.region}}\\n                  <LinkTo @route={{this.link}} @query={{hash region=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash region=region.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{region.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{region.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash region=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.region}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (can 'create organization')}}\\n    {{#if\\n      (or\\n        this.model.organizations.meta.organizationTypes\\n        this.model.organizations.query.organization-type\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Organization Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.organizations.meta.organizationTypes}}\\n              {{#each\\n                this.model.organizations.meta.organizationTypes as |organizationType|\\n              }}\\n                <li>\\n                  {{#if this.model.organizations.query.organization-type}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash organization-type=''}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash organization-type=organizationType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{organizationType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{organizationType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash organization-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.organization-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or\\n        this.model.organizations.meta.focusAreas this.model.organizations.query.focus-area\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Focus Area\\n          </h4>\\n          <ul>\\n            {{#if this.model.organizations.meta.focusAreas}}\\n              {{#each this.model.organizations.meta.focusAreas as |focusArea|}}\\n                <li>\\n                  {{#if this.model.organizations.query.focus-area}}\\n                    <LinkTo @route={{this.link}} @query={{hash focus-area=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash focus-area=focusArea.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{focusArea.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{focusArea.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash focus-area=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.organizations.query.focus-area}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{/if}}\\n</div>\\n<div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n  {{#if this.searchable}}\\n    <ModelSearch\\n      @model={{this.model.organizations}}\\n      @name=\\\"Consortium Organization\\\"\\n      @sortable={{true}}\\n      @link=\\\"providers.show.organizations\\\"\\n    />\\n  {{/if}}\\n  {{#if this.model.organizations}}\\n    {{#each this.model.organizations as |provider|}}\\n      <div class=\\\"panel panel-transparent\\\" data-test-organization>\\n        <div class=\\\"panel-body\\\">\\n          <h3 class=\\\"work\\\">\\n            <LinkTo @route=\\\"providers.show\\\" @model={{provider.id}}>\\n              {{provider.displayName}}\\n            </LinkTo>\\n            {{#unless provider.isActive}}\\n              <span class=\\\"label label-warning-inv\\\">\\n                Inactive\\n              </span>\\n            {{/unless}}\\n          </h3>\\n          <h5>\\n            Member ID\\n          </h5>\\n          {{provider.symbol}}\\n          {{#if provider.rorId}}\\n            <h5>\\n              ROR ID\\n            </h5>\\n            <a href=\\\"{{provider.rorId}}\\\">\\n              {{provider.rorId}}\\n            </a>\\n          {{/if}}\\n          {{#if (can 'create organization')}}\\n            <h5>\\n              Member Type\\n            </h5>\\n            {{titleize (humanize (underscore provider.memberType))}}\\n          {{/if}}\\n          {{#if provider.organizationType}}\\n            <h5>\\n              Organization Type\\n            </h5>\\n            {{titleize (humanize (underscore provider.organizationType))}}\\n          {{/if}}\\n          {{#if provider.focusArea}}\\n            <h5>\\n              Focus Area\\n            </h5>\\n            {{titleize (humanize (underscore provider.focusArea))}}\\n          {{/if}}\\n          <h5>\\n            Service Contact\\n          </h5>\\n          <div cy-data=\\\"service\\\">\\n            {{#if provider.serviceContact.email}}\\n              {{format-contact provider.serviceContact}}\\n            {{else}}\\n              <span class=\\\"small icon-warning\\\">\\n                Please provide this information.\\n              </span>\\n            {{/if}}\\n          </div>\\n        </div>\\n      </div>\\n    {{/each}}\\n    <div class=\\\"text-center\\\">\\n      {{#if (gt this.model.organizations.meta.totalPages 1)}}\\n        <PageNumbers @model={{this.model.organizations}} @link={{this.link}} />\\n      {{/if}}\\n    </div>\\n  {{else}}\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      No consortium organizations found.\\n    </BsAlert>\\n  {{/if}}\\n</div>\", {\"contents\":\"<div class=\\\"col-md-3\\\">\\n  {{#if (can 'create organization' this.model)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"btn-toolbar\\\">\\n          <div class=\\\"btn-group btn-group-sm\\\">\\n            <LinkTo\\n              @route=\\\"providers.show.organizations.new\\\"\\n              @model={{this.model.provider.id}}\\n              class=\\\"btn btn-warning\\\"\\n              id=\\\"add-organization\\\"\\n            >\\n              <i class=\\\"fas fa-plus\\\"></i>\\n              Add\\n              {{if this.media.isXl 'Consortium '}}\\n              Organization\\n            </LinkTo>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  {{else}}\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"edit\\\"></div>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.organizations.meta.years this.model.organizations.query.year)}}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Year joined\\n        </h4>\\n        <ul>\\n          {{#if this.model.organizations.meta.years}}\\n            {{#each this.model.organizations.meta.years as |year|}}\\n              <li>\\n                {{#if this.model.organizations.query.year}}\\n                  <LinkTo @route={{this.link}} @query={{hash year=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash year=year.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash year=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.year}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.organizations.meta.regions this.model.organizations.query.region)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Region\\n        </h4>\\n        <ul>\\n          {{#if this.model.organizations.meta.regions}}\\n            {{#each this.model.organizations.meta.regions as |region|}}\\n              <li>\\n                {{#if this.model.organizations.query.region}}\\n                  <LinkTo @route={{this.link}} @query={{hash region=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route={{this.link}} @query={{hash region=region.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{region.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{region.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route={{this.link}} @query={{hash region=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.region}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (can 'create organization')}}\\n    {{#if\\n      (or\\n        this.model.organizations.meta.organizationTypes\\n        this.model.organizations.query.organization-type\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Organization Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.organizations.meta.organizationTypes}}\\n              {{#each\\n                this.model.organizations.meta.organizationTypes as |organizationType|\\n              }}\\n                <li>\\n                  {{#if this.model.organizations.query.organization-type}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash organization-type=''}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash organization-type=organizationType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{organizationType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{organizationType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash organization-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.organization-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or\\n        this.model.organizations.meta.focusAreas this.model.organizations.query.focus-area\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Focus Area\\n          </h4>\\n          <ul>\\n            {{#if this.model.organizations.meta.focusAreas}}\\n              {{#each this.model.organizations.meta.focusAreas as |focusArea|}}\\n                <li>\\n                  {{#if this.model.organizations.query.focus-area}}\\n                    <LinkTo @route={{this.link}} @query={{hash focus-area=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash focus-area=focusArea.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{focusArea.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{focusArea.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash focus-area=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.organizations.query.focus-area}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{/if}}\\n</div>\\n<div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n  {{#if this.searchable}}\\n    <ModelSearch\\n      @model={{this.model.organizations}}\\n      @name=\\\"Consortium Organization\\\"\\n      @sortable={{true}}\\n      @link=\\\"providers.show.organizations\\\"\\n    />\\n  {{/if}}\\n  {{#if this.model.organizations}}\\n    {{#each this.model.organizations as |provider|}}\\n      <div class=\\\"panel panel-transparent\\\" data-test-organization>\\n        <div class=\\\"panel-body\\\">\\n          <h3 class=\\\"work\\\">\\n            <LinkTo @route=\\\"providers.show\\\" @model={{provider.id}}>\\n              {{provider.displayName}}\\n            </LinkTo>\\n            {{#unless provider.isActive}}\\n              <span class=\\\"label label-warning-inv\\\">\\n                Inactive\\n              </span>\\n            {{/unless}}\\n          </h3>\\n          <h5>\\n            Member ID\\n          </h5>\\n          {{provider.symbol}}\\n          {{#if provider.rorId}}\\n            <h5>\\n              ROR ID\\n            </h5>\\n            <a href=\\\"{{provider.rorId}}\\\">\\n              {{provider.rorId}}\\n            </a>\\n          {{/if}}\\n          {{#if (can 'create organization')}}\\n            <h5>\\n              Member Type\\n            </h5>\\n            {{titleize (humanize (underscore provider.memberType))}}\\n          {{/if}}\\n          {{#if provider.organizationType}}\\n            <h5>\\n              Organization Type\\n            </h5>\\n            {{titleize (humanize (underscore provider.organizationType))}}\\n          {{/if}}\\n          {{#if provider.focusArea}}\\n            <h5>\\n              Focus Area\\n            </h5>\\n            {{titleize (humanize (underscore provider.focusArea))}}\\n          {{/if}}\\n          <h5>\\n            Service Contact\\n          </h5>\\n          <div cy-data=\\\"service\\\">\\n            {{#if provider.serviceContact.email}}\\n              {{format-contact provider.serviceContact}}\\n            {{else}}\\n              <span class=\\\"small icon-warning\\\">\\n                Please provide this information.\\n              </span>\\n            {{/if}}\\n          </div>\\n        </div>\\n      </div>\\n    {{/each}}\\n    <div class=\\\"text-center\\\">\\n      {{#if (gt this.model.organizations.meta.totalPages 1)}}\\n        <PageNumbers @model={{this.model.organizations}} @link={{this.link}} />\\n      {{/if}}\\n    </div>\\n  {{else}}\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      No consortium organizations found.\\n    </BsAlert>\\n  {{/if}}\\n</div>\",\"moduleName\":\"bracco/components/organization-list.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/organization-list.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\n@classNames('row')\nexport default class OrganizationList extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"pagination-centered\\\">\\n  <ul class=\\\"pagination\\\">\\n    {{#if this.previousPage}}\\n      <li class=\\\"arrow prev enabled-arrow\\\">\\n        <LinkTo @route={{this.link}} @query={{hash page=this.previousPage\\n          size=25\\n          created=this.model.query.created\\n          registered=this.model.query.registered  \\n          state=this.model.query.state \\n          resource-type-id=this.model.query.resource-type-id \\n          schema-version=this.model.query.schema-version\\n          prefix=this.model.query.prefix \\n          client-id=this.model.query.client-id \\n          source=this.model.query.source \\n          year=this.model.query.year \\n          region=this.model.query.region\\n          member-type=this.model.query.member-type\\n          organization-type=this.model.query.organization-type\\n          focus-area=this.model.query.focus-area\\n          link-check-status=this.model.query.link-check-status\\n          software=this.model.query.software}}>&laquo;\\n        </LinkTo>\\n      </li>\\n    {{else}}\\n      <li class=\\\"arrow prev disabled\\\">\\n        <a>&laquo;</a>\\n      </li>\\n    {{/if}}\\n\\n    {{#each this.pageItems as |item|}}\\n      {{#if item.dots}}\\n        <li class=\\\"dots disabled\\\">\\n          <span>...</span>\\n        </li>\\n      {{else if item.current}}\\n        <li class=\\\"active page-number\\\">\\n          <a>{{item.page}}</a>\\n        </li>\\n      {{else}}\\n        <li class=\\\"page-number\\\">\\n          <LinkTo @route={{this.link}} @query={{hash page=item.page\\n            size=25\\n            created=this.model.query.created\\n            registered=this.model.query.registered  \\n            state=this.model.query.state \\n            resource-type-id=this.model.query.resource-type-id \\n            schema-version=this.model.query.schema-version\\n            prefix=this.model.query.prefix \\n            client-id=this.model.query.client-id \\n            source=this.model.query.source \\n            year=this.model.query.year \\n            region=this.model.query.region\\n            member-type=this.model.query.member-type\\n            organization-type=this.model.query.organization-type\\n            focus-area=this.model.query.focus-area\\n            link-check-status=this.model.query.link-check-status\\n            software=this.model.query.software}}>{{item.page}}\\n          </LinkTo>\\n        </li>\\n      {{/if}}\\n    {{/each}}\\n\\n    {{#if this.nextPage}}\\n      <li class=\\\"arrow next enabled-arrow\\\">\\n        <LinkTo @route={{this.link}} @query={{hash page=this.nextPage\\n          size=25\\n          created=this.model.query.created\\n          registered=this.model.query.registered  \\n          state=this.model.query.state \\n          resource-type-id=this.model.query.resource-type-id \\n          schema-version=this.model.query.schema-version\\n          prefix=this.model.query.prefix \\n          client-id=this.model.query.client-id \\n          source=this.model.query.source \\n          year=this.model.query.year \\n          region=this.model.query.region\\n          member-type=this.model.query.member-type\\n          organization-type=this.model.query.organization-type\\n          focus-area=this.model.query.focus-area\\n          link-check-status=this.model.query.link-check-status\\n          software=this.model.query.software}}>&raquo;\\n        </LinkTo>\\n      </li>\\n    {{else}}\\n      <li class=\\\"arrow next disabled\\\">\\n        <a>&raquo;</a>\\n      </li>\\n    {{/if}}\\n  </ul>\\n</div>\", {\"contents\":\"<div class=\\\"pagination-centered\\\">\\n  <ul class=\\\"pagination\\\">\\n    {{#if this.previousPage}}\\n      <li class=\\\"arrow prev enabled-arrow\\\">\\n        <LinkTo @route={{this.link}} @query={{hash page=this.previousPage\\n          size=25\\n          created=this.model.query.created\\n          registered=this.model.query.registered  \\n          state=this.model.query.state \\n          resource-type-id=this.model.query.resource-type-id \\n          schema-version=this.model.query.schema-version\\n          prefix=this.model.query.prefix \\n          client-id=this.model.query.client-id \\n          source=this.model.query.source \\n          year=this.model.query.year \\n          region=this.model.query.region\\n          member-type=this.model.query.member-type\\n          organization-type=this.model.query.organization-type\\n          focus-area=this.model.query.focus-area\\n          link-check-status=this.model.query.link-check-status\\n          software=this.model.query.software}}>&laquo;\\n        </LinkTo>\\n      </li>\\n    {{else}}\\n      <li class=\\\"arrow prev disabled\\\">\\n        <a>&laquo;</a>\\n      </li>\\n    {{/if}}\\n\\n    {{#each this.pageItems as |item|}}\\n      {{#if item.dots}}\\n        <li class=\\\"dots disabled\\\">\\n          <span>...</span>\\n        </li>\\n      {{else if item.current}}\\n        <li class=\\\"active page-number\\\">\\n          <a>{{item.page}}</a>\\n        </li>\\n      {{else}}\\n        <li class=\\\"page-number\\\">\\n          <LinkTo @route={{this.link}} @query={{hash page=item.page\\n            size=25\\n            created=this.model.query.created\\n            registered=this.model.query.registered  \\n            state=this.model.query.state \\n            resource-type-id=this.model.query.resource-type-id \\n            schema-version=this.model.query.schema-version\\n            prefix=this.model.query.prefix \\n            client-id=this.model.query.client-id \\n            source=this.model.query.source \\n            year=this.model.query.year \\n            region=this.model.query.region\\n            member-type=this.model.query.member-type\\n            organization-type=this.model.query.organization-type\\n            focus-area=this.model.query.focus-area\\n            link-check-status=this.model.query.link-check-status\\n            software=this.model.query.software}}>{{item.page}}\\n          </LinkTo>\\n        </li>\\n      {{/if}}\\n    {{/each}}\\n\\n    {{#if this.nextPage}}\\n      <li class=\\\"arrow next enabled-arrow\\\">\\n        <LinkTo @route={{this.link}} @query={{hash page=this.nextPage\\n          size=25\\n          created=this.model.query.created\\n          registered=this.model.query.registered  \\n          state=this.model.query.state \\n          resource-type-id=this.model.query.resource-type-id \\n          schema-version=this.model.query.schema-version\\n          prefix=this.model.query.prefix \\n          client-id=this.model.query.client-id \\n          source=this.model.query.source \\n          year=this.model.query.year \\n          region=this.model.query.region\\n          member-type=this.model.query.member-type\\n          organization-type=this.model.query.organization-type\\n          focus-area=this.model.query.focus-area\\n          link-check-status=this.model.query.link-check-status\\n          software=this.model.query.software}}>&raquo;\\n        </LinkTo>\\n      </li>\\n    {{else}}\\n      <li class=\\\"arrow next disabled\\\">\\n        <a>&raquo;</a>\\n      </li>\\n    {{/if}}\\n  </ul>\\n</div>\",\"moduleName\":\"bracco/components/page-numbers.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/page-numbers.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { alias } from '@ember/object/computed';\nimport Component from '@ember/component';\nimport { A } from '@ember/array';\n\n@classic\nexport default class PageNumbers extends Component {\n  @alias('model.meta.page')\n  currentPage;\n\n  @alias('model.meta.totalPages')\n  totalPages;\n\n  @computed('currentPage', 'totalPages')\n  get pageItems() {\n    const page = Number(this.currentPage || 1);\n    const totalPages = Number(this.totalPages || 1);\n\n    return Array.from(Array(totalPages).keys()).reduce(function (sum, i) {\n      if (i < 2 || (i > page - 4 && i < page + 2) || i > totalPages - 3) {\n        let item = { page: i + 1, current: page == i + 1 };\n        A(sum).pushObject(item);\n      } else if (i == page - 4 || i == page + 2) {\n        let item = { dots: true };\n        A(sum).pushObject(item);\n      }\n      return sum;\n    }, []);\n  }\n\n  @computed('currentPage', 'totalPages')\n  get nextPage() {\n    const page = Number(this.currentPage || 1);\n    const totalPages = Number(this.totalPages || 1);\n    if (page < totalPages) {\n      return page + 1;\n    } else {\n      return null;\n    }\n  }\n\n  @computed('currentPage')\n  get previousPage() {\n    const page = Number(this.currentPage || 1);\n    if (page > 1) {\n      return page - 1;\n    } else {\n      return null;\n    }\n  }\n}\n","import Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n  showPersonal: computed('fragment.nameType', function () {\n    return this.get('fragment.nameType') !== 'Organizational';\n  }),\n  isReadonlyNameType: false,\n  isReadonly: false,\n  isReadonlyNameParts: false,\n\n  didReceiveAttrs() {\n    this._super(...arguments);\n\n    // if no givenName and familyName, and set for nameType \"Personal\"\n    if (\n      this.fragment.get('name') &&\n      this.fragment.get('nameType') === 'Personal' &&\n      (!this.fragment.get('givenName') || this.fragment.get('familyName'))\n    ) {\n      let familyName = this.fragment.get('name').split(',', 2)[0];\n      let givenName = this.fragment.get('name').split(',', 2)[1];\n      familyName = familyName ? familyName.trim() : null;\n      givenName = givenName ? givenName.trim() : null;\n      this.fragment.set('givenName', givenName);\n      this.fragment.set('familyName', familyName);\n    }\n    this.joinNameParts({});\n\n    this.selectNameType(this.fragment.get('nameType'));\n  },\n\n  joinNameParts(options = {}) {\n    if (options.nameIdentifierScheme === 'ORCID') {\n      this.fragment.set('nameType', 'Personal');\n      this.set('nameType', 'Personal');\n      this.set('isReadonlyNameParts', true);\n      this.set('isReadonlyNameType', true);\n    } else if (options.nameIdentifierScheme === 'ROR') {\n      this.fragment.set('nameType', 'Organizational');\n      this.set('nameType', 'Organizational');\n      this.set('isReadonlyNameType', true);\n    } else {\n      options.givenName = options.givenName || this.fragment.get('givenName');\n      options.familyName =\n        options.familyName || this.fragment.get('familyName');\n      options.name = options.name || this.fragment.get('name');\n\n      this.set('isReadonlyNameParts', false);\n      this.set('isReadonlyNameType', false);\n    }\n    switch (true) {\n      case this.fragment.get('nameType') === 'Personal':\n        this.set('isReadonly', true);\n\n        this.fragment.set('givenName', options.givenName);\n        this.fragment.set('familyName', options.familyName);\n\n        if (options.givenName && options.familyName) {\n          this.fragment.set(\n            'name',\n            options.familyName + ', ' + options.givenName\n          );\n        } else if (options.givenName) {\n          this.fragment.set('name', options.givenName);\n        } else if (options.familyName) {\n          this.fragment.set('name', options.familyName);\n        } else {\n          this.fragment.set('name', '');\n        }\n        return true;\n      case this.fragment.get('nameType') === 'Organizational':\n        this.fragment.set('name', options.name);\n        this.set('isReadonly', false);\n        return true;\n      default:\n        this.fragment.set('givenName', options.givenName);\n        this.fragment.set('familyName', options.familyName);\n        this.fragment.set('name', options.name);\n        this.set('isReadonly', false);\n        return true;\n    }\n  },\n  selectNameType(value) {\n    this.fragment.set('nameType', value);\n    this.set('nameType', value);\n\n    if (this.fragment.get('nameType') === 'Personal') {\n      this.set('isReadonly', true);\n      this.joinNameParts();\n    } else {\n      this.set('isReadonly', false);\n    }\n  },\n\n  actions: {\n    updateName(value) {\n      this.joinNameParts({ name: value });\n    },\n    updateGivenName(value) {\n      this.joinNameParts({ givenName: value });\n    },\n    updateFamilyName(value) {\n      this.joinNameParts({ familyName: value });\n    },\n    selectNameType(value) {\n      this.selectNameType(value);\n    },\n    addNameIdentifier() {\n      this.fragment.get('nameIdentifiers').createFragment();\n    },\n    addAffiliation() {\n      this.fragment.get('affiliation').createFragment();\n    },\n    setReadOnly(value) {\n      this.set('isReadonly', value);\n    },\n    joinNameParts(options) {\n      this.joinNameParts(options);\n    }\n  }\n});\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (can 'write index')}}\\n  <div class=\\\"panel facets\\\">\\n    <div class=\\\"panel-body\\\">\\n      <div class=\\\"btn-toolbar\\\">\\n        <div class=\\\"btn-group btn-group-sm\\\">\\n          {{#if this.model.repository}}\\n            <LinkTo\\n              @route={{this.link}}\\n              @model={{this.model.repository.id}}\\n              class=\\\"btn btn-warning\\\"\\n              id=\\\"assign-prefix\\\"\\n            >\\n              <i class=\\\"fas fa-link\\\"></i>\\n              Assign Prefix\\n            </LinkTo>\\n          {{else}}\\n            <LinkTo\\n              @route={{this.link}}\\n              @model={{this.model.repository.id}}\\n              class=\\\"btn btn-warning\\\"\\n              id=\\\"assign-prefix\\\"\\n            >\\n              <i class=\\\"fas fa-link\\\"></i>\\n              Assign Prefix\\n            </LinkTo>\\n          {{/if}}\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\">\\n      <div class=\\\"edit\\\"></div>\\n    </div>\\n  </div>\\n{{/if}}\", {\"contents\":\"{{#if (can 'write index')}}\\n  <div class=\\\"panel facets\\\">\\n    <div class=\\\"panel-body\\\">\\n      <div class=\\\"btn-toolbar\\\">\\n        <div class=\\\"btn-group btn-group-sm\\\">\\n          {{#if this.model.repository}}\\n            <LinkTo\\n              @route={{this.link}}\\n              @model={{this.model.repository.id}}\\n              class=\\\"btn btn-warning\\\"\\n              id=\\\"assign-prefix\\\"\\n            >\\n              <i class=\\\"fas fa-link\\\"></i>\\n              Assign Prefix\\n            </LinkTo>\\n          {{else}}\\n            <LinkTo\\n              @route={{this.link}}\\n              @model={{this.model.repository.id}}\\n              class=\\\"btn btn-warning\\\"\\n              id=\\\"assign-prefix\\\"\\n            >\\n              <i class=\\\"fas fa-link\\\"></i>\\n              Assign Prefix\\n            </LinkTo>\\n          {{/if}}\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\">\\n      <div class=\\\"edit\\\"></div>\\n    </div>\\n  </div>\\n{{/if}}\",\"moduleName\":\"bracco/components/prefix-available.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/prefix-available.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class PrefixAvailable extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"  <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this}} @onSubmit={{action \\\"submitAction\\\"}} as |form|>\\n    <form.element @controlType=\\\"text\\\" class=\\\"form-group\\\" @label=\\\"From\\\" @onChange={{action \\\"submitFirstPrefixAction\\\"}} @property=\\\"firstPrefix\\\" @helpText=\\\"First prefix in range of new prefixes provided by CNRI.\\\" />\\n    <form.element @controlType=\\\"text\\\" class=\\\"form-group\\\" @label=\\\"To\\\" @onChange={{action \\\"submitLastPrefixAction\\\"}} @property=\\\"lastPrefix\\\" @helpText=\\\"Last prefix in range of new prefixes provided by CNRI.\\\" />\\n\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\">Add Prefixes</button>\\n      <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n    </div>\\n  </BsForm>\\n  \", {\"contents\":\"  <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this}} @onSubmit={{action \\\"submitAction\\\"}} as |form|>\\n    <form.element @controlType=\\\"text\\\" class=\\\"form-group\\\" @label=\\\"From\\\" @onChange={{action \\\"submitFirstPrefixAction\\\"}} @property=\\\"firstPrefix\\\" @helpText=\\\"First prefix in range of new prefixes provided by CNRI.\\\" />\\n    <form.element @controlType=\\\"text\\\" class=\\\"form-group\\\" @label=\\\"To\\\" @onChange={{action \\\"submitLastPrefixAction\\\"}} @property=\\\"lastPrefix\\\" @helpText=\\\"Last prefix in range of new prefixes provided by CNRI.\\\" />\\n\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\">Add Prefixes</button>\\n      <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n    </div>\\n  </BsForm>\\n  \",\"moduleName\":\"bracco/components/prefix-new.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/prefix-new.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { A } from '@ember/array';\n\nconst Validations = buildValidations({\n  firstPrefix: [\n    validator('presence', true),\n    validator('format', {\n      regex: /^10\\.\\d{4,5}$/,\n      message: 'Must be a valid DOI prefix'\n    })\n  ],\n  lastPrefix: [\n    validator('presence', true),\n    validator('format', {\n      regex: /^10\\.\\d{4,5}$/,\n      message: 'Must be a valid DOI prefix'\n    }),\n    validator('number-range', true)\n  ]\n});\n\n@classic\nexport default class PrefixNew extends Component.extend(Validations) {\n  @service\n  store;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  firstPrefix = '';\n  lastPrefix = '';\n\n  addPrefixes() {\n    let first = A(this.firstPrefix.split('.')).get('lastObject');\n    let last = A(this.lastPrefix.split('.')).get('lastObject');\n\n    while (first <= last) {\n      let prefix = this.store.createRecord('prefix', { id: '10.' + first });\n      prefix.save();\n\n      first++;\n    }\n  }\n\n  @action\n  new() {}\n\n  @action\n  submitFirstPrefixAction(firstPrefix) {\n    this.set('firstPrefix', firstPrefix);\n  }\n\n  @action\n  submitLastPrefixAction(lastPrefix) {\n    this.set('lastPrefix', lastPrefix);\n  }\n\n  @action\n  submitAction() {\n    this.addPrefixes();\n    this.router.transitionTo('prefixes');\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo('prefixes');\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"col-md-9 col-md-offset-3 label-small\\\">\\n  Click the refresh icon for a new random ID, or the cross icon to delete the random ID and enter a value manually.\\n</div>\\n\\n<@form.element @controlType=\\\"text\\\" id=\\\"member-id\\\" class=\\\"form-group\\\" @label=\\\"Member ID\\\" @property=\\\"symbol\\\" @helpText=\\\"The Member ID is the unique identifier for each member and can't be changed. The Member ID can contain only upper case letters, and must not be longer than 8 characters.\\\" as |el|>\\n  <div class=\\\"input-group-no-float\\\">\\n    <el.control id=\\\"member-id-field\\\" />\\n\\n    <span class=\\\"input-group-addon refresh-input\\\" title=\\\"Refresh\\\" aria-label=\\\"Refresh\\\" {{action 'refreshAction'}}><i class=\\\"fas fa-sync\\\"></i></span>\\n    <span class=\\\"input-group-addon clear-input\\\" title=\\\"Clear\\\" aria-label=\\\"Clear\\\" {{action 'clearAction'}}><i class=\\\"fas fa-times-circle\\\"></i></span>\\n  </div>\\n</@form.element>\\n\", {\"contents\":\"<div class=\\\"col-md-9 col-md-offset-3 label-small\\\">\\n  Click the refresh icon for a new random ID, or the cross icon to delete the random ID and enter a value manually.\\n</div>\\n\\n<@form.element @controlType=\\\"text\\\" id=\\\"member-id\\\" class=\\\"form-group\\\" @label=\\\"Member ID\\\" @property=\\\"symbol\\\" @helpText=\\\"The Member ID is the unique identifier for each member and can't be changed. The Member ID can contain only upper case letters, and must not be longer than 8 characters.\\\" as |el|>\\n  <div class=\\\"input-group-no-float\\\">\\n    <el.control id=\\\"member-id-field\\\" />\\n\\n    <span class=\\\"input-group-addon refresh-input\\\" title=\\\"Refresh\\\" aria-label=\\\"Refresh\\\" {{action 'refreshAction'}}><i class=\\\"fas fa-sync\\\"></i></span>\\n    <span class=\\\"input-group-addon clear-input\\\" title=\\\"Clear\\\" aria-label=\\\"Clear\\\" {{action 'clearAction'}}><i class=\\\"fas fa-times-circle\\\"></i></span>\\n  </div>\\n</@form.element>\\n\",\"moduleName\":\"bracco/components/provider-id.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/provider-id.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class ProviderId extends Component {\n  init() {\n    super.init(...arguments);\n\n    this.generate();\n  }\n\n  generate() {\n    let self = this;\n    let url = ENV.API_URL + '/providers/random';\n    fetch(url)\n      .then(function (response) {\n        if (response.ok) {\n          response.json().then(function (data) {\n            if (self.isDestroying || self.isDestroyed) {\n              return;\n            }\n            self.model.set('symbol', data.symbol);\n          });\n        } else {\n          console.debug(response);\n        }\n      })\n      .catch(function (error) {\n        console.debug(error);\n      });\n  }\n\n  @action\n  generateAction() {\n    this.generate();\n  }\n\n  @action\n  refreshAction() {\n    this.generate();\n  }\n\n  @action\n  clearAction() {\n    this.model.set('symbol', null);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content\\\" id=\\\"info-tab\\\">\\n  <UserRole />\\n  <div class=\\\"row row-chart\\\">\\n    {{#if (eq this.model.memberType 'consortium')}}\\n      <BarChart\\n        @data={{this.json.providers}}\\n        @label=\\\"Organization\\\"\\n        @model={{this.model}}\\n        @link=\\\"providers.show.organizations\\\"\\n        @offset={{true}}\\n      />\\n    {{/if}}\\n    {{#if\\n      (and\\n        (not-eq this.model.memberType 'member_only')\\n        (not-eq this.model.memberType 'developer')\\n      )\\n    }}\\n      <BarChart\\n        @data={{this.json.clients}}\\n        @label=\\\"Repository\\\"\\n        @model={{this.this.model}}\\n        @link=\\\"providers.show.repositories\\\"\\n        @offset={{if (not-eq this.model.memberType 'consortium') true}}\\n      />\\n      <BarChart\\n        @data={{this.json.dois}}\\n        @label=\\\"DOI\\\"\\n        @model={{this.model}}\\n        @link=\\\"providers.show.dois\\\"\\n        @cumulative={{false}}\\n      />\\n    {{else}}\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          {{this.model.displayName}}\\n          does not provide DOI registration services.\\n        </div>\\n      </div>\\n    {{/if}}\\n  </div>\\n  {{#if (can 'read messages' this.model)}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n  {{/if}}\\n</div>\", {\"contents\":\"<div class=\\\"content\\\" id=\\\"info-tab\\\">\\n  <UserRole />\\n  <div class=\\\"row row-chart\\\">\\n    {{#if (eq this.model.memberType 'consortium')}}\\n      <BarChart\\n        @data={{this.json.providers}}\\n        @label=\\\"Organization\\\"\\n        @model={{this.model}}\\n        @link=\\\"providers.show.organizations\\\"\\n        @offset={{true}}\\n      />\\n    {{/if}}\\n    {{#if\\n      (and\\n        (not-eq this.model.memberType 'member_only')\\n        (not-eq this.model.memberType 'developer')\\n      )\\n    }}\\n      <BarChart\\n        @data={{this.json.clients}}\\n        @label=\\\"Repository\\\"\\n        @model={{this.this.model}}\\n        @link=\\\"providers.show.repositories\\\"\\n        @offset={{if (not-eq this.model.memberType 'consortium') true}}\\n      />\\n      <BarChart\\n        @data={{this.json.dois}}\\n        @label=\\\"DOI\\\"\\n        @model={{this.model}}\\n        @link=\\\"providers.show.dois\\\"\\n        @cumulative={{false}}\\n      />\\n    {{else}}\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          {{this.model.displayName}}\\n          does not provide DOI registration services.\\n        </div>\\n      </div>\\n    {{/if}}\\n  </div>\\n  {{#if (can 'read messages' this.model)}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n  {{/if}}\\n</div>\",\"moduleName\":\"bracco/components/provider-info.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/provider-info.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport fetch from 'fetch';\nimport { Promise } from 'rsvp';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class ProviderInfo extends Component {\n  json = null;\n\n  @service\n  flashMessages;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    let promise = new Promise((resolve, reject) => {\n      const url = ENV.API_URL + '/providers/' + (this.model ? this.model.get('id') : '') + '/stats';\n      const headers = { Accept: 'application/json' };\n      fetch(url, {\n        headers\n      })\n        .then((response) => {\n          response.text().then((text) => {\n            try {\n              let json = JSON.parse(text);\n              if (!response.ok) {\n                response.responseJSON = json;\n                reject(response);\n              } else {\n                resolve(json);\n              }\n            } catch (SyntaxError) {\n              response.responseText = text;\n              reject(response);\n            }\n          });\n        })\n        .catch(reject);\n    });\n\n    let self = this;\n    promise.then(\n      function (value) {\n        if (self.isDestroying || self.isDestroyed) {\n          return;\n        }\n        self.set('json', value);\n      },\n      function (reason) {\n        console.debug(reason);\n      }\n    );\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"col-md-3\\\">\\n  {{#if (can 'create provider')}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"btn-toolbar\\\">\\n          <div class=\\\"btn-group btn-group-sm\\\">\\n            <LinkTo\\n              @route=\\\"providers.new\\\"\\n              class=\\\"btn btn-warning\\\"\\n              id=\\\"add-provider\\\"\\n            >\\n              <i class=\\\"fas fa-plus\\\"></i>\\n              Add Member\\n            </LinkTo>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  {{else}}\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"edit\\\"></div>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.meta.years this.model.query.year)}}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Year joined\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.years}}\\n            {{#each this.model.meta.years as |year|}}\\n              <li>\\n                {{#if this.model.query.year}}\\n                  <LinkTo @route=\\\"providers\\\" @query={{hash year=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route=\\\"providers\\\" @query={{hash year=year.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route=\\\"providers\\\" @query={{hash year=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.year}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.meta.regions this.model.query.region)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Region\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.regions}}\\n            {{#each this.model.meta.regions as |region|}}\\n              <li>\\n                {{#if this.model.query.region}}\\n                  <LinkTo @route=\\\"providers\\\" @query={{hash region=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route=\\\"providers\\\" @query={{hash region=region.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{region.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{region.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route=\\\"providers\\\" @query={{hash region=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.region}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (can 'create provider')}}\\n    {{#if (or this.model.meta.memberTypes this.model.query.member-type)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Member Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.memberTypes}}\\n              {{#each this.model.meta.memberTypes as |memberType|}}\\n                <li>\\n                  {{#if this.model.query.member-type}}\\n                    <LinkTo @route=\\\"providers\\\" @query={{hash member-type=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash member-type=memberType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{memberType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{memberType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"providers\\\" @query={{hash member-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.member-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.meta.nonProfitStatuses this.model.query.non-profit-status)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Tax Status\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.nonProfitStatuses}}\\n              {{#each this.model.meta.nonProfitStatuses as |nonProfitStatus|}}\\n                <li>\\n                  {{#if this.model.query.non-profit-status}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash non-profit-status=''}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash non-profit-status=nonProfitStatus.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{nonProfitStatus.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{nonProfitStatus.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"providers\\\" @query={{hash non-profit-status=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.non-profit-status}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.meta.organizationTypes this.model.query.organization-type)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Organization Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.organizationTypes}}\\n              {{#each this.model.meta.organizationTypes as |organizationType|}}\\n                <li>\\n                  {{#if this.model.query.organization-type}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash organization-type=''}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash organization-type=organizationType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{organizationType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{organizationType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"providers\\\" @query={{hash organization-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.organization-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.meta.focusAreas this.model.query.focus-area)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Focus Area\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.focusAreas}}\\n              {{#each this.model.meta.focusAreas as |focusArea|}}\\n                <li>\\n                  {{#if this.model.query.focus-area}}\\n                    <LinkTo @route=\\\"providers\\\" @query={{hash focus-area=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash focus-area=focusArea.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{focusArea.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{focusArea.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"providers\\\" @query={{hash focus-area=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.focus-area}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.meta.hasRequiredContacts this.model.query.has-required-contacts)\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            All Required Contacts\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.hasRequiredContacts}}\\n              {{#each this.model.meta.hasRequiredContacts as |hasRequiredContacts|}}\\n                <li>\\n                  {{#if this.model.query.has-required-contacts}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash has-required-contacts=''}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash has-required-contacts=hasRequiredContacts.id\\n                      }}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{hasRequiredContacts.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{hasRequiredContacts.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo\\n                  @route=\\\"providers\\\"\\n                  @query={{hash has-required-contacts=''}}\\n                >\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.has-required-contacts}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{/if}}\\n</div>\\n<div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n  {{#if this.searchable}}\\n    <ModelSearch\\n      @model={{this.model}}\\n      @sortable={{true}}\\n      @name=\\\"Member\\\"\\n      @link=\\\"providers\\\"\\n    />\\n  {{/if}}\\n  {{#if this.model}}\\n    {{#each this.model as |provider|}}\\n      <div class=\\\"panel panel-transparent\\\" data-test-provider>\\n        <div class=\\\"panel-body\\\">\\n          <h3 class=\\\"work\\\">\\n            <LinkTo @route=\\\"providers.show\\\" @model={{provider.id}}>\\n              {{provider.displayName}}\\n            </LinkTo>\\n            {{#unless provider.isActive}}\\n              <span class=\\\"label label-warning-inv\\\">\\n                Inactive\\n              </span>\\n            {{/unless}}\\n          </h3>\\n          <h5>\\n            Member ID\\n          </h5>\\n          {{provider.symbol}}\\n          {{#if provider.rorId}}\\n            <h5>\\n              ROR ID\\n            </h5>\\n            <a href=\\\"{{provider.rorId}}\\\">\\n              {{provider.rorId}}\\n            </a>\\n          {{/if}}\\n          <h5>\\n            Member Type\\n          </h5>\\n          {{titleize (humanize (underscore provider.memberType))}}\\n          <h5>\\n            Tax Status\\n          </h5>\\n          {{titleize provider.nonProfitStatus}}\\n          {{#if provider.organizationType}}\\n            <h5>\\n              Organization Type\\n            </h5>\\n            {{titleize (humanize (underscore provider.organizationType))}}\\n          {{/if}}\\n          {{#if provider.focusArea}}\\n            <h5>\\n              Focus Area\\n            </h5>\\n            {{titleize (humanize (underscore provider.focusArea))}}\\n          {{/if}}\\n          {{#if (not-eq provider.memberType 'developer')}}\\n            {{#if (not-eq provider.memberType 'consortium_organization')}}\\n              <h5>\\n                Voting Representative\\n              </h5>\\n              <div cy-data=\\\"voting\\\">\\n                {{#if provider.votingContact.email}}\\n                  {{format-contact provider.votingContact}}\\n                {{else}}\\n                  <span class=\\\"small icon-warning\\\">\\n                    Please provide this information.\\n                  </span>\\n                {{/if}}\\n              </div>\\n            {{/if}}\\n            <h5>\\n              Service Contact\\n            </h5>\\n            <div cy-data=\\\"service\\\">\\n              {{#if provider.serviceContact.email}}\\n                {{format-contact provider.serviceContact}}\\n              {{else}}\\n                <span class=\\\"small icon-warning\\\">\\n                  Please provide this information.\\n                </span>\\n              {{/if}}\\n            </div>\\n            {{#if (not-eq provider.memberType 'consortium_organization')}}\\n              <h5>\\n                Billing Contact\\n              </h5>\\n              <div cy-data=\\\"billing\\\">\\n                {{#if provider.billingContact.email}}\\n                  {{format-contact provider.billingContact}}\\n                {{else}}\\n                  <span class=\\\"small icon-warning\\\">\\n                    Please provide this information.\\n                  </span>\\n                {{/if}}\\n              </div>\\n              <h5>\\n                Billing Information\\n              </h5>\\n              {{#if provider.formattedBillingInformation}}\\n                {{#if provider.billingContact.familyName}}\\n                  {{provider.billingContact.givenName}}\\n                  {{provider.billingContact.familyName}}\\n                  <br />\\n                {{/if}}\\n                {{#if provider.billingInformation.department}}\\n                  {{provider.billingInformation.department}}<br />\\n                {{/if}}\\n                {{#if provider.billingInformation.organization}}\\n                  {{provider.billingInformation.organization}}<br />\\n                {{else}}\\n                  {{provider.name}}<br />\\n                {{/if}}\\n                {{#if provider.formattedBillingInformation}}\\n                  {{#each provider.formattedBillingInformation as |line|}}\\n                    {{line}}<br />\\n                  {{/each}}\\n                {{/if}}\\n              {{else}}\\n                <span class=\\\"small icon-warning\\\">\\n                  Please provide this information.\\n                </span>\\n              {{/if}}\\n            {{/if}}\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/each}}\\n    <div class=\\\"text-center\\\">\\n      {{#if (gt this.model.meta.totalPages 1)}}\\n        <PageNumbers @model={{this.model}} @link=\\\"providers\\\" />\\n      {{/if}}\\n    </div>\\n  {{else}}\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      No members found.\\n    </BsAlert>\\n  {{/if}}\\n</div>\", {\"contents\":\"<div class=\\\"col-md-3\\\">\\n  {{#if (can 'create provider')}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"btn-toolbar\\\">\\n          <div class=\\\"btn-group btn-group-sm\\\">\\n            <LinkTo\\n              @route=\\\"providers.new\\\"\\n              class=\\\"btn btn-warning\\\"\\n              id=\\\"add-provider\\\"\\n            >\\n              <i class=\\\"fas fa-plus\\\"></i>\\n              Add Member\\n            </LinkTo>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  {{else}}\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"edit\\\"></div>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.meta.years this.model.query.year)}}\\n    <div class=\\\"panel facets add\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Year joined\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.years}}\\n            {{#each this.model.meta.years as |year|}}\\n              <li>\\n                {{#if this.model.query.year}}\\n                  <LinkTo @route=\\\"providers\\\" @query={{hash year=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route=\\\"providers\\\" @query={{hash year=year.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route=\\\"providers\\\" @query={{hash year=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.year}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (or this.model.meta.regions this.model.query.region)}}\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h4>\\n          Region\\n        </h4>\\n        <ul>\\n          {{#if this.model.meta.regions}}\\n            {{#each this.model.meta.regions as |region|}}\\n              <li>\\n                {{#if this.model.query.region}}\\n                  <LinkTo @route=\\\"providers\\\" @query={{hash region=''}}>\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo @route=\\\"providers\\\" @query={{hash region=region.id}}>\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{region.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{region.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          {{else}}\\n            <li>\\n              <LinkTo @route=\\\"providers\\\" @query={{hash region=''}}>\\n                <i class=\\\"far fa-check-square\\\"></i>\\n              </LinkTo>\\n              <div class=\\\"facet-title\\\">\\n                {{this.model.query.region}}\\n              </div>\\n              <span class=\\\"number pull-right\\\">\\n                0\\n              </span>\\n              <div class=\\\"clearfix\\\"></div>\\n            </li>\\n          {{/if}}\\n        </ul>\\n      </div>\\n    </div>\\n  {{/if}}\\n  {{#if (can 'create provider')}}\\n    {{#if (or this.model.meta.memberTypes this.model.query.member-type)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Member Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.memberTypes}}\\n              {{#each this.model.meta.memberTypes as |memberType|}}\\n                <li>\\n                  {{#if this.model.query.member-type}}\\n                    <LinkTo @route=\\\"providers\\\" @query={{hash member-type=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash member-type=memberType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{memberType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{memberType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"providers\\\" @query={{hash member-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.member-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.meta.nonProfitStatuses this.model.query.non-profit-status)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Tax Status\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.nonProfitStatuses}}\\n              {{#each this.model.meta.nonProfitStatuses as |nonProfitStatus|}}\\n                <li>\\n                  {{#if this.model.query.non-profit-status}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash non-profit-status=''}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash non-profit-status=nonProfitStatus.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{nonProfitStatus.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{nonProfitStatus.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"providers\\\" @query={{hash non-profit-status=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.non-profit-status}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.meta.organizationTypes this.model.query.organization-type)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Organization Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.organizationTypes}}\\n              {{#each this.model.meta.organizationTypes as |organizationType|}}\\n                <li>\\n                  {{#if this.model.query.organization-type}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash organization-type=''}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash organization-type=organizationType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{organizationType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{organizationType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"providers\\\" @query={{hash organization-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.organization-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.meta.focusAreas this.model.query.focus-area)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Focus Area\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.focusAreas}}\\n              {{#each this.model.meta.focusAreas as |focusArea|}}\\n                <li>\\n                  {{#if this.model.query.focus-area}}\\n                    <LinkTo @route=\\\"providers\\\" @query={{hash focus-area=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash focus-area=focusArea.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{focusArea.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{focusArea.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"providers\\\" @query={{hash focus-area=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.focus-area}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.meta.hasRequiredContacts this.model.query.has-required-contacts)\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            All Required Contacts\\n          </h4>\\n          <ul>\\n            {{#if this.model.meta.hasRequiredContacts}}\\n              {{#each this.model.meta.hasRequiredContacts as |hasRequiredContacts|}}\\n                <li>\\n                  {{#if this.model.query.has-required-contacts}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash has-required-contacts=''}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers\\\"\\n                      @query={{hash has-required-contacts=hasRequiredContacts.id\\n                      }}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{hasRequiredContacts.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{hasRequiredContacts.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo\\n                  @route=\\\"providers\\\"\\n                  @query={{hash has-required-contacts=''}}\\n                >\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.query.has-required-contacts}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  {{/if}}\\n</div>\\n<div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n  {{#if this.searchable}}\\n    <ModelSearch\\n      @model={{this.model}}\\n      @sortable={{true}}\\n      @name=\\\"Member\\\"\\n      @link=\\\"providers\\\"\\n    />\\n  {{/if}}\\n  {{#if this.model}}\\n    {{#each this.model as |provider|}}\\n      <div class=\\\"panel panel-transparent\\\" data-test-provider>\\n        <div class=\\\"panel-body\\\">\\n          <h3 class=\\\"work\\\">\\n            <LinkTo @route=\\\"providers.show\\\" @model={{provider.id}}>\\n              {{provider.displayName}}\\n            </LinkTo>\\n            {{#unless provider.isActive}}\\n              <span class=\\\"label label-warning-inv\\\">\\n                Inactive\\n              </span>\\n            {{/unless}}\\n          </h3>\\n          <h5>\\n            Member ID\\n          </h5>\\n          {{provider.symbol}}\\n          {{#if provider.rorId}}\\n            <h5>\\n              ROR ID\\n            </h5>\\n            <a href=\\\"{{provider.rorId}}\\\">\\n              {{provider.rorId}}\\n            </a>\\n          {{/if}}\\n          <h5>\\n            Member Type\\n          </h5>\\n          {{titleize (humanize (underscore provider.memberType))}}\\n          <h5>\\n            Tax Status\\n          </h5>\\n          {{titleize provider.nonProfitStatus}}\\n          {{#if provider.organizationType}}\\n            <h5>\\n              Organization Type\\n            </h5>\\n            {{titleize (humanize (underscore provider.organizationType))}}\\n          {{/if}}\\n          {{#if provider.focusArea}}\\n            <h5>\\n              Focus Area\\n            </h5>\\n            {{titleize (humanize (underscore provider.focusArea))}}\\n          {{/if}}\\n          {{#if (not-eq provider.memberType 'developer')}}\\n            {{#if (not-eq provider.memberType 'consortium_organization')}}\\n              <h5>\\n                Voting Representative\\n              </h5>\\n              <div cy-data=\\\"voting\\\">\\n                {{#if provider.votingContact.email}}\\n                  {{format-contact provider.votingContact}}\\n                {{else}}\\n                  <span class=\\\"small icon-warning\\\">\\n                    Please provide this information.\\n                  </span>\\n                {{/if}}\\n              </div>\\n            {{/if}}\\n            <h5>\\n              Service Contact\\n            </h5>\\n            <div cy-data=\\\"service\\\">\\n              {{#if provider.serviceContact.email}}\\n                {{format-contact provider.serviceContact}}\\n              {{else}}\\n                <span class=\\\"small icon-warning\\\">\\n                  Please provide this information.\\n                </span>\\n              {{/if}}\\n            </div>\\n            {{#if (not-eq provider.memberType 'consortium_organization')}}\\n              <h5>\\n                Billing Contact\\n              </h5>\\n              <div cy-data=\\\"billing\\\">\\n                {{#if provider.billingContact.email}}\\n                  {{format-contact provider.billingContact}}\\n                {{else}}\\n                  <span class=\\\"small icon-warning\\\">\\n                    Please provide this information.\\n                  </span>\\n                {{/if}}\\n              </div>\\n              <h5>\\n                Billing Information\\n              </h5>\\n              {{#if provider.formattedBillingInformation}}\\n                {{#if provider.billingContact.familyName}}\\n                  {{provider.billingContact.givenName}}\\n                  {{provider.billingContact.familyName}}\\n                  <br />\\n                {{/if}}\\n                {{#if provider.billingInformation.department}}\\n                  {{provider.billingInformation.department}}<br />\\n                {{/if}}\\n                {{#if provider.billingInformation.organization}}\\n                  {{provider.billingInformation.organization}}<br />\\n                {{else}}\\n                  {{provider.name}}<br />\\n                {{/if}}\\n                {{#if provider.formattedBillingInformation}}\\n                  {{#each provider.formattedBillingInformation as |line|}}\\n                    {{line}}<br />\\n                  {{/each}}\\n                {{/if}}\\n              {{else}}\\n                <span class=\\\"small icon-warning\\\">\\n                  Please provide this information.\\n                </span>\\n              {{/if}}\\n            {{/if}}\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/each}}\\n    <div class=\\\"text-center\\\">\\n      {{#if (gt this.model.meta.totalPages 1)}}\\n        <PageNumbers @model={{this.model}} @link=\\\"providers\\\" />\\n      {{/if}}\\n    </div>\\n  {{else}}\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      No members found.\\n    </BsAlert>\\n  {{/if}}\\n</div>\",\"moduleName\":\"bracco/components/provider-list.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/provider-list.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\n@classNames('row')\nexport default class ProviderList extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{yield}}\", {\"contents\":\"{{yield}}\",\"moduleName\":\"bracco/components/provider-ror.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/provider-ror.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class ProviderRor extends Component {}\n","import classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class ProviderSettings extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group\\\">\\n    <div class=\\\"power-select-fragment\\\" data-repository-certificate>\\n      <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.certificate}} @options={{this.certificates}} as |el|>\\n        <el.control @onChange={{action \\\"selectCertificate\\\"}} @search={{action \\\"searchCertificate\\\"}} @placeholder=\\\"Select Certificate\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n      </@form.element>\\n    </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteCertificate\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <div class=\\\"power-select-fragment\\\" data-repository-certificate>\\n    <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.certificate}} @options={{this.certificates}} as |el|>\\n      <el.control @onChange={{action \\\"selectCertificate\\\"}} @search={{action \\\"searchCertificate\\\"}} @placeholder=\\\"Select Certificate\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n    </@form.element>\\n  </div>\\n{{/if}}\\n\", {\"contents\":\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group\\\">\\n    <div class=\\\"power-select-fragment\\\" data-repository-certificate>\\n      <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.certificate}} @options={{this.certificates}} as |el|>\\n        <el.control @onChange={{action \\\"selectCertificate\\\"}} @search={{action \\\"searchCertificate\\\"}} @placeholder=\\\"Select Certificate\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n      </@form.element>\\n    </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteCertificate\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <div class=\\\"power-select-fragment\\\" data-repository-certificate>\\n    <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.certificate}} @options={{this.certificates}} as |el|>\\n      <el.control @onChange={{action \\\"selectCertificate\\\"}} @search={{action \\\"searchCertificate\\\"}} @placeholder=\\\"Select Certificate\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n    </@form.element>\\n  </div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/repository-certificate.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-certificate.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\nconst certificateList = [\n  'CLARIN',\n  'CoreTrustSeal',\n  'DIN 31644',\n  'DINI',\n  'DSA',\n  'RatSWD',\n  'WDS'\n];\n\n@classic\nexport default class RepositoryCertificate extends Component {\n  @service\n  store;\n\n  certificate = null;\n  certificateList = certificateList;\n  certificates = certificateList;\n\n  @action\n  searchCertificate(query) {\n    let certificates = certificateList.filter(function (certificate) {\n      return certificate.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('certificates', certificates);\n  }\n\n  @action\n  selectCertificate(certificate) {\n    this.model.get('certificate').replace(this.index, 1, [certificate]);\n    this.set('certificates', certificateList);\n  }\n\n  @action\n  deleteCertificate() {\n    this.model.get('certificate').removeAt(this.index);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Transfer DOIs</h3></div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this}} @onSubmit={{action \\\"submitAction\\\"}} @submitOnEnter={{true}} as |form|>\\n      <form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" @property=\\\"repository\\\" @label=\\\"Repository\\\" @helpText=\\\"Transfer all DOIs to this repository. It can take up to one hour for the transfer to complete.\\\" @optionLabelPath=\\\"name\\\" @options={{this.repositories}} @destination={{this.repository}} as |el|>\\n        <el.control @onChange={{action \\\"selectRepositoryAction\\\"}} @search={{action \\\"searchRepositoryAction\\\"}} @searchField=\\\"name\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @searchEnabled={{true}} as |item|>\\n          {{item.name}}\\n        </el.control>\\n      </form.element>\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <button class=\\\"btn btn-sm btn-fill\\\" disabled={{this.isDisabled}} type=\\\"button\\\" {{action \\\"submitAction\\\"}}>Transfer DOIs</button>\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Transfer DOIs</h3></div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this}} @onSubmit={{action \\\"submitAction\\\"}} @submitOnEnter={{true}} as |form|>\\n      <form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" @property=\\\"repository\\\" @label=\\\"Repository\\\" @helpText=\\\"Transfer all DOIs to this repository. It can take up to one hour for the transfer to complete.\\\" @optionLabelPath=\\\"name\\\" @options={{this.repositories}} @destination={{this.repository}} as |el|>\\n        <el.control @onChange={{action \\\"selectRepositoryAction\\\"}} @search={{action \\\"searchRepositoryAction\\\"}} @searchField=\\\"name\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @searchEnabled={{true}} as |item|>\\n          {{item.name}}\\n        </el.control>\\n      </form.element>\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <button class=\\\"btn btn-sm btn-fill\\\" disabled={{this.isDisabled}} type=\\\"button\\\" {{action \\\"submitAction\\\"}}>Transfer DOIs</button>\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/repository-dois-transfer.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-dois-transfer.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\n@classNames('row')\nexport default class RepositoryDoisTransfer extends Component {\n  @service\n  currentUser;\n\n  @service\n  store;\n\n  @service\n  flashMessages;\n\n  @service\n  intl;\n\n  @service\n  router;\n\n  provider = null;\n  repository = null;\n  isDisabled = true;\n\n  init(...args) {\n    super.init(...args);\n\n    this.repositories = this.repositories || [];\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.searchRepository(null);\n  }\n\n  searchRepository(query) {\n    let self = this;\n    if (this.currentUser.get('isAdmin')) {\n      this.store\n        .query('repository', { query, sort: 'name', 'page[size]': 100 })\n        .then(function (repositories) {\n          self.set('repositories', repositories);\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          self.set('repositories', []);\n        });\n    } else if (this.currentUser.get('isConsortium')) {\n      this.store\n        .query('repository', {\n          query,\n          'consortium-id': this.currentUser.get('provider_id'),\n          sort: 'name',\n          'page[size]': 100\n        })\n        .then(function (repositories) {\n          self.set('repositories', repositories);\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          self.set('repositories', []);\n        });\n    } else if (this.currentUser.get('isProvider')) {\n      this.store\n        .query('repository', {\n          query,\n          'provider-id': this.currentUser.get('provider_id'),\n          sort: 'name',\n          'page[size]': 100\n        })\n        .then(function (repositories) {\n          self.set('repositories', repositories);\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          self.set('repositories', []);\n        });\n    }\n  }\n\n  selectRepository(repository) {\n    this.set('repository', repository);\n    this.set(\n      'isDisabled',\n      repository === null || repository.id === this.get('model.id')\n    );\n    this.model.set('targetId', repository.id);\n  }\n\n  @action\n  searchRepositoryAction(query) {\n    this.searchRepository(query);\n  }\n\n  @action\n  selectRepositoryAction(repository) {\n    this.selectRepository(repository);\n  }\n\n  @action\n  submitAction() {\n    this.model.save();\n    let count = this.model.get('meta.doiCount');\n    this.flashMessages.success(\n      'DOI transfer for ' +\n        this.intl.formatNumber(count) +\n        ' DOIs started, the transfer should take about ' +\n        this.intl.formatNumber(Math.ceil(count / 5000) + 1) +\n        ' minutes to complete.',\n      {\n        timeout: 5000,\n        sticky: true\n      }\n    );\n    this.router.transitionTo('repositories.show', this.model);\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo('repositories.show.dois', this.model);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"col-md-9 col-md-offset-3 label-small\\\">\\n  Click the circle icon for a new random ID, or the cross icon to delete the random ID and enter a value manually.\\n</div>\\n\\n<@form.element @controlType=\\\"text\\\" id=\\\"repository-id\\\" class=\\\"form-group\\\" @label=\\\"Repository ID\\\" @property=\\\"symbol\\\" @helpText=\\\"The Repository ID is the unique identifier for each repository in DataCite and can't be changed. The Repository ID must start with the Member ID, followed by a dot. It can then contain only upper case letters, numbers, and at most one hyphen.\\\" as |el|>\\n  \\n  <div class=\\\"input-group-no-float\\\">\\n    <el.control id=\\\"repository-id-field\\\" />\\n\\n    <span class=\\\"input-group-addon refresh-input\\\" title=\\\"Refresh\\\" aria-label=\\\"Refresh\\\" {{action 'refreshAction'}}><i class=\\\"fas fa-sync\\\"></i></span>\\n    <span class=\\\"input-group-addon clear-input\\\" title=\\\"Clear\\\" aria-label=\\\"Clear\\\" {{action 'clearAction'}}><i class=\\\"fas fa-times-circle\\\"></i></span>  \\n  </div>\\n</@form.element>\\n\", {\"contents\":\"<div class=\\\"col-md-9 col-md-offset-3 label-small\\\">\\n  Click the circle icon for a new random ID, or the cross icon to delete the random ID and enter a value manually.\\n</div>\\n\\n<@form.element @controlType=\\\"text\\\" id=\\\"repository-id\\\" class=\\\"form-group\\\" @label=\\\"Repository ID\\\" @property=\\\"symbol\\\" @helpText=\\\"The Repository ID is the unique identifier for each repository in DataCite and can't be changed. The Repository ID must start with the Member ID, followed by a dot. It can then contain only upper case letters, numbers, and at most one hyphen.\\\" as |el|>\\n  \\n  <div class=\\\"input-group-no-float\\\">\\n    <el.control id=\\\"repository-id-field\\\" />\\n\\n    <span class=\\\"input-group-addon refresh-input\\\" title=\\\"Refresh\\\" aria-label=\\\"Refresh\\\" {{action 'refreshAction'}}><i class=\\\"fas fa-sync\\\"></i></span>\\n    <span class=\\\"input-group-addon clear-input\\\" title=\\\"Clear\\\" aria-label=\\\"Clear\\\" {{action 'clearAction'}}><i class=\\\"fas fa-times-circle\\\"></i></span>  \\n  </div>\\n</@form.element>\\n\",\"moduleName\":\"bracco/components/repository-id.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-id.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class RepositoryId extends Component {\n  init() {\n    super.init(...arguments);\n\n    this.generate();\n  }\n\n  generate() {\n    let self = this;\n    let url = ENV.API_URL + '/repositories/random';\n    fetch(url)\n      .then(function (response) {\n        if (response.ok) {\n          response.json().then(function (data) {\n            if (self.isDestroying || self.isDestroyed) {\n              return;\n            }\n            self.model.set(\n              'symbol',\n              self.provider.get('id').toUpperCase() + '.' + data.symbol\n            );\n          });\n        } else {\n          console.debug(response);\n        }\n      })\n      .catch(function (error) {\n        console.debug(error);\n      });\n  }\n\n  @action\n  generateAction() {\n    this.generate();\n  }\n\n  @action\n  refreshAction() {\n    this.generate();\n  }\n\n  @action\n  clearAction() {\n    this.model.set('symbol', null);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"content\\\" id=\\\"info-tab\\\">\\n  <UserRole />\\n  <div class=\\\"row row-chart\\\">\\n    <BarChart @data={{this.json.dois}} @label=\\\"DOI\\\" @model={{this.model}} @link=\\\"repositories.show.dois\\\" @cumulative={{false}} @offset={{true}} />\\n  </div>\\n\\n  {{#if (can \\\"read messages\\\" this.model)}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n  {{/if}}\\n</div>\", {\"contents\":\"<div class=\\\"content\\\" id=\\\"info-tab\\\">\\n  <UserRole />\\n  <div class=\\\"row row-chart\\\">\\n    <BarChart @data={{this.json.dois}} @label=\\\"DOI\\\" @model={{this.model}} @link=\\\"repositories.show.dois\\\" @cumulative={{false}} @offset={{true}} />\\n  </div>\\n\\n  {{#if (can \\\"read messages\\\" this.model)}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n  {{/if}}\\n</div>\",\"moduleName\":\"bracco/components/repository-info.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-info.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport fetch from 'fetch';\nimport { Promise } from 'rsvp';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class RepositoryInfo extends Component {\n  @service\n  flashMessages;\n\n  json = null;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    let promise = new Promise((resolve, reject) => {\n      const url =\n        ENV.API_URL + '/repositories/' + (this.model ? this.model.get('id') : '') + '/stats';\n\n      const headers = { Accept: 'application/json' };\n      fetch(url, {\n        headers\n      })\n        .then((response) => {\n          response.text().then((text) => {\n            try {\n              let json = JSON.parse(text);\n              if (!response.ok) {\n                response.responseJSON = json;\n                reject(response);\n              } else {\n                resolve(json);\n              }\n            } catch (SyntaxError) {\n              response.responseText = text;\n              reject(response);\n            }\n          });\n        })\n        .catch(reject);\n    });\n\n    let self = this;\n    promise.then(\n      function (value) {\n        if (self.isDestroying || self.isDestroyed) {\n          return;\n        }\n        self.set('json', value);\n      },\n      function (reason) {\n        console.debug(reason);\n      }\n    );\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\" id=\\\"repository-issn\\\">\\n  <label class=\\\"control-label col-md-3\\\">ISSN (optional)</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div>\\n      <label for=\\\"issnl\\\" class=\\\"subtitle\\\">ISSN-L</label>\\n      <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"repository-issn-issnl\\\" @value={{this.model.issn.issnl}} required={{false}} />\\n\\n      {{#if (v-get this.fragment 'issnl' 'errors')}}\\n        <div class=\\\"help-block help-block-fragment issnl-field\\\">{{v-get this.fragment 'issnl' 'errorMessage'}}</div>\\n      {{/if}}\\n    </div>\\n    <div>\\n      <label for=\\\"issnl\\\" class=\\\"subtitle\\\">ISSN (electronic)</label>\\n      <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"repository-issn-electronic\\\" @value={{this.model.issn.electronic}} required={{false}} />\\n    </div>\\n    <div>\\n      <label for=\\\"issnl\\\" class=\\\"subtitle\\\">ISSN (print)</label>\\n      <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"repository-issn-print\\\" @value={{this.model.issn.print}} required={{false}} />\\n    </div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\" id=\\\"repository-issn\\\">\\n  <label class=\\\"control-label col-md-3\\\">ISSN (optional)</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div>\\n      <label for=\\\"issnl\\\" class=\\\"subtitle\\\">ISSN-L</label>\\n      <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"repository-issn-issnl\\\" @value={{this.model.issn.issnl}} required={{false}} />\\n\\n      {{#if (v-get this.fragment 'issnl' 'errors')}}\\n        <div class=\\\"help-block help-block-fragment issnl-field\\\">{{v-get this.fragment 'issnl' 'errorMessage'}}</div>\\n      {{/if}}\\n    </div>\\n    <div>\\n      <label for=\\\"issnl\\\" class=\\\"subtitle\\\">ISSN (electronic)</label>\\n      <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"repository-issn-electronic\\\" @value={{this.model.issn.electronic}} required={{false}} />\\n    </div>\\n    <div>\\n      <label for=\\\"issnl\\\" class=\\\"subtitle\\\">ISSN (print)</label>\\n      <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"repository-issn-print\\\" @value={{this.model.issn.print}} required={{false}} />\\n    </div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/repository-issn.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-issn.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class RepositoryIssn extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group repository-language\\\">\\n    <div class=\\\"power-select-fragment\\\"  data-repository-language>\\n      <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.languageName}} @options={{this.languages}} as |el|>\\n        <el.control @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Select Language\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n      </@form.element>\\n    </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteLanguage\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <div class=\\\"power-select-fragment\\\" data-repository-language>\\n    <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.languageName}} @options={{this.languages}} as |el|>\\n      <el.control @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Select Language\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n    </@form.element>\\n  </div>\\n{{/if}}\\n\", {\"contents\":\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group repository-language\\\">\\n    <div class=\\\"power-select-fragment\\\"  data-repository-language>\\n      <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.languageName}} @options={{this.languages}} as |el|>\\n        <el.control @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Select Language\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n      </@form.element>\\n    </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteLanguage\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <div class=\\\"power-select-fragment\\\" data-repository-language>\\n    <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.languageName}} @options={{this.languages}} as |el|>\\n      <el.control @onChange={{action \\\"selectLanguage\\\"}} @search={{action \\\"searchLanguage\\\"}} @placeholder=\\\"Select Language\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} />\\n    </@form.element>\\n  </div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/repository-language.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-language.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\nimport ISO6391 from 'iso-639-1';\n\nconst languageList = ISO6391.getAllNames();\n\n@classic\nexport default class RepositoryLanguage extends Component {\n  @service\n  store;\n\n  languageList = languageList;\n  languages = languageList;\n\n  @computed('language')\n  get languageName() {\n    return ISO6391.getName(this.language);\n  }\n\n  @action\n  searchLanguage(query) {\n    let languages = languageList.filter(function (language) {\n      return language.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('languages', languages);\n  }\n\n  @action\n  selectLanguage(language) {\n    const selectedLanguageCode = language === null ? null : ISO6391.getCode(language);\n    this.model\n      .get('language')\n      .replace(this.index, 1, [selectedLanguageCode]);\n    this.set('languages', languageList);\n  }\n\n  @action\n  deleteLanguage() {\n    this.model.get('language').removeAt(this.index);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"row\\\">\\n  <div data-test-left-sidebar class=\\\"col-md-3\\\">\\n    {{#if\\n\\n      (and\\n        (can 'create repository' this.model)\\n        (eq this.link 'providers.show.repositories')\\n        (not-eq this.model.provider.memberType 'consortium')\\n        (eq this.hasRequiredContacts true)\\n      )\\n    }}\\n      {{#if\\n        (eq (await (prefixes-available this.model.provider.id)) 0)\\n      }}\\n        <div class=\\\"panel panel-transparent\\\">\\n          <div class=\\\"panel-body\\\" cy-data=\\\"alert\\\">\\n              <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n                Contact Support to get more prefixes for new repositories.\\n              </BsAlert>\\n          </div>\\n        </div>\\n      {{/if}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"btn-toolbar\\\">\\n            <div class=\\\"btn-group btn-group-sm\\\">\\n              <LinkTo\\n                @route=\\\"providers.show.repositories.new\\\"\\n                @model={{this.model.provider.id}}\\n                class=\\\"btn btn-warning\\\"\\n                id=\\\"add-repository\\\"\\n                @disabled={{if (eq (await (prefixes-available this.model.provider.id)) 0) \\\"true\\\" \\\"\\\"}}\\n              >\\n                <i class=\\\"fas fa-plus\\\"></i>\\n                Add Repository\\n              </LinkTo>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    {{else}}\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\" cy-data=\\\"alert\\\">\\n          {{#if\\n            (or\\n              (not-eq this.link 'providers.show.repositories')\\n              (eq this.model.provider.memberType 'consortium')\\n            )\\n          }}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              {{#if (eq this.currentUser.role_id 'staff_admin')}}\\n                Select a Member or Consortium Organization to add a repository.\\n              {{else if (eq this.model.provider.memberType 'consortium')}}\\n                Select a  \\n                <LinkTo @route=\\\"providers.show.organizations\\\" @model={{this.model.provider.id}}>\\n                  Consortium Organization\\n                </LinkTo>\\n                to add a repository.\\n              {{/if}}\\n            </BsAlert>\\n          {{else if (cannot 'create repository' this.model)}}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              New repositories can't be created unless the user has the correct\\n              permissions.\\n            </BsAlert>\\n          {{else if (not-eq this.hasRequiredContacts true)}}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              New repositories can't be created because you have not provided the\\n              required\\n              {{if\\n                (eq this.model.provider.memberType 'consortium_organization')\\n                'service contact'\\n                'billing, service and voting contacts'\\n              }}\\n              for your organization. Please\\n              <LinkTo\\n                @route=\\\"providers.show.contacts.new\\\"\\n                @model={{this.model.provider.id}}\\n                id=\\\"add-contact\\\"\\n              >\\n                add at least one contact.\\n              </LinkTo>\\n            </BsAlert>\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              After adding contacts, please assign roles in the\\n              <LinkTo\\n                @route=\\\"providers.show.edit\\\"\\n                @model={{this.model.provider.id}}\\n                id=\\\"edit-provider\\\"\\n              >\\n                {{if\\n                  (eq this.model.provider.memberType 'consortium_organization')\\n                  'Consortium Organization'\\n                  'Member'\\n                }}\\n                Settings.\\n              </LinkTo>\\n            </BsAlert>\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.repositories.meta.years this.model.repositories.query.year)}}\\n      <div class=\\\"panel facets add\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Year joined\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.years}}\\n              {{#each this.model.repositories.meta.years as |year|}}\\n                <li>\\n                  {{#if this.model.repositories.query.year}}\\n                    <LinkTo @route={{this.link}} @query={{hash year=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo @route={{this.link}} @query={{hash year=year.id}}>\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{year.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{year.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"repositories\\\" @query={{hash year=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.repositories.query.year}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (and\\n        (eq this.link 'repositories')\\n        (or\\n          this.model.repositories.meta.providers this.model.repositories.query.provider-id\\n        )\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Provider\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.providers}}\\n              {{#each this.model.repositories.meta.providers as |provider|}}\\n                <li>\\n                  {{#if this.model.repositories.query.provider-id}}\\n                    <LinkTo @route={{this.link}} @query={{hash provider-id=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash provider-id=provider.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{provider.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{provider.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash provider=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{titleize this.model.repositories.query.provider}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or\\n        this.model.repositories.meta.clientTypes this.model.repositories.query.client-type\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.clientTypes}}\\n              {{#each this.model.repositories.meta.clientTypes as |clientType|}}\\n                <li>\\n                  {{#if this.model.repositories.query.client-type}}\\n                    <LinkTo @route={{this.link}} @query={{hash client-type=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash client-type=clientType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{clientType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{clientType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash client-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{titleize this.model.repositories.query.client-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or\\n        this.model.repositories.meta.repositoryTypes\\n        this.model.repositories.query.repository-type\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Repository Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.repositoryTypes}}\\n              {{#each\\n                this.model.repositories.meta.repositoryTypes as |repositoryType|\\n              }}\\n                <li>\\n                  {{#if this.model.repositories.query.repository-type}}\\n                    <LinkTo @route={{this.link}} @query={{hash repository-type=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash repository-type=repositoryType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{repositoryType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{repositoryType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash repository-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.repositories.query.repository-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or\\n        this.model.repositories.meta.certificates\\n        this.model.repositories.query.certificate\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Certificate\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.certificates}}\\n              {{#each this.model.repositories.meta.certificates as |certificate|}}\\n                <li>\\n                  {{#if this.model.repositories.query.certificate}}\\n                    <LinkTo @route={{this.link}} @query={{hash certificate=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash certificate=certificate.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{certificate.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{certificate.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash certificate=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.repositories.query.certificate}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or this.model.repositories.meta.software this.model.repositories.query.software)\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Software\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.software}}\\n              {{#each this.model.repositories.meta.software as |software|}}\\n                <li>\\n                  {{#if this.model.repositories.query.software}}\\n                    <LinkTo @route={{this.link}} @query={{hash software=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash software=software.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{software.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{software.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash software=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.repositories.query.software}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  </div>\\n  <div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n    {{#if this.searchable}}\\n      <ModelSearch\\n        @model={{this.model.repositories}}\\n        @name=\\\"Repository\\\"\\n        @sortable={{true}}\\n        @link={{this.link}}\\n      />\\n    {{/if}}\\n    {{#if this.model.repositories}}\\n      {{#each this.model.repositories as |repository|}}\\n        <div class=\\\"panel panel-transparent\\\" data-test-repository>\\n          <div class=\\\"panel-body\\\">\\n            <h3 class=\\\"work\\\">\\n              <LinkTo @route=\\\"repositories.show\\\" @model={{repository.id}}>\\n                {{repository.name}}\\n                {{#if repository.alternateName}}\\n                  <div class=\\\"subtitle\\\">\\n                    {{repository.alternateName}}\\n                  </div>\\n                {{/if}}\\n              </LinkTo>\\n              {{#if (eq repository.clientType 'periodical')}}\\n                <span class=\\\"label label-primary-inv\\\">\\n                  Periodical\\n                </span>\\n              {{/if}}\\n              {{#unless repository.isActive}}\\n                <span class=\\\"label label-warning-inv\\\">\\n                  Inactive\\n                </span>\\n              {{/unless}}\\n            </h3>\\n            <h5 class=\\\"repository-id\\\">\\n              Repository ID\\n              <span>\\n                <i class=\\\"fas fa-question-circle\\\"></i>\\n                <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>\\n                  The Repository ID is a unique identifier for each repository in DataCite. It must contain only upper case letters and numbers, and must start with the Member ID.\\n                </BsTooltip>\\n              </span>\\n            </h5>\\n            {{repository.symbol}}\\n            {{#if repository.systemEmail}}\\n              <h5>\\n                System Email\\n              </h5>\\n              <a href=\\\"mailto:{{repository.systemEmail}}\\\">\\n                {{repository.systemEmail}}\\n              </a>\\n            {{/if}}\\n            {{#if repository.url}}\\n              <h5>\\n                URL\\n              </h5>\\n              <a href=\\\"{{repository.url}}\\\">\\n                {{repository.url}}\\n              </a>\\n            {{/if}}\\n            {{#if repository.repositoryType}}\\n              <h5>\\n                Repository Type\\n              </h5>\\n              {{#each repository.repositoryType as |type|}}\\n                {{titleize type}}\\n                {{#unless (eq type repository.repositoryType.lastObject)}}\\n                  ,\\n                {{/unless}}\\n              {{/each}}\\n            {{/if}}\\n            {{#if repository.certificate}}\\n              <h5>\\n                Certificate\\n                <div class=\\\"info-icon icons-certificate_active\\\"></div>\\n              </h5>\\n              {{#each repository.certificate as |cert|}}\\n                {{cert}}\\n                {{#unless (eq cert repository.certificate.lastObject)}}\\n                  ,\\n                {{/unless}}\\n              {{/each}}\\n            {{/if}}\\n          </div>\\n        </div>\\n      {{/each}}\\n      <div class=\\\"text-center\\\">\\n        {{#if (gt this.model.repositories.meta.totalPages 1)}}\\n          <PageNumbers @model={{this.model.repositories}} @link={{this.link}} />\\n        {{/if}}\\n      </div>\\n    {{else}}\\n      <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n        No repositories found.\\n      </BsAlert>\\n    {{/if}}\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"row\\\">\\n  <div data-test-left-sidebar class=\\\"col-md-3\\\">\\n    {{#if\\n\\n      (and\\n        (can 'create repository' this.model)\\n        (eq this.link 'providers.show.repositories')\\n        (not-eq this.model.provider.memberType 'consortium')\\n        (eq this.hasRequiredContacts true)\\n      )\\n    }}\\n      {{#if\\n        (eq (await (prefixes-available this.model.provider.id)) 0)\\n      }}\\n        <div class=\\\"panel panel-transparent\\\">\\n          <div class=\\\"panel-body\\\" cy-data=\\\"alert\\\">\\n              <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n                Contact Support to get more prefixes for new repositories.\\n              </BsAlert>\\n          </div>\\n        </div>\\n      {{/if}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"btn-toolbar\\\">\\n            <div class=\\\"btn-group btn-group-sm\\\">\\n              <LinkTo\\n                @route=\\\"providers.show.repositories.new\\\"\\n                @model={{this.model.provider.id}}\\n                class=\\\"btn btn-warning\\\"\\n                id=\\\"add-repository\\\"\\n                @disabled={{if (eq (await (prefixes-available this.model.provider.id)) 0) \\\"true\\\" \\\"\\\"}}\\n              >\\n                <i class=\\\"fas fa-plus\\\"></i>\\n                Add Repository\\n              </LinkTo>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    {{else}}\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\" cy-data=\\\"alert\\\">\\n          {{#if\\n            (or\\n              (not-eq this.link 'providers.show.repositories')\\n              (eq this.model.provider.memberType 'consortium')\\n            )\\n          }}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              {{#if (eq this.currentUser.role_id 'staff_admin')}}\\n                Select a Member or Consortium Organization to add a repository.\\n              {{else if (eq this.model.provider.memberType 'consortium')}}\\n                Select a  \\n                <LinkTo @route=\\\"providers.show.organizations\\\" @model={{this.model.provider.id}}>\\n                  Consortium Organization\\n                </LinkTo>\\n                to add a repository.\\n              {{/if}}\\n            </BsAlert>\\n          {{else if (cannot 'create repository' this.model)}}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              New repositories can't be created unless the user has the correct\\n              permissions.\\n            </BsAlert>\\n          {{else if (not-eq this.hasRequiredContacts true)}}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              New repositories can't be created because you have not provided the\\n              required\\n              {{if\\n                (eq this.model.provider.memberType 'consortium_organization')\\n                'service contact'\\n                'billing, service and voting contacts'\\n              }}\\n              for your organization. Please\\n              <LinkTo\\n                @route=\\\"providers.show.contacts.new\\\"\\n                @model={{this.model.provider.id}}\\n                id=\\\"add-contact\\\"\\n              >\\n                add at least one contact.\\n              </LinkTo>\\n            </BsAlert>\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              After adding contacts, please assign roles in the\\n              <LinkTo\\n                @route=\\\"providers.show.edit\\\"\\n                @model={{this.model.provider.id}}\\n                id=\\\"edit-provider\\\"\\n              >\\n                {{if\\n                  (eq this.model.provider.memberType 'consortium_organization')\\n                  'Consortium Organization'\\n                  'Member'\\n                }}\\n                Settings.\\n              </LinkTo>\\n            </BsAlert>\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (or this.model.repositories.meta.years this.model.repositories.query.year)}}\\n      <div class=\\\"panel facets add\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Year joined\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.years}}\\n              {{#each this.model.repositories.meta.years as |year|}}\\n                <li>\\n                  {{#if this.model.repositories.query.year}}\\n                    <LinkTo @route={{this.link}} @query={{hash year=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo @route={{this.link}} @query={{hash year=year.id}}>\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{year.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{year.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route=\\\"repositories\\\" @query={{hash year=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.repositories.query.year}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (and\\n        (eq this.link 'repositories')\\n        (or\\n          this.model.repositories.meta.providers this.model.repositories.query.provider-id\\n        )\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Provider\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.providers}}\\n              {{#each this.model.repositories.meta.providers as |provider|}}\\n                <li>\\n                  {{#if this.model.repositories.query.provider-id}}\\n                    <LinkTo @route={{this.link}} @query={{hash provider-id=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash provider-id=provider.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{provider.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{provider.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash provider=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{titleize this.model.repositories.query.provider}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or\\n        this.model.repositories.meta.clientTypes this.model.repositories.query.client-type\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.clientTypes}}\\n              {{#each this.model.repositories.meta.clientTypes as |clientType|}}\\n                <li>\\n                  {{#if this.model.repositories.query.client-type}}\\n                    <LinkTo @route={{this.link}} @query={{hash client-type=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash client-type=clientType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{clientType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{clientType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash client-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{titleize this.model.repositories.query.client-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or\\n        this.model.repositories.meta.repositoryTypes\\n        this.model.repositories.query.repository-type\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Repository Type\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.repositoryTypes}}\\n              {{#each\\n                this.model.repositories.meta.repositoryTypes as |repositoryType|\\n              }}\\n                <li>\\n                  {{#if this.model.repositories.query.repository-type}}\\n                    <LinkTo @route={{this.link}} @query={{hash repository-type=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash repository-type=repositoryType.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{repositoryType.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{repositoryType.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash repository-type=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.repositories.query.repository-type}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or\\n        this.model.repositories.meta.certificates\\n        this.model.repositories.query.certificate\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Certificate\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.certificates}}\\n              {{#each this.model.repositories.meta.certificates as |certificate|}}\\n                <li>\\n                  {{#if this.model.repositories.query.certificate}}\\n                    <LinkTo @route={{this.link}} @query={{hash certificate=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash certificate=certificate.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{certificate.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{certificate.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash certificate=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.repositories.query.certificate}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (or this.model.repositories.meta.software this.model.repositories.query.software)\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Software\\n          </h4>\\n          <ul>\\n            {{#if this.model.repositories.meta.software}}\\n              {{#each this.model.repositories.meta.software as |software|}}\\n                <li>\\n                  {{#if this.model.repositories.query.software}}\\n                    <LinkTo @route={{this.link}} @query={{hash software=''}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route={{this.link}}\\n                      @query={{hash software=software.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{software.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{software.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            {{else}}\\n              <li>\\n                <LinkTo @route={{this.link}} @query={{hash software=''}}>\\n                  <i class=\\\"far fa-check-square\\\"></i>\\n                </LinkTo>\\n                <div class=\\\"facet-title\\\">\\n                  {{this.model.repositories.query.software}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  0\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/if}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  </div>\\n  <div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n    {{#if this.searchable}}\\n      <ModelSearch\\n        @model={{this.model.repositories}}\\n        @name=\\\"Repository\\\"\\n        @sortable={{true}}\\n        @link={{this.link}}\\n      />\\n    {{/if}}\\n    {{#if this.model.repositories}}\\n      {{#each this.model.repositories as |repository|}}\\n        <div class=\\\"panel panel-transparent\\\" data-test-repository>\\n          <div class=\\\"panel-body\\\">\\n            <h3 class=\\\"work\\\">\\n              <LinkTo @route=\\\"repositories.show\\\" @model={{repository.id}}>\\n                {{repository.name}}\\n                {{#if repository.alternateName}}\\n                  <div class=\\\"subtitle\\\">\\n                    {{repository.alternateName}}\\n                  </div>\\n                {{/if}}\\n              </LinkTo>\\n              {{#if (eq repository.clientType 'periodical')}}\\n                <span class=\\\"label label-primary-inv\\\">\\n                  Periodical\\n                </span>\\n              {{/if}}\\n              {{#unless repository.isActive}}\\n                <span class=\\\"label label-warning-inv\\\">\\n                  Inactive\\n                </span>\\n              {{/unless}}\\n            </h3>\\n            <h5 class=\\\"repository-id\\\">\\n              Repository ID\\n              <span>\\n                <i class=\\\"fas fa-question-circle\\\"></i>\\n                <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>\\n                  The Repository ID is a unique identifier for each repository in DataCite. It must contain only upper case letters and numbers, and must start with the Member ID.\\n                </BsTooltip>\\n              </span>\\n            </h5>\\n            {{repository.symbol}}\\n            {{#if repository.systemEmail}}\\n              <h5>\\n                System Email\\n              </h5>\\n              <a href=\\\"mailto:{{repository.systemEmail}}\\\">\\n                {{repository.systemEmail}}\\n              </a>\\n            {{/if}}\\n            {{#if repository.url}}\\n              <h5>\\n                URL\\n              </h5>\\n              <a href=\\\"{{repository.url}}\\\">\\n                {{repository.url}}\\n              </a>\\n            {{/if}}\\n            {{#if repository.repositoryType}}\\n              <h5>\\n                Repository Type\\n              </h5>\\n              {{#each repository.repositoryType as |type|}}\\n                {{titleize type}}\\n                {{#unless (eq type repository.repositoryType.lastObject)}}\\n                  ,\\n                {{/unless}}\\n              {{/each}}\\n            {{/if}}\\n            {{#if repository.certificate}}\\n              <h5>\\n                Certificate\\n                <div class=\\\"info-icon icons-certificate_active\\\"></div>\\n              </h5>\\n              {{#each repository.certificate as |cert|}}\\n                {{cert}}\\n                {{#unless (eq cert repository.certificate.lastObject)}}\\n                  ,\\n                {{/unless}}\\n              {{/each}}\\n            {{/if}}\\n          </div>\\n        </div>\\n      {{/each}}\\n      <div class=\\\"text-center\\\">\\n        {{#if (gt this.model.repositories.meta.totalPages 1)}}\\n          <PageNumbers @model={{this.model.repositories}} @link={{this.link}} />\\n        {{/if}}\\n      </div>\\n    {{else}}\\n      <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n        No repositories found.\\n      </BsAlert>\\n    {{/if}}\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/repository-list.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-list.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\nexport default class RepositoryList extends Component {\n  @service\n  currentUser;\n\n  @service\n  store;\n\n  @service\n  prefixes;\n\n  hasRequiredContacts = false;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    // check that current user is staff, or has all required contacts set\n    // this is separate from abilities as it triggers a specific error message\n    if (this.currentUser.get('isAdmin')) {\n      this.set('hasRequiredContacts', true);\n    } else if (\n      this.currentUser.get('isConsortium') ||\n      this.currentUser.get('isProvider')\n    ) {\n      let self = this;\n      this.store\n        .findRecord('provider', this.currentUser.get('provider_id'))\n        .then(function (provider) {\n          self.set('hasRequiredContacts', provider.get('hasRequiredContacts'));\n        });\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group\\\">\\n    <div class=\\\"power-select-fragment\\\" data-repository-type>\\n      <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.repositoryType}} @options={{this.repositoryTypes}} as |el|>\\n        <el.control @onChange={{action \\\"selectRepositoryType\\\"}} @search={{action \\\"searchRepositoryType\\\"}} @placeholder=\\\"Select RepositoryType\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} as |item|>\\n          {{titleize item}}\\n        </el.control>\\n      </@form.element>\\n    </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteRepositoryType\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <div class=\\\"power-select-fragment\\\" data-repository-type>\\n    <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.repositoryType}} @options={{this.repositoryTypes}} as |el|>\\n      <el.control @onChange={{action \\\"selectRepositoryType\\\"}} @search={{action \\\"searchRepositoryType\\\"}} @placeholder=\\\"Select RepositoryType\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} as |item|>\\n        {{titleize item}}\\n      </el.control>\\n    </@form.element>\\n  </div>\\n{{/if}}\\n\", {\"contents\":\"{{#if (gt this.index 0)}}\\n  <div class=\\\"input-group\\\">\\n    <div class=\\\"power-select-fragment\\\" data-repository-type>\\n      <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.repositoryType}} @options={{this.repositoryTypes}} as |el|>\\n        <el.control @onChange={{action \\\"selectRepositoryType\\\"}} @search={{action \\\"searchRepositoryType\\\"}} @placeholder=\\\"Select RepositoryType\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} as |item|>\\n          {{titleize item}}\\n        </el.control>\\n      </@form.element>\\n    </div>\\n    <span class=\\\"input-group-addon\\\" style=\\\"vertical-align:top;padding-top:3px;\\\">\\n    <BsButton @outline={{true}} @onClick={{action \\\"deleteRepositoryType\\\" this.index}}><i class=\\\"fas fa-trash pull-left\\\"></i></BsButton>\\n    </span>\\n  </div>\\n{{else}}\\n  <div class=\\\"power-select-fragment\\\" data-repository-type>\\n    <@form.element class=\\\"form-group\\\" @controlType=\\\"power-select\\\" @value={{this.repositoryType}} @options={{this.repositoryTypes}} as |el|>\\n      <el.control @onChange={{action \\\"selectRepositoryType\\\"}} @search={{action \\\"searchRepositoryType\\\"}} @placeholder=\\\"Select RepositoryType\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @disabled={{this.disabled}} @searchEnabled={{true}} as |item|>\\n        {{titleize item}}\\n      </el.control>\\n    </@form.element>\\n  </div>\\n{{/if}}\\n\",\"moduleName\":\"bracco/components/repository-repository-type.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-repository-type.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\nconst repositoryTypeList = [\n  'disciplinary',\n  'governmental',\n  'institutional',\n  'multidisciplinary',\n  'project-related',\n  'other'\n];\n\n@classic\nexport default class RepositoryRepositoryType extends Component {\n  @service\n  store;\n\n  repositoryType = null;\n  repositoryTypeList = repositoryTypeList;\n  repositoryTypes = repositoryTypeList;\n\n  @action\n  searchRepositoryType(query) {\n    let repositoryTypes = repositoryTypeList.filter(function (\n      repositoryType\n    ) {\n      return repositoryType.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('repositoryTypes', repositoryTypes);\n  }\n\n  @action\n  selectRepositoryType(repositoryType) {\n    this.model.get('repositoryType').replace(this.index, 1, [repositoryType]);\n    this.set('repositoryTypes', repositoryTypeList);\n    this.model.certifyDisciplinaryRepository();\n  }\n\n  @action\n  deleteRepositoryType() {\n    this.model.get('repositoryType').removeAt(this.index);\n    this.model.certifyDisciplinaryRepository();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class RepositorySettings extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"panel-body metadata\\\">\\n  {{#if this.model.doi}}\\n    {{#if (and (can \\\"detail doi\\\" this.model) this.model.state)}}\\n      <div class=\\\"state\\\">\\n        <StateLabel @state={{this.model.state}} />\\n      </div>\\n    {{/if}}\\n    {{#if (and (eq this.model.state 'findable') this.model.xml)}}\\n      <h5>Metadata Export</h5>\\n      <div class=\\\"download\\\">\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{{content-negotiation-url this.model.doi format='datacite'}}}\\\">DataCite XML</a>\\n      </div>\\n      <div class=\\\"download\\\">\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{{content-negotiation-url this.model.doi format='datacite_json'}}}\\\">DataCite JSON</a>\\n      </div>\\n      <div class=\\\"download\\\">\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{{content-negotiation-url this.model.doi format='schema_org'}}}\\\">Schema.org JSON-LD</a>\\n      </div>\\n      <div class=\\\"download\\\">\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{{content-negotiation-url this.model.doi format='bibtex'}}}\\\">BibTeX</a>\\n      </div>\\n    {{/if}}\\n    {{#if (can \\\"detail doi\\\" this.model)}}\\n      {{#if this.model.created}}\\n        <h5>DOI created</h5>\\n        <div class=\\\"created\\\">\\n          {{format-time this.model.created year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n    {{#if (eq this.model.repository.id \\\"crossref.citations\\\")}}\\n      <h5>DOI imported</h5>\\n      <div class=\\\"created\\\">\\n        {{format-time this.model.created year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n      </div>\\n    {{else}}\\n      {{#if this.model.registered}}\\n        <h5>DOI registered</h5>\\n        <div class=\\\"registered\\\">\\n          {{format-time this.model.registered year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n        </div>\\n      {{/if}}\\n      {{#if (gt this.model.updated this.model.created)}}\\n        <h5>DOI last updated</h5>\\n        <div class=\\\"updated\\\">\\n          {{format-time this.model.updated year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n    {{#if (can \\\"detail doi\\\" this.model)}}\\n      {{#if (gt this.model.metadataVersion 0)}}\\n        <h5>\\n          Metadata version\\n          <span>\\n            <i class=\\\"fas fa-question-circle\\\"></i>\\n            <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>Most recent metadata. Previous versions are kept.</BsTooltip>\\n          </span>\\n        </h5>\\n        <div class=\\\"metadata-version\\\">\\n          {{this.model.metadataVersion}}\\n        </div>\\n      {{/if}}\\n      {{#if this.model.schemaVersionString}}\\n        <h5>\\n          Schema\\n          <span>\\n            <i class=\\\"fas fa-question-circle\\\"></i>\\n            <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>Metadata schema version used.</BsTooltip>\\n          </span>\\n        </h5>\\n        <div class=\\\"schema-version\\\">\\n          <a href=\\\"http://schema.datacite.org/meta/kernel-{{this.model.schemaVersionString}}\\\">DataCite Metadata Schema {{this.model.schemaVersionString}}</a>\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n    {{#if (and (can \\\"source doi\\\" this.model) this.model.source)}}\\n      <h5>\\n        Source\\n        <span>\\n          <i class=\\\"fas fa-question-circle\\\"></i>\\n          <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>Service used for DOI registration.</BsTooltip>\\n        </span>\\n      </h5>\\n      <div class=\\\"source\\\">\\n        {{this.model.source}}\\n      </div>\\n    {{/if}}\\n  {{else}}\\n    {{#if this.model.created}}\\n      <h5>Record created</h5>\\n      <div class=\\\"created\\\">\\n        {{format-time this.model.created year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n      </div>\\n    {{/if}}\\n    {{#if (gt this.model.updated this.model.created)}}\\n      <h5>Record last modified</h5>\\n      <div class=\\\"updated\\\">\\n        {{format-time this.model.updated year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n      </div>\\n    {{/if}}\\n  {{/if}}\\n</div>\\n\", {\"contents\":\"<div class=\\\"panel-body metadata\\\">\\n  {{#if this.model.doi}}\\n    {{#if (and (can \\\"detail doi\\\" this.model) this.model.state)}}\\n      <div class=\\\"state\\\">\\n        <StateLabel @state={{this.model.state}} />\\n      </div>\\n    {{/if}}\\n    {{#if (and (eq this.model.state 'findable') this.model.xml)}}\\n      <h5>Metadata Export</h5>\\n      <div class=\\\"download\\\">\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{{content-negotiation-url this.model.doi format='datacite'}}}\\\">DataCite XML</a>\\n      </div>\\n      <div class=\\\"download\\\">\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{{content-negotiation-url this.model.doi format='datacite_json'}}}\\\">DataCite JSON</a>\\n      </div>\\n      <div class=\\\"download\\\">\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{{content-negotiation-url this.model.doi format='schema_org'}}}\\\">Schema.org JSON-LD</a>\\n      </div>\\n      <div class=\\\"download\\\">\\n        <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"{{{content-negotiation-url this.model.doi format='bibtex'}}}\\\">BibTeX</a>\\n      </div>\\n    {{/if}}\\n    {{#if (can \\\"detail doi\\\" this.model)}}\\n      {{#if this.model.created}}\\n        <h5>DOI created</h5>\\n        <div class=\\\"created\\\">\\n          {{format-time this.model.created year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n    {{#if (eq this.model.repository.id \\\"crossref.citations\\\")}}\\n      <h5>DOI imported</h5>\\n      <div class=\\\"created\\\">\\n        {{format-time this.model.created year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n      </div>\\n    {{else}}\\n      {{#if this.model.registered}}\\n        <h5>DOI registered</h5>\\n        <div class=\\\"registered\\\">\\n          {{format-time this.model.registered year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n        </div>\\n      {{/if}}\\n      {{#if (gt this.model.updated this.model.created)}}\\n        <h5>DOI last updated</h5>\\n        <div class=\\\"updated\\\">\\n          {{format-time this.model.updated year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n    {{#if (can \\\"detail doi\\\" this.model)}}\\n      {{#if (gt this.model.metadataVersion 0)}}\\n        <h5>\\n          Metadata version\\n          <span>\\n            <i class=\\\"fas fa-question-circle\\\"></i>\\n            <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>Most recent metadata. Previous versions are kept.</BsTooltip>\\n          </span>\\n        </h5>\\n        <div class=\\\"metadata-version\\\">\\n          {{this.model.metadataVersion}}\\n        </div>\\n      {{/if}}\\n      {{#if this.model.schemaVersionString}}\\n        <h5>\\n          Schema\\n          <span>\\n            <i class=\\\"fas fa-question-circle\\\"></i>\\n            <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>Metadata schema version used.</BsTooltip>\\n          </span>\\n        </h5>\\n        <div class=\\\"schema-version\\\">\\n          <a href=\\\"http://schema.datacite.org/meta/kernel-{{this.model.schemaVersionString}}\\\">DataCite Metadata Schema {{this.model.schemaVersionString}}</a>\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n    {{#if (and (can \\\"source doi\\\" this.model) this.model.source)}}\\n      <h5>\\n        Source\\n        <span>\\n          <i class=\\\"fas fa-question-circle\\\"></i>\\n          <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>Service used for DOI registration.</BsTooltip>\\n        </span>\\n      </h5>\\n      <div class=\\\"source\\\">\\n        {{this.model.source}}\\n      </div>\\n    {{/if}}\\n  {{else}}\\n    {{#if this.model.created}}\\n      <h5>Record created</h5>\\n      <div class=\\\"created\\\">\\n        {{format-time this.model.created year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n      </div>\\n    {{/if}}\\n    {{#if (gt this.model.updated this.model.created)}}\\n      <h5>Record last modified</h5>\\n      <div class=\\\"updated\\\">\\n        {{format-time this.model.updated year='numeric' month='long' day='numeric' hour='numeric' minute='numeric' second='numeric' timeZone='UTC' timeZoneName='short' hour12=false}}\\n      </div>\\n    {{/if}}\\n  {{/if}}\\n</div>\\n\",\"moduleName\":\"bracco/components/repository-sidebar.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-sidebar.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNames } from '@ember-decorators/component';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\n@classNames('panel', 'facets', 'add')\nexport default class RepositorySidebar extends Component {\n  @service\n  currentUser;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.set('currentUser', this.currentUser);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-subjects>Repository Discipline (optional)</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Subject, keyword, classification code, or key phrase describing the resource.</div>\\n    {{#each this.model.subjects as |subject index|}}\\n      <DoiSubject @model={{this.model}} @fragment={{subject}} @form={{this.form}} @index={{index}} @simple={{true}} />\\n    {{/each}}\\n\\n    {{#if (lte this.model.subjects.length 6)}}\\n      <BsButton class=\\\"btn-sm\\\" id=\\\"add-subject\\\" @outline={{true}} @onClick={{action \\\"addSubject\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.subjects.length 0) \\\"another \\\"}} Discipline</BsButton>\\n    {{/if}}\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"form-group\\\">\\n  <label class=\\\"control-label col-md-3\\\" data-test-subjects>Repository Discipline (optional)</label>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"label-vertical\\\">Subject, keyword, classification code, or key phrase describing the resource.</div>\\n    {{#each this.model.subjects as |subject index|}}\\n      <DoiSubject @model={{this.model}} @fragment={{subject}} @form={{this.form}} @index={{index}} @simple={{true}} />\\n    {{/each}}\\n\\n    {{#if (lte this.model.subjects.length 6)}}\\n      <BsButton class=\\\"btn-sm\\\" id=\\\"add-subject\\\" @outline={{true}} @onClick={{action \\\"addSubject\\\"}}><i class=\\\"fas fa-plus\\\"></i> Add {{if (gt this.model.subjects.length 0) \\\"another \\\"}} Discipline</BsButton>\\n    {{/if}}\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/repository-subjects.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-subjects.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Component from '@ember/component';\n\n@classic\nexport default class RepositorySubjects extends Component {\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n    if (!this.model.get('subjects')) {\n      this.model.set('subjects', []);\n    }\n  }\n\n  @action\n  addSubject() {\n    this.model.get('subjects').createFragment();\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"panel panel-transparent\\\" id=\\\"transfer-repository-form\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <h3 class=\\\"edit\\\">Transfer Repository</h3>\\n    </div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this}} @onSubmit={{action \\\"submitAction\\\"}} @submitOnEnter={{false}} data-test-transfer-select as |form|>\\n      <form.element @controlType=\\\"power-select\\\" id=\\\"target-id\\\" class=\\\"form-group\\\" @label=\\\"Member/Consortium\\\" @value={{this.provider}} @helpText=\\\"Transfer this repository to another member/consortium. It can take up to one hour for the transfer to complete.\\\" @options={{this.providers}} @destination={{this.provider}} as |el|>\\n        <el.control @onChange={{action \\\"selectProviderAction\\\"}} @allowClear={{true}} @searchEnabled={{true}} @search={{action \\\"searchProviderAction\\\"}} @placeholder=\\\"Type to search...\\\" as |item|>\\n        {{item.name}}\\n        </el.control>\\n      </form.element>\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <button class=\\\"btn btn-sm btn-fill\\\" disabled={{this.isDisabled}} data-test-transfer-button type=\\\"button\\\" {{action \\\"submitAction\\\"}} >Transfer Repository</button>\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\", {\"contents\":\"<div class=\\\"panel panel-transparent\\\" id=\\\"transfer-repository-form\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <h3 class=\\\"edit\\\">Transfer Repository</h3>\\n    </div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this}} @onSubmit={{action \\\"submitAction\\\"}} @submitOnEnter={{false}} data-test-transfer-select as |form|>\\n      <form.element @controlType=\\\"power-select\\\" id=\\\"target-id\\\" class=\\\"form-group\\\" @label=\\\"Member/Consortium\\\" @value={{this.provider}} @helpText=\\\"Transfer this repository to another member/consortium. It can take up to one hour for the transfer to complete.\\\" @options={{this.providers}} @destination={{this.provider}} as |el|>\\n        <el.control @onChange={{action \\\"selectProviderAction\\\"}} @allowClear={{true}} @searchEnabled={{true}} @search={{action \\\"searchProviderAction\\\"}} @placeholder=\\\"Type to search...\\\" as |item|>\\n        {{item.name}}\\n        </el.control>\\n      </form.element>\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <button class=\\\"btn btn-sm btn-fill\\\" disabled={{this.isDisabled}} data-test-transfer-button type=\\\"button\\\" {{action \\\"submitAction\\\"}} >Transfer Repository</button>\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\",\"moduleName\":\"bracco/components/repository-transfer.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/repository-transfer.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { classNames, tagName } from '@ember-decorators/component';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\n@classNames('row')\nexport default class RepositoryTransfer extends Component {\n  @service\n  currentUser;\n\n  @service\n  store;\n\n  @service\n  flashMessages;\n\n  @service\n  intl;\n\n  @service\n  router;\n\n  provider = null;\n  repository = null;\n  isDisabled = true;\n\n  init(...args) {\n    super.init(...args);\n\n    this.providers = this.providers || [];\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n    this.model.set('mode', 'transfer');\n    this.searchProvider(null);\n  }\n\n  searchProvider(query) {\n    let self = this;\n    if (this.currentUser.get('isAdmin')) {\n      this.store\n        .query('provider', {\n          query,\n          sort: 'name',\n          'member-type': 'direct_member,consortium_organization',\n          'page[size]': 100\n        })\n        .then(function (providers) {\n          self.set('providers', providers);\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          self.set('providers', []);\n        });\n    } else if (this.currentUser.get('isConsortium')) {\n      this.store\n        .query('provider', {\n          query,\n          'consortium-id': this.currentUser.get('provider_id'),\n          sort: 'name',\n          'member-type': 'consortium_organization',\n          'page[size]': 100\n        })\n        .then(function (providers) {\n          self.set('providers', providers);\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          self.set('providers', []);\n        });\n    }\n  }\n\n  selectProvider(provider) {\n    this.set('provider', provider);\n    this.set('isDisabled', false);\n    this.model.set('targetId', provider.uid);\n  }\n\n  @action\n  searchProviderAction(query) {\n    this.searchProvider(query);\n  }\n\n  @action\n  selectProviderAction(provider) {\n    this.selectProvider(provider);\n  }\n\n  @action\n  submitAction() {\n    this.model.save();\n    let count = this.model.get('meta.doiCount');\n    this.flashMessages.success(\n      'DOI transfer for ' +\n        this.intl.formatNumber(count) +\n        ' DOIs started, the transfer should take about ' +\n        this.intl.formatNumber(Math.ceil(count / 5000) + 1) +\n        ' minutes to complete.',\n      {\n        timeout: 5000,\n        sticky: true\n      }\n    );\n    this.router.transitionTo('repositories.show', this.model);\n  }\n\n  @action\n  canceAction() {\n    this.router.transitionTo('repositories.show', this.model);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"    <div class=\\\"tab-content nav-tabs-member\\\">\\n      <BsNav\\n        @type=\\\"tabs\\\"\\n        @justified={{false}}\\n        @stacked={{false}}\\n        @fill={{false}} as |nav|\\n      >\\n        <nav.item>\\n            <nav.linkTo @route='providers.show.index' class='nav-link'>\\n                Info\\n            </nav.linkTo>\\n        </nav.item>\\n        <nav.item>\\n            <nav.linkTo @route='providers.show.settings' class='nav-link'>\\n                Settings\\n            </nav.linkTo>\\n        </nav.item>\\n        {{#if (eq this.model.memberType 'consortium')}}\\n          <nav.item>\\n              <nav.linkTo @route='providers.show.organizations' class='nav-link'>\\n                  Consortium Organizations\\n              </nav.linkTo>\\n          </nav.item>\\n        {{/if}}\\n        {{#if (not-eq this.model.memberType 'developer')}}\\n          <nav.item>\\n              <nav.linkTo @route='providers.show.contacts' class='nav-link'>\\n                  Contacts\\n              </nav.linkTo>\\n          </nav.item>\\n          {{#if (not-eq this.model.memberType 'member_only')}}\\n            <nav.item>\\n                <nav.linkTo @route='providers.show.repositories' class='nav-link'>\\n                    Repositories\\n                </nav.linkTo>\\n            </nav.item>\\n            <nav.item>\\n                <nav.linkTo @route='providers.show.prefixes' class='nav-link'>\\n                    Prefixes\\n                </nav.linkTo>\\n            </nav.item>\\n            <nav.item>\\n                <nav.linkTo @route='providers.show.dois' class='nav-link'>\\n                    DOIs\\n                </nav.linkTo>\\n            </nav.item>\\n          {{/if}}\\n        {{/if}}\\n      </BsNav>\\n    </div>\\n  \", {\"contents\":\"    <div class=\\\"tab-content nav-tabs-member\\\">\\n      <BsNav\\n        @type=\\\"tabs\\\"\\n        @justified={{false}}\\n        @stacked={{false}}\\n        @fill={{false}} as |nav|\\n      >\\n        <nav.item>\\n            <nav.linkTo @route='providers.show.index' class='nav-link'>\\n                Info\\n            </nav.linkTo>\\n        </nav.item>\\n        <nav.item>\\n            <nav.linkTo @route='providers.show.settings' class='nav-link'>\\n                Settings\\n            </nav.linkTo>\\n        </nav.item>\\n        {{#if (eq this.model.memberType 'consortium')}}\\n          <nav.item>\\n              <nav.linkTo @route='providers.show.organizations' class='nav-link'>\\n                  Consortium Organizations\\n              </nav.linkTo>\\n          </nav.item>\\n        {{/if}}\\n        {{#if (not-eq this.model.memberType 'developer')}}\\n          <nav.item>\\n              <nav.linkTo @route='providers.show.contacts' class='nav-link'>\\n                  Contacts\\n              </nav.linkTo>\\n          </nav.item>\\n          {{#if (not-eq this.model.memberType 'member_only')}}\\n            <nav.item>\\n                <nav.linkTo @route='providers.show.repositories' class='nav-link'>\\n                    Repositories\\n                </nav.linkTo>\\n            </nav.item>\\n            <nav.item>\\n                <nav.linkTo @route='providers.show.prefixes' class='nav-link'>\\n                    Prefixes\\n                </nav.linkTo>\\n            </nav.item>\\n            <nav.item>\\n                <nav.linkTo @route='providers.show.dois' class='nav-link'>\\n                    DOIs\\n                </nav.linkTo>\\n            </nav.item>\\n          {{/if}}\\n        {{/if}}\\n      </BsNav>\\n    </div>\\n  \",\"moduleName\":\"bracco/components/show-provider-tabs.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/show-provider-tabs.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\nexport default class ShowProviderTabs extends Component {\n  didRender() {\n    super.didRender(...arguments);\n\n    // Remove old active indicator\n    if (this.element.querySelector('li.nav-item.active')) {\n      this.element.querySelector('li.nav-item.active').classList.remove(\"active\")\n    }\n\n    if (this.element.querySelector('a.active.nav-link') == null) {\n      this.element.querySelector('a.nav-link').classList.add(\"active\")\n    }\n \n    if (this.element.querySelector('a.active.nav-link').parentElement !== null) {\n      this.element.querySelector('a.active.nav-link').parentElement.classList.add(\"active\")\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"      <div class=\\\"tab-content nav-tabs-member\\\">\\n        <BsNav\\n          @type=\\\"tabs\\\"\\n          @justified={{false}}\\n          @stacked={{false}}\\n          @fill={{false}} as |nav|\\n        >\\n          <!--\\n          <LinkTo @route='repositories.show.index' @tagName=\\\"li\\\" @model=this.model.id>\\n            <LinkTo @route='repositories.show.index' class='nav-link' @query=assignedPrefix>\\n              Info\\n            </LinkTo>\\n          </LinkTo>\\n          <LinkTo @route='repositories.show.settings' @tagName=\\\"li\\\" @model=this.model.id>\\n            <LinkTo @route='repositories.show.settings' class='nav-link' @query=assignedPrefix>\\n              Settings\\n            </LinkTo>\\n          </LinkTo>\\n          <LinkTo @route='repositories.show.prefixes' @tagName=\\\"li\\\" @model=this.model.id>\\n            <LinkTo @route='repositories.show.prefixes' class='nav-link' @query=assignedPrefix>\\n              Prefixes\\n            </LinkTo>\\n          </LinkTo>\\n          <LinkTo @route='repositories.show.dois' @tagName=\\\"li\\\" @model=this.model.id>\\n            <LinkTo @route='repositories.show.dois' class='nav-link' @query=assignedPrefix>\\n              DOIs\\n            </LinkTo>\\n          </LinkTo>\\n          -->\\n        \\n          <!-- NEEDS FIX FOR ASSIGNED PREFIX -->\\n\\n          <nav.item>\\n            <nav.linkTo @route='repositories.show.index' class='nav-link'>\\n              Info\\n            </nav.linkTo>\\n          </nav.item>\\n          <nav.item>\\n            <nav.linkTo @route='repositories.show.settings' class='nav-link'>\\n              Settings\\n            </nav.linkTo>\\n          </nav.item>\\n          <nav.item>\\n            <nav.linkTo @route='repositories.show.prefixes' class='nav-link'>\\n              Prefixes\\n            </nav.linkTo>\\n          </nav.item>\\n          <nav.item>\\n            <nav.linkTo @route='repositories.show.dois' class='nav-link'>\\n              DOIs\\n            </nav.linkTo>\\n          </nav.item>\\n\\n        </BsNav>\\n      </div>\\n      \", {\"contents\":\"      <div class=\\\"tab-content nav-tabs-member\\\">\\n        <BsNav\\n          @type=\\\"tabs\\\"\\n          @justified={{false}}\\n          @stacked={{false}}\\n          @fill={{false}} as |nav|\\n        >\\n          <!--\\n          <LinkTo @route='repositories.show.index' @tagName=\\\"li\\\" @model=this.model.id>\\n            <LinkTo @route='repositories.show.index' class='nav-link' @query=assignedPrefix>\\n              Info\\n            </LinkTo>\\n          </LinkTo>\\n          <LinkTo @route='repositories.show.settings' @tagName=\\\"li\\\" @model=this.model.id>\\n            <LinkTo @route='repositories.show.settings' class='nav-link' @query=assignedPrefix>\\n              Settings\\n            </LinkTo>\\n          </LinkTo>\\n          <LinkTo @route='repositories.show.prefixes' @tagName=\\\"li\\\" @model=this.model.id>\\n            <LinkTo @route='repositories.show.prefixes' class='nav-link' @query=assignedPrefix>\\n              Prefixes\\n            </LinkTo>\\n          </LinkTo>\\n          <LinkTo @route='repositories.show.dois' @tagName=\\\"li\\\" @model=this.model.id>\\n            <LinkTo @route='repositories.show.dois' class='nav-link' @query=assignedPrefix>\\n              DOIs\\n            </LinkTo>\\n          </LinkTo>\\n          -->\\n        \\n          <!-- NEEDS FIX FOR ASSIGNED PREFIX -->\\n\\n          <nav.item>\\n            <nav.linkTo @route='repositories.show.index' class='nav-link'>\\n              Info\\n            </nav.linkTo>\\n          </nav.item>\\n          <nav.item>\\n            <nav.linkTo @route='repositories.show.settings' class='nav-link'>\\n              Settings\\n            </nav.linkTo>\\n          </nav.item>\\n          <nav.item>\\n            <nav.linkTo @route='repositories.show.prefixes' class='nav-link'>\\n              Prefixes\\n            </nav.linkTo>\\n          </nav.item>\\n          <nav.item>\\n            <nav.linkTo @route='repositories.show.dois' class='nav-link'>\\n              DOIs\\n            </nav.linkTo>\\n          </nav.item>\\n\\n        </BsNav>\\n      </div>\\n      \",\"moduleName\":\"bracco/components/show-repository-tabs.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/show-repository-tabs.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\n\n@classic\n@tagName('div')\nexport default class ShowRepositoryTabs extends Component {\n  didRender() {\n    super.didRender(...arguments);\n\n    // Remove old active indicator\n    if (this.element.querySelector('li.nav-item.active')) {\n      this.element.querySelector('li.nav-item.active').classList.remove(\"active\")\n    }\n\n    if (this.element.querySelector('a.active.nav-link') == null) {\n      this.element.querySelector('a.nav-link').classList.add(\"active\")\n    }\n \n    if (this.element.querySelector('a.active.nav-link').parentElement !== null) {\n      this.element.querySelector('a.active.nav-link').parentElement.classList.add(\"active\")\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"{{this.stateDisplay}}\\n\", {\"contents\":\"{{this.stateDisplay}}\\n\",\"moduleName\":\"bracco/components/state-label.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/state-label.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { classNameBindings, tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\nimport { capitalize } from '@ember/string';\n\n@classic\n@tagName('span')\n@classNameBindings('label')\nexport default class StateLabel extends Component {\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    let state = this.state || 'draft';\n    let stateLabels = {\n      draft: 'label-warning',\n      registered: 'label-info',\n      findable: 'label-primary'\n    };\n\n    this.set('label', 'label ' + stateLabels[state]);\n    this.set('stateDisplay', capitalize(state));\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<LinkTo @route=\\\"repositories\\\" @query={{hash query=this.text}}><span class=\\\"label label-info label-sm\\\">{{this.text}}</span></LinkTo>\", {\"contents\":\"<LinkTo @route=\\\"repositories\\\" @query={{hash query=this.text}}><span class=\\\"label label-info label-sm\\\">{{this.text}}</span></LinkTo>\",\"moduleName\":\"bracco/components/subject-label.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/subject-label.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { tagName } from '@ember-decorators/component';\nimport Component from '@ember/component';\n\n@classic\n@tagName('span')\nexport default class SubjectLabel extends Component {\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    let text = this.get('tag.text');\n\n    if (text.match(/^\\d/)) {\n      this.set('text', text.substr(text.indexOf(' ') + 1).toLowerCase());\n    } else {\n      this.set('text', text.toLowerCase());\n    }\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{this.url}}>{{this.url}}</a>\", {\"contents\":\"<a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{this.url}}>{{this.url}}</a>\",\"moduleName\":\"bracco/components/url-check.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/url-check.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\nexport default class UrlCheck extends Component {\n  @service\n  currentUser;\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n\n    this.set('url', this.url);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"col-md-3\\\">\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\">\\n      <div class=\\\"edit\\\"></div>\\n    </div>\\n  </div>\\n</div>\\n<div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n  {{#if this.searchable}}\\n    <ModelSearch @model={{this.model}} @sortable={{true}} @name=\\\"User\\\" @link=\\\"users\\\" />\\n  {{/if}}\\n\\n  {{#if this.model}}\\n    {{#each this.model as |user|}}\\n      <div class=\\\"panel panel-transparent\\\" data-test-user>\\n        <div class=\\\"panel-body\\\">\\n          <h3 class=\\\"work\\\">\\n            <a href=\\\"https://commons.datacite.org/orcid.org/{{user.id}}\\\">{{user.name}}</a>\\n          </h3>\\n\\n          <h5>ORCID</h5>\\n          <a href=\\\"{{user.orcid}}\\\">{{user.orcid}}</a>\\n\\n          {{#if user.givenName}}\\n            <h5>Given Name</h5>\\n            {{user.givenName}}\\n          {{/if}}\\n\\n          {{#if user.familyName}}\\n            <h5>Family Name</h5>\\n            {{user.familyName}}\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/each}}\\n    <div class=\\\"text-center\\\">\\n      {{#if (gt this.model.meta.totalPages 1)}}\\n        <PageNumbers @model={{this.model}} @link=\\\"users\\\" />\\n      {{/if}}\\n    </div>\\n  {{else}}\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      No users found.\\n    </BsAlert>\\n  {{/if}}\\n</div>\\n\", {\"contents\":\"<div class=\\\"col-md-3\\\">\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\">\\n      <div class=\\\"edit\\\"></div>\\n    </div>\\n  </div>\\n</div>\\n<div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n  {{#if this.searchable}}\\n    <ModelSearch @model={{this.model}} @sortable={{true}} @name=\\\"User\\\" @link=\\\"users\\\" />\\n  {{/if}}\\n\\n  {{#if this.model}}\\n    {{#each this.model as |user|}}\\n      <div class=\\\"panel panel-transparent\\\" data-test-user>\\n        <div class=\\\"panel-body\\\">\\n          <h3 class=\\\"work\\\">\\n            <a href=\\\"https://commons.datacite.org/orcid.org/{{user.id}}\\\">{{user.name}}</a>\\n          </h3>\\n\\n          <h5>ORCID</h5>\\n          <a href=\\\"{{user.orcid}}\\\">{{user.orcid}}</a>\\n\\n          {{#if user.givenName}}\\n            <h5>Given Name</h5>\\n            {{user.givenName}}\\n          {{/if}}\\n\\n          {{#if user.familyName}}\\n            <h5>Family Name</h5>\\n            {{user.familyName}}\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/each}}\\n    <div class=\\\"text-center\\\">\\n      {{#if (gt this.model.meta.totalPages 1)}}\\n        <PageNumbers @model={{this.model}} @link=\\\"users\\\" />\\n      {{/if}}\\n    </div>\\n  {{else}}\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      No users found.\\n    </BsAlert>\\n  {{/if}}\\n</div>\\n\",\"moduleName\":\"bracco/components/user-list.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/user-list.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class UserList extends Component {}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"row content col-lg-offset-3 user-role\\\" style=\\\"padding-left: 26px\\\">\\n  Role: <br />\\n  <b style=\\\"font-size: 20px\\\">{{this.currentUser.roleName}}</b>\\n</div>\", {\"contents\":\"<div class=\\\"row content col-lg-offset-3 user-role\\\" style=\\\"padding-left: 26px\\\">\\n  Role: <br />\\n  <b style=\\\"font-size: 20px\\\">{{this.currentUser.roleName}}</b>\\n</div>\",\"moduleName\":\"bracco/components/user-role.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/user-role.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Component from '@ember/component';\n\n@classic\nexport default class UserRole extends Component {\n  @service\n  currentUser;\n\n  init(...args) {\n    super.init(...args);\n  }\n\n  didReceiveAttrs() {\n    super.didReceiveAttrs(...arguments);\n  }\n}\n","import { hbs } from 'ember-cli-htmlbars';\nconst __COLOCATED_TEMPLATE__ = hbs(\"<div class=\\\"row\\\">\\n  <div class='col-md-3'>\\n  </div>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h5>ORCID ID</h5>\\n        <a href=\\\"{{this.model.orcid}}\\\">{{this.model.orcid}}</a>\\n\\n        {{#if this.model.givenName}}\\n          <h5>Given Name</h5>\\n          {{this.model.givenName}}\\n        {{/if}}\\n\\n        {{#if this.model.familyName}}\\n          <h5>Family Name</h5>\\n          {{this.model.familyName}}\\n        {{/if}}\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\", {\"contents\":\"<div class=\\\"row\\\">\\n  <div class='col-md-3'>\\n  </div>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h5>ORCID ID</h5>\\n        <a href=\\\"{{this.model.orcid}}\\\">{{this.model.orcid}}</a>\\n\\n        {{#if this.model.givenName}}\\n          <h5>Given Name</h5>\\n          {{this.model.givenName}}\\n        {{/if}}\\n\\n        {{#if this.model.familyName}}\\n          <h5>Family Name</h5>\\n          {{this.model.familyName}}\\n        {{/if}}\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n\",\"moduleName\":\"bracco/components/user-show.hbs\",\"parseOptions\":{\"srcName\":\"bracco/components/user-show.hbs\"}});\nimport classic from 'ember-classic-decorator';\nimport Component from '@ember/component';\n\n@classic\nexport default class UserShow extends Component {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ApplicationController extends Controller {\n  @service\n  session;\n\n  queryParams = ['jwt'];\n  jwt = null;\n\n  @action\n  invalidateSession() {\n    this.session.invalidate();\n  }\n}\n\n// import ApplicationController from './application';\n\n// ApplicationController.reopen({\n//   unsetToken: observer('jwt', function() {\n//     if (this.jwt) {\n//       next(this, function() {\n//         this.set('jwt', null);\n//       });\n//     }\n//   }),\n// });\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class AuthorizeController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class ChangeController extends Controller {\n  @service\n  currentUser;\n\n  @service\n  router;\n\n  @action\n  togglePassword() {\n    const togglePassword = document.querySelector('#togglePassword');\n    const password = document.querySelector('#password-input-field');\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    togglePassword.classList.toggle('bi-eye');\n  }\n\n  @action\n  toggleConfirmPassword() {\n    const togglePassword = document.querySelector('#toggleConfirmPassword');\n    const password = document.querySelector('#confirm-password-input-field');\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    togglePassword.classList.toggle('bi-eye');\n  }\n\n  @action\n  submitAction(provider) {\n    let self = this;\n    provider\n      .save()\n      .then(function (provider) {\n        var controller = self;\n        controller.get('model').set('passwordInput', '');\n        controller.get('model').set('confirmPasswordInput', '');\n        return provider;\n      })\n      .then(function () {\n        self.router.transitionTo('index');\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    let controller = this;\n    controller.get('model').set('passwordInput', '');\n    controller.get('model').set('confirmPasswordInput', '');\n    this.model.rollbackAttributes();\n    this.router.transitionTo('index');\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n\n@classic\nexport default class ApplicationController extends Controller {\n  @service\n  flashMessages;\n\n  queryParams = [\n    'query',\n    'role-name',\n    'include-deleted',\n    'sort',\n    'page',\n    'size'\n  ];\n  query = null;\n  'role-name' = null;\n  'include-deleted' = null;\n  sort = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ShowController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class DeleteController extends Controller {\n  @service\n  store;\n\n  @service\n  router;\n\n  @action\n  submitAction() {\n    let self = this;\n    let providerId = this.model.get('provider.id');\n    this.store\n      .findRecord('contact', this.model.get('id'), {\n        backgroundReload: false\n      })\n      .then(function (contact) {\n        contact\n          .destroyRecord()\n          .then(function () {\n            // We need a timeout because of ElasticSearch indexing\n            setTimeout(() => {\n              self.router.transitionTo('providers.show.contacts', providerId);\n            }, 3600);\n          })\n          .catch(function (reason) {\n            console.debug(reason);\n          });\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.model.rollbackAttributes();\n    this.model.set('confirmDelete', null);\n    this.router.transitionTo('contacts.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class EditController extends Controller {\n  @service\n  currentUser;\n\n  @service\n  store;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  @action\n  submitAction(contact) {\n    let self = this;\n    contact\n      .save()\n      .then(function (c) {\n        self.router.transitionTo('contacts.show', c);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('contacts.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class DoisController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n\n@classic\nexport default class EditController extends Controller {\n  @service\n  flashMessages;\n\n  queryParams = [\n    'query',\n    'resource-type-id',\n    'provider-id',\n    'client-id',\n    'person-id',\n    'affiliation-id',\n    'prefix',\n    'year',\n    'created',\n    'registered',\n    'state',\n    'source',\n    'link-check-status',\n    'sort',\n    'schema-version',\n    'certificate',\n    'page',\n    'size',\n    'affiliation',\n    'publisher'\n  ];\n  query = null;\n  'resource-type-id' = null;\n  'provider-id' = null;\n  'client-id' = null;\n  'person-id' = null;\n  'affiliation-id' = null;\n  prefix = null;\n  year = null;\n  created = null;\n  registered = null;\n  state = null;\n  source = null;\n  'link-check-status'= null;\n  sort = null;\n  'schema-version' = null;\n  certificate = null;\n  page = 1;\n  size = 25;\n  affiliation = true;\n  publisher = true;\n  composite = true;\n};\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class DeleteController extends Controller {\n  @service\n  store;\n\n  @service\n  router;\n\n  repositoryId = null;\n\n  @action\n  destroyAction() {\n    let self = this;\n    let repositoryId = this.model.get('repository.id');\n    this.store\n      .findRecord('doi', this.model.get('id'), { backgroundReload: false })\n      .then(function (doi) {\n        doi.destroyRecord().then(function () {\n          self.router.transitionTo('repositories.show.dois', repositoryId);\n        });\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo('dois.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport { isBlank } from '@ember/utils';\nimport { A } from '@ember/array';\n\n@classic\nexport default class EditController extends Controller {\n  @service\n  spdx;\n\n  @service\n  store;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  setEvent(stateChange) {\n    if (stateChange[0] === 'draft' && stateChange[1] === 'registered') {\n      return 'register';\n    } else if (stateChange[0] === 'draft' && stateChange[1] === 'findable') {\n      return 'publish';\n    } else if (\n      stateChange[0] === 'registered' &&\n      stateChange[1] === 'findable'\n    ) {\n      return 'publish';\n    } else if (\n      stateChange[0] === 'findable' &&\n      stateChange[1] === 'registered'\n    ) {\n      return 'hide';\n    }\n  }\n\n  @action\n  submitAction(doi) {\n    // change state via event if there is a change\n    let stateChange = doi.changedAttributes().state;\n    if (typeof stateChange !== 'undefined') {\n      doi.set('event', this.setEvent(stateChange));\n    }\n\n    // schema-version will be determined by API\n    doi.set('schemaVersion', 'http://datacite.org/schema/kernel-4');\n\n    // track use of the form\n    doi.set('source', 'fabricaForm');\n\n    // don't send xml\n    doi.set('xml', null);\n\n    // Don't try and set the landingPage information for DOI Updates\n    doi.set('landingPage', null);\n\n    // only store name identifiers and affiliations for creators with a value\n    A(doi.get('creators')).forEach((creator) => {\n      creator.set(\n        'nameIdentifiers',\n        A(creator.get('nameIdentifiers')).filter(function (nameIdentifier) {\n          return !isBlank(nameIdentifier.nameIdentifier);\n        })\n      );\n      creator.set(\n        'affiliation',\n        A(creator.get('affiliation')).filter(function (affiliation) {\n          return !isBlank(affiliation.name);\n        })\n      );\n      if (creator.nameType === 'Organizational') {\n        creator.set('givenName', null);\n        creator.set('familyName', null);\n      }\n    });\n\n    // only store titles with a title text\n    doi.set(\n      'titles',\n      A(doi.get('titles')).filter(function (title) {\n        return !isBlank(title.title);\n      })\n    );\n\n    // only store subject with a subject text\n    doi.set(\n      'subjects',\n      A(doi.get('subjects')).filter(function (subject) {\n        return !isBlank(subject.subject);\n      })\n    );\n\n    // only store name identifiers and affiliations for contributor with a value\n    doi.set(\n      'contributors',\n      A(doi.get('contributors')).filter(function (contributor) {\n        let nameIdentifiers = A(contributor.get('nameIdentifiers')).filter(\n          function (nameIdentifier) {\n            return !isBlank(nameIdentifier.nameIdentifier);\n          }\n        );\n        let affiliation = A(contributor.get('affiliation')).filter(function (\n          affiliation\n        ) {\n          return !isBlank(affiliation.name);\n        });\n\n        let contributorType = !isBlank(contributor.contributorType)\n          ? [contributor.contributorType]\n          : [];\n\n        return (\n          !isBlank(nameIdentifiers) ||\n          !isBlank(affiliation) ||\n          !isBlank(contributorType) ||\n          !isBlank(contributor.name)\n        );\n      })\n    );\n\n    // only store dates with a text\n    doi.set(\n      'dates',\n      A(doi.get('dates')).filter(function (date) {\n        return (\n          !isBlank(date.date) ||\n          !isBlank(date.dateType) ||\n          !isBlank(date.dateInformation)\n        );\n      })\n    );\n\n    // only store related identifiers with a text\n    doi.set(\n      'relatedIdentifiers',\n      A(doi.get('relatedIdentifiers')).filter(function (identifier) {\n        return (\n          !isBlank(identifier.relatedIdentifier) ||\n          !isBlank(identifier.relatedIdentifierType) ||\n          !isBlank(identifier.relationType) ||\n          !isBlank(identifier.relatedMetadataScheme) ||\n          !isBlank(identifier.resourceTypeGeneral)\n        );\n      })\n    );\n\n    // only store descriptions with a description text\n    doi.set(\n      'descriptions',\n      A(doi.get('descriptions')).filter(function (description) {\n        return !isBlank(description.description);\n      })\n    );\n\n    doi.set(\n      'geoLocations',\n      A(doi.get('geoLocations')).filter(function (geoLocation) {\n        let point =\n          isBlank(geoLocation.geoLocationPoint.pointLongitude) &&\n          isBlank(geoLocation.geoLocationPoint.pointLatitude)\n            ? []\n            : [geoLocation.geoLocationPoint];\n        let box =\n          isBlank(geoLocation.geoLocationBox.westBoundLongitude) &&\n          isBlank(geoLocation.geoLocationBox.eastBoundLongitude) &&\n          isBlank(geoLocation.geoLocationBox.southBoundLatitude) &&\n          isBlank(geoLocation.geoLocationBox.northBoundLatitude)\n            ? []\n            : [geoLocation.geoLocationBox];\n        let polygon = \n          geoLocation.geoLocationPolygon == null ||\n          !Array.isArray(geoLocation.geoLocationPolygon) ||\n          geoLocation.geoLocationPolygon.length === 0\n            ? null\n            : geoLocation.geoLocationPolygon\n        return (\n          !isBlank(geoLocation.geoLocationPlace) ||\n          !isBlank(point) ||\n          !isBlank(box) ||\n          !isBlank(polygon)\n        );\n      })\n    );\n\n    // only store identifiers with a  text\n    doi.set(\n      'alternateIdentifiers',\n      A(doi.get('alternateIdentifiers')).filter(function (\n        alternateIdentifier\n      ) {\n        return !isBlank(alternateIdentifier.alternateIdentifier);\n      })\n    );\n\n    // only store rights with a text\n    doi.set(\n      'rightsList',\n      A(doi.get('rightsList')).filter(function (rights) {\n        return !isBlank(rights.rights);\n      })\n    );\n\n    // only store sizes with a text\n    doi.set(\n      'sizes',\n      A(doi.get('sizes')).filter(function (size) {\n        return !isBlank(size);\n      })\n    );\n\n    // only store formats with a text\n    doi.set(\n      'formats',\n      A(doi.get('formats')).filter(function (format) {\n        return !isBlank(format);\n      })\n    );\n\n    // only store funding references with a text\n    doi.set(\n      'fundingReferences',\n      A(doi.get('fundingReferences')).filter(function (fundingReference) {\n        return (\n          !isBlank(fundingReference.funderName) ||\n          !isBlank(fundingReference.funderIdentifier) ||\n          !isBlank(fundingReference.funderIdentifierType) ||\n          !isBlank(fundingReference.awardNumber) ||\n          !isBlank(fundingReference.awardTitle)\n        );\n      })\n    );\n\n    // only store related items with a type, a relation type and a title\n    doi.set(\n      'relatedItems',\n      A(doi.get('relatedItems')).filter(function (item) {\n        let titles = A(item.get('titles')).filter(function (title) {\n          return !isBlank(title.title);\n        });\n\n        return (\n          !isBlank(item.relatedItemType) ||\n          !isBlank(item.relationType) ||\n          !isBlank(titles)\n        );\n      })\n    );\n\n    let self = this;\n    doi.save().then(function (doi) {\n      self.router.transitionTo('dois.show', doi);\n    });\n  }\n\n  @action\n  cancelAction() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('dois.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ModifyController extends Controller {\n  @service\n  store;\n\n  @service\n  router;\n\n  setEvent(stateChange) {\n    if (stateChange[0] === 'draft' && stateChange[1] === 'registered') {\n      return 'register';\n    } else if (stateChange[0] === 'draft' && stateChange[1] === 'findable') {\n      return 'publish';\n    } else if (\n      stateChange[0] === 'registered' &&\n      stateChange[1] === 'findable'\n    ) {\n      return 'publish';\n    } else if (\n      stateChange[0] === 'findable' &&\n      stateChange[1] === 'registered'\n    ) {\n      return 'hide';\n    }\n  }\n\n  @action\n  submitAction(doi) {\n    // change state via event if there is a change\n    let stateChange = doi.changedAttributes().state;\n    if (typeof stateChange !== 'undefined') {\n      doi.set('event', this.setEvent(stateChange));\n    }\n\n    // set individual attributes to null so that they don't overwrite what is in the xml attribute\n    doi.set('formats', null);\n    doi.set('sizes', null);\n    doi.set('version', null);\n    doi.set('creators', null);\n    doi.set('titles', null);\n    doi.set('descriptions', null);\n    doi.set('publisher', null);\n    doi.set('publicationYear', null);\n    doi.set('types', null);\n    doi.set('rightsList', null);\n    doi.set('schemaVersion', null);\n    doi.set('language', null);\n    doi.set('subjects', null);\n    doi.set('contributors', null);\n    doi.set('alternateIdentifiers', null);\n    doi.set('relatedIdentifiers', null);\n    doi.set('fundingReferences', null);\n    doi.set('geoLocations', null);\n    doi.set('dates', null);\n    doi.set('relatedItems', null);\n\n    // Don't try and set the landingPage information for DOI Updates\n    doi.set('landingPage', null);\n\n    let self = this;\n    doi.save().then(function (doi) {\n      self.router.transitionTo('dois.show', doi);\n    });\n  }\n\n  @action\n  cancelAction() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('dois.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class TransferController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport countryList from 'iso-3166-country-list';\n\n@classic\nexport default class EditController extends Controller {\n  @service\n  store;\n\n  @service\n  router;\n\n  countryList = countryList;\n  countries = null;\n\n  @action\n  searchCountryAction(query) {\n    let countries = countryList.filter(function (country) {\n      return country.name.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('countries', countries);\n  }\n\n  @action\n  selectCountryAction(country) {\n    this.model.set('country', country);\n    this.set('countries', countryList);\n  }\n\n  @action\n  searchRor(query) {\n    let self = this;\n    this.store\n      .query('ror', { query })\n      .then(function (organizations) {\n        self.set('organizations', organizations);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('organizations', []);\n      });\n  }\n\n  @action\n  selectRor(ror) {\n    if (ror) {\n      this.model.set('rorId', ror.id);\n      this.model.set('name', ror.name);\n      this.model.set('displayName', ror.name);\n    } else {\n      this.model.set('rorId', null);\n    }\n    this.set('organizations', []);\n  }\n\n  @action\n  submitAction(provider) {\n    let self = this;\n    provider\n      .save()\n      .then(function () {\n        self.router.transitionTo('index');\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('index');\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class IndexController extends Controller {\n  @service\n  session;\n\n  @service\n  currentUser;\n\n  init() {\n    super.init(...arguments);\n    if (this.session.sessionAuthenticated) {\n      this._loadCurrentUser();\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class PasswordController extends Controller {\n  @service\n  session;\n\n  @service\n  currentUser;\n\n  @service\n  router;\n\n  @action\n  togglePassword() {\n    const togglePassword = document.querySelector('#togglePassword');\n    const password = document.querySelector('#password-input-field');\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    togglePassword.classList.toggle('bi-eye');\n  }\n\n  @action\n  toggleConfirmPassword() {\n    const togglePassword = document.querySelector('#toggleConfirmPassword');\n    const password = document.querySelector('#confirm-password-input-field');\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    togglePassword.classList.toggle('bi-eye');\n  }\n\n  @action\n  doSubmit(user) {\n    let self = this;\n    user\n      .save()\n      .then(function () {\n        self.get('session').invalidate();\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancel() {\n    let self = this;\n    this.session.invalidate().then(function () {\n      self.router.transitionTo('index');\n    });\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ApplicationController extends Controller {\n  queryParams = ['query', 'role-id', 'sort', 'page', 'size'];\n  query = null;\n  'role-id' = null;\n  sort = null;\n  page = 1;\n  size  = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class PrefixesController extends Controller {\n  @service\n  features;\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n@classic\nexport default class ModifyController extends Controller {\n  @service\n  features;\n\n  @service\n  prefixes;\n\n  @service\n  flashMessages;\n\n  queryParams = [\n    'query',\n    'provider-id',\n    'client-id',\n    'year',\n    'state',\n    'sort',\n    'page',\n    'size'\n  ];\n  query = null;\n  'provider-id' = null;\n  'client-id' = null;\n  year = null;\n  state = null;\n  sort = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ProviderPrefixesController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ProvidersController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n\n@classic\nexport default class ModifyController extends Controller {\n  @service\n  flashMessages;\n\n  queryParams = [\n    'query',\n    'organization-id',\n    'region',\n    'member-type',\n    'organization-type',\n    'focus-area',\n    'include-deleted',\n    'non-profit-status',\n    'has-required-contacts',\n    'year',\n    'sort',\n    'page',\n    'size'\n  ];\n  query = null;\n  region = null;\n  'member-type' = null;\n  'organization-type' = null;\n  'focus-area' = null;\n  'include-deleted' = null;\n  'non-profit-status' = null;\n  'has-required-contacts' = null;\n  'organization-id' = null;\n  year = null;\n  sort = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport { w } from '@ember/string';\nimport countryList from 'iso-3166-country-list';\nimport ENV from 'bracco/config/environment';\nimport {\n  organizationTypeList,\n  memberTypeList,\n  focusAreaList,\n  nonProfitStatusList\n} from 'bracco/models/provider';\nimport { UploadFile, UploadFileReader } from 'ember-file-upload';\n\n// states and provinces use iso-3166-2 codes\n// TODO add Brazil, India, Ireland, Italy, Mexico, all supported in Salesforce\nconst stateList = [\n  { code: 'US-AL', name: 'Alabama' },\n  { code: 'US-AK', name: 'Alaska' },\n  { code: 'US-AZ', name: 'Arizona' },\n  { code: 'US-AR', name: 'Arkansas' },\n  { code: 'US-CA', name: 'California' },\n  { code: 'US-CO', name: 'Colorado' },\n  { code: 'US-CT', name: 'Connecticut' },\n  { code: 'US-DE', name: 'Delaware' },\n  { code: 'US-FL', name: 'Florida' },\n  { code: 'US-GA', name: 'Georgia' },\n  { code: 'US-HI', name: 'Hawaii' },\n  { code: 'US-ID', name: 'Idaho' },\n  { code: 'US-IL', name: 'Illinois' },\n  { code: 'US-IN', name: 'Indiana' },\n  { code: 'US-IA', name: 'Iowa' },\n  { code: 'US-KS', name: 'Kansas' },\n  { code: 'US-KY', name: 'Kentucky' },\n  { code: 'US-LA', name: 'Louisiana' },\n  { code: 'US-ME', name: 'Maine' },\n  { code: 'US-MD', name: 'Maryland' },\n  { code: 'US-MA', name: 'Massachusetts' },\n  { code: 'US-MI', name: 'Michigan' },\n  { code: 'US-MN', name: 'Minnesota' },\n  { code: 'US-MS', name: 'Mississippi' },\n  { code: 'US-MO', name: 'Missouri' },\n  { code: 'US-MT', name: 'Montana' },\n  { code: 'US-NE', name: 'Nebraska' },\n  { code: 'US-NV', name: 'Nevada' },\n  { code: 'US-NH', name: 'New Hampshire' },\n  { code: 'US-NJ', name: 'New Jersey' },\n  { code: 'US-NM', name: 'New Mexico' },\n  { code: 'US-NY', name: 'New York' },\n  { code: 'US-NC', name: 'North Carolina' },\n  { code: 'US-ND', name: 'North Dakota' },\n  { code: 'US-OH', name: 'Ohio' },\n  { code: 'US-OK', name: 'Oklahoma' },\n  { code: 'US-OR', name: 'Oregon' },\n  { code: 'US-PA', name: 'Pennsylvania' },\n  { code: 'US-RI', name: 'Rhode Island' },\n  { code: 'US-SC', name: 'South Carolina' },\n  { code: 'US-SD', name: 'South Dakota' },\n  { code: 'US-TN', name: 'Tennessee' },\n  { code: 'US-TX', name: 'Texas' },\n  { code: 'US-UT', name: 'Utah' },\n  { code: 'US-VT', name: 'Vermont' },\n  { code: 'US-VA', name: 'Virginia' },\n  { code: 'US-WA', name: 'Washington' },\n  { code: 'US-WV', name: 'West Virginia' },\n  { code: 'US-WI', name: 'Wisconsin' },\n  { code: 'US-WY', name: 'Wyoming' },\n  { code: 'US-DC', name: 'District of Columbia' },\n  { code: 'US-AS', name: 'American Samoa' },\n  { code: 'US-GU', name: 'Guam' },\n  { code: 'US-MP', name: 'Northern Mariana Islands' },\n  { code: 'US-PR', name: 'Puerto Rico' },\n  { code: 'US-UM', name: 'United States Minor Outlying Islands' },\n  { code: 'US-VI', name: 'Virgin Islands, U.S.' }\n];\n\nconst provinceListCanada = [\n  { code: 'CA-AB', name: 'Alberta' },\n  { code: 'CA-BC', name: 'British Columbia (Colombie-Britannique)' },\n  { code: 'CA-MB', name: 'Manitoba' },\n  { code: 'CA-NB', name: 'New Brunswick (Nouveau-Brunswick)' },\n  { code: 'CA-NL', name: 'Newfoundland and Labrador (Terre-Neuve)' },\n  { code: 'CA-NS', name: 'Nova Scotia (Nouvelle-Écosse)' },\n  { code: 'CA-ON', name: 'Ontario' },\n  { code: 'CA-PE', name: 'Prince Edward Island (Île-du-Prince-Édouard)' },\n  { code: 'CA-QC', name: 'Quebec (Québec)' },\n  { code: 'CA-SK', name: 'Saskatchewan' },\n  { code: 'CA-NT', name: 'Northwest Territories (Territoires du Nord-Ouest)' },\n  { code: 'CA-NU', name: 'Nunavut' },\n  { code: 'CA-YT', name: 'Yukon Territory (Teritoire du Yukon)' }\n];\n\nconst provinceListChina = [\n  { code: 'CN-34', name: 'Anhui' },\n  { code: 'CN-11', name: 'Beijing' },\n  { code: 'CN-50', name: 'Chongqing' },\n  { code: 'CN-35', name: 'Fujian' },\n  { code: 'CN-62', name: 'Gansu' },\n  { code: 'CN-44', name: 'Guangdong' },\n  { code: 'CN-45', name: 'Guangxi' },\n  { code: 'CN-52', name: 'Guizhou' },\n  { code: 'CN-46', name: 'Hainan' },\n  { code: 'CN-13', name: 'Hebei' },\n  { code: 'CN-23', name: 'Heilongjiang' },\n  { code: 'CN-41', name: 'Henan' },\n  { code: 'CN-91', name: 'Hong Kong' },\n  { code: 'CN-42', name: 'Hubei' },\n  { code: 'CN-43', name: 'Hunan' },\n  { code: 'CN-32', name: 'Jiangsu' },\n  { code: 'CN-36', name: 'Jiangxi' },\n  { code: 'CN-22', name: 'Jilin' },\n  { code: 'CN-21', name: 'Liaoning' },\n  { code: 'CN-15', name: 'Nei Monggol' },\n  { code: 'CN-64', name: 'Ningxia' },\n  { code: 'CN-63', name: 'Qinghai' },\n  { code: 'CN-61', name: 'Shaanxi' },\n  { code: 'CN-37', name: 'Shandong' },\n  { code: 'CN-31', name: 'Shanghai' },\n  { code: 'CN-14', name: 'Shanxi' },\n  { code: 'CN-51', name: 'Sichuan' },\n  { code: 'CN-71', name: 'Taiwan' },\n  { code: 'CN-12', name: 'Tianjin' },\n  { code: 'CN-65', name: 'Xinjiang' },\n  { code: 'CN-54', name: 'Xizang' },\n  { code: 'CN-53', name: 'Yunnan' },\n  { code: 'CN-33', name: 'Zhejiang' }\n];\n\nconst stateListAustralia = [\n  { code: 'AU-NSW', name: 'New South Wales' },\n  { code: 'AU-QLD', name: 'Queensland' },\n  { code: 'AU-SA', name: 'South Australia' },\n  { code: 'AU-TAS', name: 'Tasmania' },\n  { code: 'AU-VIC', name: 'Victoria' },\n  { code: 'AU-WA', name: 'Western Australia' },\n  { code: 'AU-ACT', name: 'Australian Capital Territory' },\n  { code: 'AU-NT', name: 'Northern Territory' }\n];\n\n@classic\nexport default class NewController extends Controller {\n  @service\n  store;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  countryList = countryList;\n  countries = null;\n  stateList = stateList;\n  provinceListCanada = provinceListCanada;\n  provinceListChina = provinceListChina;\n  stateListAustralia = stateListAustralia;\n  states = null;\n  organizationTypeList = organizationTypeList;\n  organizationTypes = organizationTypeList;\n  memberTypeList = memberTypeList;\n  memberTypes = memberTypeList;\n  focusAreaList = focusAreaList;\n  focusAreas = focusAreaList;\n  nonProfitStatusList = nonProfitStatusList;\n  nonProfitStatuses = nonProfitStatusList;\n  isCountryFieldActive = false;\n\n  // we are storing state/province information for US, CA, AU and CN\n  @computed('model.billingInformation.country')\n  get showStateSearch() {\n    return (\n      this.model.get('billingInformation.country') &&\n      w('US CA AU CN').includes(\n        this.model.get('billingInformation.country.code')\n      )\n    );\n  }\n\n  init(...args) {\n    super.init(...args);\n\n    this.organizations = this.organizations || [];\n    this.consortia = this.consortia || [];\n  }\n\n  @action\n  searchCountryAction(query) {\n    let countries = countryList.filter(function (country) {\n      return country.name.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('countries', countries);\n  }\n\n  @action\n  selectCountryAction(country) {\n    if (country == null) { \n      this.model.set('country', null);\n    } else {\n      this.model.set('country', {\n        code: country.code,\n        name: countryList.name(country.code)\n        \n      });\n      this.set('countries', countryList);\n    }\n  }\n\n  @action\n  searchState(query) {\n    let states = null;\n    if (this.model.get('billingInformation.country.code') === 'US') {\n      states = stateList.filter(function (state) {\n        return state.name.toLowerCase().startsWith(query.toLowerCase());\n      });\n    } else if (this.model.get('billingInformation.country.code') === 'CA') {\n      states = provinceListCanada.filter(function (state) {\n        return state.name.toLowerCase().startsWith(query.toLowerCase());\n      });\n    } else if (this.model.get('billingInformation.country.code') === 'CN') {\n      states = provinceListChina.filter(function (state) {\n        return state.name.toLowerCase().startsWith(query.toLowerCase());\n      });\n    } else if (this.model.get('billingInformation.country.code') === 'AU') {\n      states = stateListAustralia.filter(function (state) {\n        return state.name.toLowerCase().startsWith(query.toLowerCase());\n      });\n    }\n    this.set('states', states);\n  }\n\n  @action\n  searchOrganizationType(query) {\n    let organizationTypes = organizationTypeList.filter(function (\n      organizationType\n    ) {\n      return organizationType.startsWith(query.toLowerCase());\n    });\n    this.set('organizationTypes', organizationTypes);\n  }\n\n  @action\n  selectOrganizationType(organizationType) {\n    this.model.set('organizationType', organizationType);\n    this.set('organizationTypes', organizationTypeList);\n  }\n\n  @action\n  searchMemberType(query) {\n    let memberTypes = memberTypeList.filter(function (memberType) {\n      return memberType.startsWith(query.toLowerCase());\n    });\n    this.set('memberTypes', memberTypes);\n  }\n\n  @action\n  selectMemberType(memberType) {\n    this.model.set('memberType', memberType);\n    this.set('memberTypes', memberTypeList);\n    if (this.features.isEnabled('enable-doi-estimate')) {\n      this.send('toggleInput');\n    }\n  }\n\n  @action\n  searchFocusArea(query) {\n    let focusAreas = focusAreaList.filter(function (focusArea) {\n      return focusArea.startsWith(query.toLowerCase());\n    });\n    this.set('focusAreas', focusAreas);\n  }\n\n  @action\n  selectFocusArea(focusArea) {\n    this.model.set('focusArea', focusArea);\n    this.set('focusAreas', focusAreaList);\n  }\n\n  @action\n  searchNonProfitStatus(query) {\n    let nonProfitStatuses = nonProfitStatusList.filter(function (\n      nonProfitStatus\n    ) {\n      return nonProfitStatus.startsWith(query.toLowerCase());\n    });\n    this.set('nonProfitStatuses', nonProfitStatuses);\n  }\n\n  @action\n  selectNonProfitStatus(nonProfitStatus) {\n    this.model.set('nonProfitStatus', nonProfitStatus);\n    this.set('nonProfitStatuses', nonProfitStatusList);\n  }\n\n  @action\n  searchConsortium(query) {\n    let self = this;\n    this.store\n      .query('provider', {\n        query,\n        'member-type': 'consortium',\n        sort: 'name',\n        'page[size]': 100\n      })\n      .then(function (consortia) {\n        self.set('consortia', consortia);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('consortia', []);\n      });\n  }\n\n  @action\n  selectConsortium(consortium) {\n    this.model.set('consortium', consortium);\n  }\n\n  @action\n  selectBillingCountry(billingCountry) {\n    if (billingCountry) {\n      this.model.set('billingInformation.country', {\n        code: billingCountry.code,\n        name: countryList.name(billingCountry.code)\n      });\n    } else {\n      this.model.set('billingInformation.country', null);\n    }\n    this.model.set('billingInformation.state', null);\n    this.set('countries', countryList);\n  }\n\n  @action\n  selectBillingState(billingState) {\n    this.model.set('billingInformation.state', billingState);\n  }\n\n  @action\n  searchRor(query) {\n    let self = this;\n    this.store\n      .query('ror', { query })\n      .then(function (organizations) {\n        self.set('organizations', organizations);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('organizations', []);\n      });\n  }\n\n  @action\n  selectRor(ror) {\n    if (ror) {\n      this.model.set('rorId', ror.id);\n      this.model.set('name', ror.name);\n      this.model.set('displayName', ror.name);\n    } else {\n      this.model.set('rorId', null);\n    }\n    this.set('organizations', []);\n  }\n\n  @action\n  didSelectFiles(file) {\n    file.readAsDataURL().then((logo) => {\n        // Type is FileUpload\n        this.model.set('logo', logo)\n      },\n      (err) => {\n        console.error(err);\n      }\n    );\n  }\n\n  @action\n  doSubmit() {\n    let self = this;\n    // iterate through all contacts and update roles\n    let m = this.model;\n    this.model.get('contacts').forEach(function (contact) {\n      let roleName = [];\n      if (contact.email === m.get('votingContact.email')) {\n        roleName.push('voting');\n      }\n      if (contact.email === m.get('serviceContact.email')) {\n        roleName.push('service');\n      }\n      if (contact.email === m.get('secondaryServiceContact.email')) {\n        roleName.push('secondary_service');\n      }\n      if (contact.email === m.get('technicalContact.email')) {\n        roleName.push('technical');\n      }\n      if (contact.email === m.get('secondaryTechnicalContact.email')) {\n        roleName.push('secondary_technical');\n      }\n      if (contact.email === m.get('billingContact.email')) {\n        roleName.push('billing');\n      }\n      if (contact.email === m.get('secondaryBillingContact.email')) {\n        roleName.push('secondary_billing');\n      }\n      contact.set('roleName', roleName);\n      contact.save();\n    });\n    this.model\n      .save()\n      .then(function (provider) {\n        self.router.transitionTo('providers.show', provider.id);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancel() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('providers');\n  }\n\n  // This helps to manage the validation state of the country field.  The field is required, but we don't want to show it as invalid until the user has interacted with it.\n  @action\n  activateCountryField() {\n    return this.set('isCountryFieldActive', true);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ShowController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class ChangeController extends Controller {\n  @service\n  currentUser;\n\n  @service\n  router;\n\n  @action\n  togglePassword() {\n    const togglePassword = document.querySelector('#togglePassword');\n    const password = document.querySelector('#password-input-field');\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    togglePassword.classList.toggle('bi-eye');\n  }\n\n  @action\n  toggleConfirmPassword() {\n    const togglePassword = document.querySelector('#toggleConfirmPassword');\n    const password = document.querySelector('#confirm-password-input-field');\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    togglePassword.classList.toggle('bi-eye');\n  }\n\n  @action\n  submitAction() {\n    let self = this;\n    this.model\n      .save()\n      .then(function (provider) {\n        var controller = self;\n        controller.get('model').set('passwordInput', '');\n        controller.get('model').set('confirmPasswordInput', '');\n        return provider;\n      })\n      .then(function (provider) {\n        self.router.transitionTo('providers.show', provider);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    let controller = this;\n    controller.get('model').set('passwordInput', '');\n    controller.get('model').set('confirmPasswordInput', '');\n    this.model.rollbackAttributes();\n    this.router.transitionTo('providers.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ModifyController extends Controller {\n  queryParams = ['query', 'role-name', 'sort', 'page', 'size'];\n  query = null;\n  'role-name' = null;\n  sort = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class NewController extends Controller {\n  @service\n  store;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  @action\n  submitAction(contact) {\n    let self = this;\n    contact\n      .save()\n      .then(function (c) {\n        self.router.transitionTo('contacts.show', c.id);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo('providers.show.contacts', this.model.provider);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class DeleteController extends Controller {\n  @service\n  store;\n\n  @service\n  router;\n\n  @action\n  submitAction() {\n    let self = this;\n    this.store\n      .findRecord('provider', this.model.get('id'), {\n        backgroundReload: false\n      })\n      .then(function (provider) {\n        provider\n          .destroyRecord()\n          .then(function () {\n            self.router.transitionTo('providers');\n          })\n          .catch(function (reason) {\n            console.debug(reason);\n          });\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('providers.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ModifyController extends Controller {\n  queryParams = [\n    'query',\n    'resource-type-id',\n    'provider-id',\n    'client-id',\n    'person-id',\n    'affiliation-id',\n    'prefix',\n    'year',\n    'created',\n    'registered',\n    'state',\n    'sort',\n    'source',\n    'link-check-status',\n    'schema-version',\n    'certificate',\n    'page',\n    'size',\n    'affiliation'\n  ];\n  query = null;\n  'resource-type-id' = null;\n  'provider-id' = null;\n  'client-id' = null;\n  'person-id' = null;\n  'affiliation-id' = null;\n  prefix = null;\n  year = null;\n  created = null;\n  registered = null;\n  state = null;\n  source = null;\n  'link-check-status' = null;\n  sort = null;\n  'schema-version' = null;\n  certificate = null;\n  page = 1;\n  size = 25;\n  affiliation = true;\n};\n","import classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport { w } from '@ember/string';\nimport countryList from 'iso-3166-country-list';\nimport { UploadFile, UploadFileReader } from 'ember-file-upload';\nimport ENV from 'bracco/config/environment';\nimport {\n  organizationTypeList,\n  memberTypeList,\n  focusAreaList,\n  nonProfitStatusList\n} from 'bracco/models/provider';\nimport _arr from 'lodash';\nimport RSVP from 'rsvp';\n\n\n// states and provinces use iso-3166-2 codes\nconst stateList = [\n  { code: 'US-AL', name: 'Alabama' },\n  { code: 'US-AK', name: 'Alaska' },\n  { code: 'US-AZ', name: 'Arizona' },\n  { code: 'US-AR', name: 'Arkansas' },\n  { code: 'US-CA', name: 'California' },\n  { code: 'US-CO', name: 'Colorado' },\n  { code: 'US-CT', name: 'Connecticut' },\n  { code: 'US-DE', name: 'Delaware' },\n  { code: 'US-FL', name: 'Florida' },\n  { code: 'US-GA', name: 'Georgia' },\n  { code: 'US-HI', name: 'Hawaii' },\n  { code: 'US-ID', name: 'Idaho' },\n  { code: 'US-IL', name: 'Illinois' },\n  { code: 'US-IN', name: 'Indiana' },\n  { code: 'US-IA', name: 'Iowa' },\n  { code: 'US-KS', name: 'Kansas' },\n  { code: 'US-KY', name: 'Kentucky' },\n  { code: 'US-LA', name: 'Louisiana' },\n  { code: 'US-ME', name: 'Maine' },\n  { code: 'US-MD', name: 'Maryland' },\n  { code: 'US-MA', name: 'Massachusetts' },\n  { code: 'US-MI', name: 'Michigan' },\n  { code: 'US-MN', name: 'Minnesota' },\n  { code: 'US-MS', name: 'Mississippi' },\n  { code: 'US-MO', name: 'Missouri' },\n  { code: 'US-MT', name: 'Montana' },\n  { code: 'US-NE', name: 'Nebraska' },\n  { code: 'US-NV', name: 'Nevada' },\n  { code: 'US-NH', name: 'New Hampshire' },\n  { code: 'US-NJ', name: 'New Jersey' },\n  { code: 'US-NM', name: 'New Mexico' },\n  { code: 'US-NY', name: 'New York' },\n  { code: 'US-NC', name: 'North Carolina' },\n  { code: 'US-ND', name: 'North Dakota' },\n  { code: 'US-OH', name: 'Ohio' },\n  { code: 'US-OK', name: 'Oklahoma' },\n  { code: 'US-OR', name: 'Oregon' },\n  { code: 'US-PA', name: 'Pennsylvania' },\n  { code: 'US-RI', name: 'Rhode Island' },\n  { code: 'US-SC', name: 'South Carolina' },\n  { code: 'US-SD', name: 'South Dakota' },\n  { code: 'US-TN', name: 'Tennessee' },\n  { code: 'US-TX', name: 'Texas' },\n  { code: 'US-UT', name: 'Utah' },\n  { code: 'US-VT', name: 'Vermont' },\n  { code: 'US-VA', name: 'Virginia' },\n  { code: 'US-WA', name: 'Washington' },\n  { code: 'US-WV', name: 'West Virginia' },\n  { code: 'US-WI', name: 'Wisconsin' },\n  { code: 'US-WY', name: 'Wyoming' },\n  { code: 'US-DC', name: 'District of Columbia' },\n  { code: 'US-AS', name: 'American Samoa' },\n  { code: 'US-GU', name: 'Guam' },\n  { code: 'US-MP', name: 'Northern Mariana Islands' },\n  { code: 'US-PR', name: 'Puerto Rico' },\n  { code: 'US-UM', name: 'United States Minor Outlying Islands' },\n  { code: 'US-VI', name: 'Virgin Islands, U.S.' }\n];\n\nconst provinceListCanada = [\n  { code: 'CA-AB', name: 'Alberta' },\n  { code: 'CA-BC', name: 'British Columbia (Colombie-Britannique)' },\n  { code: 'CA-MB', name: 'Manitoba' },\n  { code: 'CA-NB', name: 'New Brunswick (Nouveau-Brunswick)' },\n  { code: 'CA-NL', name: 'Newfoundland and Labrador (Terre-Neuve)' },\n  { code: 'CA-NS', name: 'Nova Scotia (Nouvelle-Écosse)' },\n  { code: 'CA-ON', name: 'Ontario' },\n  { code: 'CA-PE', name: 'Prince Edward Island (Île-du-Prince-Édouard)' },\n  { code: 'CA-QC', name: 'Quebec (Québec)' },\n  { code: 'CA-SK', name: 'Saskatchewan' },\n  { code: 'CA-NT', name: 'Northwest Territories (Territoires du Nord-Ouest)' },\n  { code: 'CA-NU', name: 'Nunavut' },\n  { code: 'CA-YT', name: 'Yukon Territory (Teritoire du Yukon)' }\n];\n\nconst provinceListChina = [\n  { code: 'CN-34', name: 'Anhui' },\n  { code: 'CN-11', name: 'Beijing' },\n  { code: 'CN-50', name: 'Chongqing' },\n  { code: 'CN-35', name: 'Fujian' },\n  { code: 'CN-62', name: 'Gansu' },\n  { code: 'CN-44', name: 'Guangdong' },\n  { code: 'CN-45', name: 'Guangxi' },\n  { code: 'CN-52', name: 'Guizhou' },\n  { code: 'CN-46', name: 'Hainan' },\n  { code: 'CN-13', name: 'Hebei' },\n  { code: 'CN-23', name: 'Heilongjiang' },\n  { code: 'CN-41', name: 'Henan' },\n  { code: 'CN-91', name: 'Hong Kong' },\n  { code: 'CN-42', name: 'Hubei' },\n  { code: 'CN-43', name: 'Hunan' },\n  { code: 'CN-32', name: 'Jiangsu' },\n  { code: 'CN-36', name: 'Jiangxi' },\n  { code: 'CN-22', name: 'Jilin' },\n  { code: 'CN-21', name: 'Liaoning' },\n  { code: 'CN-15', name: 'Nei Monggol' },\n  { code: 'CN-64', name: 'Ningxia' },\n  { code: 'CN-63', name: 'Qinghai' },\n  { code: 'CN-61', name: 'Shaanxi' },\n  { code: 'CN-37', name: 'Shandong' },\n  { code: 'CN-31', name: 'Shanghai' },\n  { code: 'CN-14', name: 'Shanxi' },\n  { code: 'CN-51', name: 'Sichuan' },\n  { code: 'CN-71', name: 'Taiwan' },\n  { code: 'CN-12', name: 'Tianjin' },\n  { code: 'CN-65', name: 'Xinjiang' },\n  { code: 'CN-54', name: 'Xizang' },\n  { code: 'CN-53', name: 'Yunnan' },\n  { code: 'CN-33', name: 'Zhejiang' }\n];\n\nconst stateListAustralia = [\n  { code: 'AU-NSW', name: 'New South Wales' },\n  { code: 'AU-QLD', name: 'Queensland' },\n  { code: 'AU-SA', name: 'South Australia' },\n  { code: 'AU-TAS', name: 'Tasmania' },\n  { code: 'AU-VIC', name: 'Victoria' },\n  { code: 'AU-WA', name: 'Western Australia' },\n  { code: 'AU-ACT', name: 'Australian Capital Territory' },\n  { code: 'AU-NT', name: 'Northern Territory' }\n];\n\n@classic\nexport default class EditController extends Controller {\n  @service\n  store;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  countryList = countryList;\n  countries = null;\n  stateList = stateList;\n  provinceListCanada = provinceListCanada;\n  provinceListChina = provinceListChina;\n  stateListAustralia = stateListAustralia;\n  states = null;\n  organizationTypeList = organizationTypeList;\n  organizationTypes = organizationTypeList;\n  memberTypeList = memberTypeList;\n  memberTypes = memberTypeList;\n  focusAreaList = focusAreaList;\n  focusAreas = focusAreaList;\n  nonProfitStatusList = nonProfitStatusList;\n  nonProfitStatuses = nonProfitStatusList;\n  isCountryFieldActive = false;\n\n  // we are storing state/province information for US, CA, AU and CN\n  @computed('model.billingInformation.country')\n  get showStateSearch() {\n    return (\n      this.model.get('billingInformation.country') &&\n      w('US CA AU CN').includes(\n        this.model.get('billingInformation.country.code')\n      )\n    );\n  }\n\n  init(...args) {\n    super.init(...args);\n\n    this.organizations = this.organizations || [];\n  }\n\n  @action\n  searchCountryAction(query) {\n    let countries = countryList.filter(function (country) {\n      return country.name.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('countries', countries);\n  }\n\n  @action\n  selectCountryAction(country) {\n    if (country == null) { \n      this.model.set('country', null);\n    } else {\n      this.model.set('country', {\n        code: country.code,\n        name: countryList.name(country.code)\n        \n      });\n      this.set('countries', countryList);\n    }\n  }\n\n  @action\n  searchState(query) {\n    let states = null;\n    if (this.model.get('billingInformation.country.code') === 'US') {\n      states = stateList.filter(function (state) {\n        return state.name.toLowerCase().startsWith(query.toLowerCase());\n      });\n    } else if (this.model.get('billingInformation.country.code') === 'CA') {\n      states = provinceListCanada.filter(function (state) {\n        return state.name.toLowerCase().startsWith(query.toLowerCase());\n      });\n    } else if (this.model.get('billingInformation.country.code') === 'CN') {\n      states = provinceListChina.filter(function (state) {\n        return state.name.toLowerCase().startsWith(query.toLowerCase());\n      });\n    } else if (this.model.get('billingInformation.country.code') === 'AU') {\n      states = stateListAustralia.filter(function (state) {\n        return state.name.toLowerCase().startsWith(query.toLowerCase());\n      });\n    }\n    this.set('states', states);\n  }\n\n  @action\n  searchOrganizationType(query) {\n    let organizationTypes = organizationTypeList.filter(function (\n      organizationType\n    ) {\n      return organizationType.startsWith(query.toLowerCase());\n    });\n    this.set('organizationTypes', organizationTypes);\n  }\n\n  @action\n  selectOrganizationType(organizationType) {\n    this.model.set('organizationType', organizationType);\n    this.set('organizationTypes', organizationTypeList);\n  }\n\n  @action\n  searchMemberType(query) {\n    let memberTypes = memberTypeList.filter(function (memberType) {\n      return memberType.startsWith(query.toLowerCase());\n    });\n    this.set('memberTypes', memberTypes);\n  }\n\n  @action\n  selectMemberType(memberType) {\n    this.model.set('memberType', memberType);\n    this.set('memberTypes', memberTypeList);\n    if (this.features.isEnabled('enable-doi-estimate')) {\n      this.send('toggleInput');\n    }\n  }\n\n  @action\n  searchFocusArea(query) {\n    let focusAreas = focusAreaList.filter(function (focusArea) {\n      return focusArea.startsWith(query.toLowerCase());\n    });\n    this.set('focusAreas', focusAreas);\n  }\n\n  @action\n  selectFocusArea(focusArea) {\n    this.model.set('focusArea', focusArea);\n    this.set('focusAreas', focusAreaList);\n  }\n\n  @action\n  searchNonProfitStatus(query) {\n    let nonProfitStatuses = nonProfitStatusList.filter(function (\n      nonProfitStatus\n    ) {\n      return nonProfitStatus.startsWith(query.toLowerCase());\n    });\n    this.set('nonProfitStatuses', nonProfitStatuses);\n  }\n\n  @action\n  selectNonProfitStatus(nonProfitStatus) {\n    this.model.set('nonProfitStatus', nonProfitStatus);\n    this.set('nonProfitStatuses', nonProfitStatusList);\n  }\n\n  @action\n  searchConsortium(query) {\n    let self = this;\n    this.store\n      .query('provider', {\n        query,\n        'member-type': 'consortium',\n        sort: 'name',\n        'page[size]': 100\n      })\n      .then(function (consortia) {\n        self.set('consortia', consortia);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('consortia', []);\n      });\n  }\n\n  @action\n  selectConsortium(consortium) {\n    this.model.set('consortium', consortium);\n  }\n\n  @action\n  selectBillingCountry(billingCountry) {\n    if (billingCountry) {\n      this.model.set('billingInformation.country', {\n        code: billingCountry.code,\n        name: countryList.name(billingCountry.code)\n      });\n    } else {\n      this.model.set('billingInformation.country', null);\n    }\n    this.model.set('billingInformation.state', null);\n    this.set('countries', countryList);\n  }\n\n  @action\n  selectBillingState(billingState) {\n    this.model.set('billingInformation.state', billingState);\n  }\n\n  @action\n  searchRor(query) {\n    let self = this;\n    this.store\n      .query('ror', { query })\n      .then(function (organizations) {\n        self.set('organizations', organizations);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('organizations', []);\n      });\n  }\n\n  @action\n  selectRor(ror) {\n    if (ror) {\n      this.model.set('rorId', ror.id);\n      this.model.set('name', ror.name);\n      this.model.set('displayName', ror.name);\n    } else {\n      this.model.set('rorId', null);\n    }\n    this.set('organizations', []);\n  }\n\n  @action\n  async didSelectFiles(file) {\n    // Type is FileUpload\n    file.readAsDataURL().then((logo) => {\n        this.model.set('logo', logo)\n      },\n      (err) => {\n        console.error(err);\n      }\n    );\n  }\n\n  @action\n  searchContact(query) {\n    let filteredContacts = this.model.contacts.filter(function (contact) {\n      return contact.displayName\n        .toLowerCase()\n        .startsWith(query.toLowerCase());\n    });\n    this.model.set('filteredContacts', filteredContacts);\n  }\n\n  @action\n  selectVotingContact(contact) {\n    if (contact) {\n      let votingContact = {\n        givenName: contact.givenName,\n        familyName: contact.familyName,\n        email: contact.email\n      };\n      this.model.set('votingContact', votingContact);\n    }\n  }\n\n  @action\n  selectServiceContact(contact) {\n    if (contact) {\n      let serviceContact = {\n        givenName: contact.givenName,\n        familyName: contact.familyName,\n        email: contact.email\n      };\n      this.model.set('serviceContact', serviceContact);\n    }\n  }\n\n  @action\n  selectSecondaryServiceContact(contact) {\n    if (contact) {\n      let secondaryServiceContact = {\n        givenName: contact.givenName,\n        familyName: contact.familyName,\n        email: contact.email\n      };\n      this.model.set('secondaryServiceContact', secondaryServiceContact);\n    } else {\n      this.model.set('secondaryServiceContact', null);\n    }\n  }\n\n  @action\n  selectTechnicalContact(contact) {\n    if (contact) {\n      let technicalContact = {\n        givenName: contact.givenName,\n        familyName: contact.familyName,\n        email: contact.email\n      };\n      this.model.set('technicalContact', technicalContact);\n    } else {\n      this.model.set('technicalContact', null);\n    }\n  }\n\n  @action\n  selectSecondaryTechnicalContact(contact) {\n    if (contact) {\n      let secondaryTechnicalContact = {\n        givenName: contact.givenName,\n        familyName: contact.familyName,\n        email: contact.email\n      };\n      this.model.set('secondaryTechnicalContact', secondaryTechnicalContact);\n    } else {\n      this.model.set('secondaryTechnicalContact', null);\n    }\n  }\n\n  @action\n  selectBillingContact(contact) {\n    if (contact) {\n      let billingContact = {\n        givenName: contact.givenName,\n        familyName: contact.familyName,\n        email: contact.email\n      };\n      this.model.set('billingContact', billingContact);\n    }\n  }\n\n  @action\n  selectSecondaryBillingContact(contact) {\n    if (contact) {\n      let secondaryBillingContact = {\n        givenName: contact.givenName,\n        familyName: contact.familyName,\n        email: contact.email\n      };\n      this.model.set('secondaryBillingContact', secondaryBillingContact);\n    } else {\n      this.model.set('secondaryBillingContact', null);\n    }\n  }\n\n  @action\n  doSubmit() {\n    let self = this;\n    let m = this.model;\n    // iterate through all contacts and update roles\n    this.model.get('contacts').forEach(function (contact) {\n      let roleName = [];\n      if (contact.email === m.get('votingContact.email')) {\n        roleName.push('voting');\n      }\n      if (contact.email === m.get('serviceContact.email')) {\n        roleName.push('service');\n      }\n      if (contact.email === m.get('secondaryServiceContact.email')) {\n        roleName.push('secondary_service');\n      }\n      if (contact.email === m.get('technicalContact.email')) {\n        roleName.push('technical');\n      }\n      if (contact.email === m.get('secondaryTechnicalContact.email')) {\n        roleName.push('secondary_technical');\n      }\n      if (contact.email === m.get('billingContact.email')) {\n        roleName.push('billing');\n      }\n      if (contact.email === m.get('secondaryBillingContact.email')) {\n        roleName.push('secondary_billing');\n      }\n\n      // Stop unnecessary requests to save contacts by adding some conditions.\n      if (\n        contact.roleName == null ||\n        !_arr.isEqual(contact.roleName, roleName)\n      ) {\n        contact.set('roleName', roleName);\n        contact.save();\n      }\n    });\n\n    this.model\n      .save()\n      .then(function (provider) {\n        self.router.transitionTo('providers.show', provider);\n      })\n      // Report the reason (error) to the user.  Without that, the form appears to be frozen.\n      .catch(function (reason) {\n        console.debug(reason);\n        let msg = reason?.errors[0]?.title\n          ? reason.errors[0].title\n          : reason?.title\n          ? reason.title\n          : 'Cause is unknown.  Please contact support.';\n\n        self\n          .get('flashMessages')\n          .danger(\n            'An error occurred and while saving this provider.' + '  ' + msg\n          );\n      });\n  }\n\n  @action\n  cancel() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('providers.show', this.model);\n  }\n\n  // This helps to manage the validation state of the country field.  The field is required, but we don't want to show it as invalid until the user has interacted with it.\n  @action\n  activateCountryField() {\n    return this.set('isCountryFieldActive', true);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ModifyController extends Controller {\n  queryParams = [\n    'query',\n    'region',\n    'consortium-id',\n    'organization-type',\n    'focus-area',\n    'include-deleted',\n    'non-profit-status',\n    'has-required-contacts',\n    'year',\n    'sort',\n    'page',\n    'size'\n  ];\n  query = null;\n  region = null;\n  'consortium-id' = null;\n  'organization-type' = null;\n  'focus-area' = null;\n  'include-deleted' = null;\n  'non-profit-status' = null;\n  'has-required-contacts' = null;\n  year = null;\n  sort = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport countryList from 'iso-3166-country-list';\nimport {\n  organizationTypeList,\n  memberTypeList,\n  focusAreaList,\n  nonProfitStatusList\n} from 'bracco/models/provider';\nimport { UploadFile, UploadFileReader } from 'ember-file-upload';\n\n@classic\nexport default class NewController extends Controller {\n  @service\n  store;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  countryList = countryList;\n  countries = null;\n  organizationTypeList = organizationTypeList;\n  organizationTypes = organizationTypeList;\n  memberTypeList = memberTypeList;\n  memberTypes = memberTypeList;\n  focusAreaList = focusAreaList;\n  focusAreas = focusAreaList;\n  nonProfitStatusList = nonProfitStatusList;\n  nonProfitStatuses = nonProfitStatusList;\n  isCountryFieldActive = false;\n\n  init(...args) {\n    super.init(...args);\n\n    this.organizations = this.organizations || [];\n    this.consortia = this.consortia || [];\n  }\n\n  @action\n  searchCountryAction(query) {\n    let countries = countryList.filter(function (country) {\n      return country.name.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('countries', countries);\n  }\n\n\n  @action\n  selectCountryAction(country) {\n    if (country == null) { \n      this.model.organization.set('country', null);\n    } else {\n      this.model.organization.set('country', country);\n      this.set('countries', countryList);\n    }\n  }\n\n  @action\n  searchOrganizationType(query) {\n    let organizationTypes = organizationTypeList.filter(function (\n      organizationType\n    ) {\n      return organizationType.startsWith(query.toLowerCase());\n    });\n    this.set('organizationTypes', organizationTypes);\n  }\n\n  @action\n  selectOrganizationType(organizationType) {\n    this.model.organization.set('organizationType', organizationType);\n    this.set('organizationTypes', organizationTypeList);\n  }\n\n  @action\n  searchMemberType(query) {\n    let memberTypes = memberTypeList.filter(function (memberType) {\n      return memberType.startsWith(query.toLowerCase());\n    });\n    this.set('memberTypes', memberTypes);\n  }\n\n  @action\n  selectMemberType(memberType) {\n    this.model.organization.set('memberType', memberType);\n    this.set('memberTypes', memberTypeList);\n  }\n\n  @action\n  searchFocusArea(query) {\n    let focusAreas = focusAreaList.filter(function (focusArea) {\n      return focusArea.startsWith(query.toLowerCase());\n    });\n    this.set('focusAreas', focusAreas);\n  }\n\n  @action\n  selectFocusArea(focusArea) {\n    this.model.organization.set('focusArea', focusArea);\n    this.set('focusAreas', focusAreaList);\n  }\n\n  @action\n  searchNonProfitStatus(query) {\n    let nonProfitStatuses = nonProfitStatusList.filter(function (\n      nonProfitStatus\n    ) {\n      return nonProfitStatus.startsWith(query.toLowerCase());\n    });\n    this.set('nonProfitStatuses', nonProfitStatuses);\n  }\n\n  @action\n  selectNonProfitStatus(nonProfitStatus) {\n    this.model.organization.set('nonProfitStatus', nonProfitStatus);\n    this.set('nonProfitStatuses', nonProfitStatusList);\n  }\n\n  @action\n  searchConsortium(query) {\n    let self = this;\n    this.store\n      .query('provider', {\n        query,\n        'member-type': 'consortium',\n        sort: 'name',\n        'page[size]': 100\n      })\n      .then(function (consortia) {\n        self.set('consortia', consortia);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('consortia', []);\n      });\n  }\n\n  @action\n  selectConsortium(consortium) {\n    this.model.organization.set('consortium', consortium);\n  }\n\n  @action\n  searchRor(query) {\n    let self = this;\n    this.store\n      .query('ror', { query })\n      .then(function (organizations) {\n        self.set('organizations', organizations);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('organizations', []);\n      });\n  }\n\n  @action\n  selectRor(ror) {\n    if (ror) {\n      this.model.organization.set('rorId', ror.id);\n      this.model.organization.set('name', ror.name);\n      this.model.organization.set('displayName', ror.name);\n    } else {\n      this.model.organization.set('rorId', null);\n    }\n    this.set('organizations', []);\n  }\n\n  @action\n  didSelectFiles(file) {\n    // Type is UploadFile\n    file.readAsDataURL().then((logo) => {\n        this.model.set('logo', logo)\n      },\n      (err) => {\n        console.error(err);\n      }\n    );\n  }\n\n  @action\n  doSubmit() {\n    let self = this;\n    this.model.organization\n      .save()\n      .then(function (provider) {\n        self.router.transitionTo('providers.show', provider.id);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancel() {\n    this.model.organization.rollbackAttributes();\n    this.router.transitionTo(\n      'providers.show.organizations',\n      this.get('model.provider.id')\n    );\n  }\n  // This helps to manage the validation state of the country field.  The field is required, but we don't want to show it as invalid until the user has interacted with it.\n  @action\n  activateCountryField() {\n    console.log(\"GOT HERE - new.js:212 - organization\");\n    console.log(\"isCountryFieldActive: \" + this.isCountryFieldActive);\n    return this.set('isCountryFieldActive', true);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class PrefixesController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ModifyController extends Controller {\n  queryParams  = [\n    'query',\n    'client-id',\n    'consortium-organization-id',\n    'year',\n    'state',\n    'sort',\n    'page',\n    'size'\n  ];\n  query = null;\n  'client-id' = null;\n  'consortium-organization-id' = null;\n  year = null;\n  state = null;\n  sort = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class NewController extends Controller {\n  @service\n  store;\n\n  disabled = true;\n\n  @service('prefixes')\n  prefixes_service;\n\n  @service\n  router;\n\n  init(...args) {\n    super.init(...args);\n    this.prefixes = this.prefixes || [];\n  }\n\n  searchPrefix(query) {\n    let self = this;\n    let prefixes = [];\n\n    this.prefixes_service\n      .get_prefixes(ENV.SHOW_N_PREFIXES, null, query)\n      .then((values) => {\n        values.forEach(function (value) {\n          if (value.constructor.modelName == 'prefix') {\n            let prefix = value;\n            prefixes.push(prefix);\n          } else {\n            throw new Error('Expecting a prefix object. Got something else.');\n          }\n        });\n\n        self.set('prefixes', prefixes);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('prefixes', []);\n      });\n  }\n\n  @action\n  searchPrefixAction(query) {\n    this.searchPrefix(query);\n  }\n\n  @action\n  selectPrefixAction(prefix) {\n    this.model['provider-prefix'].set('prefix', prefix);\n    this.set('disabled', false);\n    this.searchPrefix(null);\n  }\n\n  @action\n  submitAction() {\n    let self = this;\n    this.model['provider-prefix']\n      .save()\n      .then(function (providerPrefix) {\n        self.set('disabled', true);\n        // We need a timeout because of ElasticSearch indexing\n        setTimeout(() => {\n          self.router.transitionTo(\n            'providers.show.prefixes',\n            providerPrefix.get('provider.id')\n          );\n        }, 1200);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.model['provider-prefix'].set('prefix', null);\n    this.set('disabled', true);\n    this.router.transitionTo(\n      'providers.show.prefixes',\n      this.get('model.provider')\n    );\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ShowController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class DeleteController extends Controller {\n  @service\n  router;\n\n  @service\n  store;\n\n  @action\n  submitAction() {\n    let self = this;\n    let providerId = this.model.get('provider.id');\n    this.store\n      .findRecord('providerPrefix', this.model.get('id'), {\n        backgroundReload: false\n      })\n      .then(function (providerPrefix) {\n        providerPrefix.destroyRecord().then(function () {\n          // We need a timeout because of ElasticSearch indexing\n          setTimeout(() => {\n            self.router.transitionTo('providers.show.prefixes', providerId);\n          }, 1200);\n        });\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo(\n      'providers.show.prefixes',\n      this.model.get('provider.id')\n    );\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class IndexController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n\n@classic\nexport default class ModifyController extends Controller {\n  @service\n  store;\n\n  queryParams = [\n    'query',\n    'year',\n    'client-type',\n    'repository-type',\n    'certificate',\n    'software',\n    'sort',\n    'page',\n    'size'\n  ];\n  query = null;\n  year = null;\n  'client-type' = null;\n  'repository-type' = null;\n  certificate = null;\n  software = null;\n  sort = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\r\nimport { action, computed } from '@ember/object';\r\nimport { inject as service } from '@ember/service';\r\nimport Controller from '@ember/controller';\r\nimport { isBlank } from '@ember/utils';\r\nimport { capitalize } from '@ember/string';\r\nimport langs from 'langs';\r\nimport { A } from '@ember/array';\r\nimport { clientTypeList, softwareList } from 'bracco/models/repository';\r\n\r\n@classic\r\nexport default class NewController extends Controller {\r\n  @service\r\n  store;\r\n\r\n  @service\r\n  router;\r\n\r\n  @service\r\n  flashMessages;\r\n\r\n  softwareList = softwareList;\r\n  softwares = softwareList;\r\n  isSoftwareFieldActive = false;\r\n  clientTypeList = clientTypeList;\r\n  clientTypes = clientTypeList;\r\n\r\n  @computed('clientTypeList', 'model.repository.clientType')\r\n  get clientType() {\r\n    return this.clientTypeList.find(\r\n      (item) => item.value === this.get('model.repository.clientType')\r\n    );\r\n  }\r\n\r\n  init(...args) {\r\n    super.init(...args);\r\n\r\n    this.repositories = this.repositories || [];\r\n  }\r\n\r\n  @action\r\n  searchClientTypeAction(query) {\r\n    let clientTypes = this.clientTypeList.filter(function (clientType) {\r\n      return clientType.label.toLowerCase().startsWith(query.toLowerCase());\r\n    });\r\n    this.set('clientTypes', clientTypes);\r\n  }\r\n\r\n  @action\r\n  selectClientTypeAction(clientType) {\r\n    this.model.repository.set('clientType', clientType.value);\r\n    this.set('clientTypes', this.clientTypeList);\r\n  }\r\n\r\n  @action\r\n  searchSoftwareAction(query) {\r\n    let softwares = softwareList.filter(function (software) {\r\n      return software.toLowerCase().startsWith(query.toLowerCase());\r\n    });\r\n    this.set('softwares', softwares);\r\n  }\r\n\r\n  @action\r\n  selectSoftwareAction(software) {\r\n    this.model.repository.set('software', software);\r\n    this.set('softwares', softwareList);\r\n  }\r\n\r\n  @action\r\n  addLanguageAction() {\r\n    this.model.repository.get('language').pushObject(null);\r\n  }\r\n\r\n  @action\r\n  addCertificateAction() {\r\n    this.model.repository.get('certificate').pushObject(null);\r\n  }\r\n\r\n  @action\r\n  addRepositoryTypeAction() {\r\n    this.model.repository.get('repositoryType').pushObject(null);\r\n  }\r\n\r\n  @action\r\n  submitAction(repository) {\r\n    let self = this;\r\n\r\n    // Remove all whitespace on domains.\r\n    if (this.model.repository.get('domains')) {\r\n      let domains = this.model.repository.get('domains');\r\n      this.model.repository.set('domains', domains.replace(/\\s/g, ''));\r\n    }\r\n\r\n    repository.set(\r\n      'language',\r\n      repository.get('language').filter(function (language) {\r\n        return !isBlank(language);\r\n      })\r\n    );\r\n\r\n    repository.set(\r\n      'repositoryType',\r\n      repository.get('repositoryType').filter(function (repositoryType) {\r\n        return !isBlank(repositoryType);\r\n      })\r\n    );\r\n\r\n    repository.set(\r\n      'certificate',\r\n      repository.get('certificate').filter(function (certificate) {\r\n        return !isBlank(certificate);\r\n      })\r\n    );\r\n\r\n    repository\r\n      .save()\r\n      .then(function (repository) {\r\n        repository.prefixes.then(function (prefixes) {\r\n          self.router.transitionTo(\r\n            'repositories.show.settings',\r\n            self.model.repository.id,\r\n            {\r\n              queryParams: {\r\n                assignedPrefix:\r\n                  prefixes.length > 0 ? prefixes.firstObject.id : null\r\n              }\r\n            }\r\n          );\r\n        });\r\n      })\r\n      .catch(function (reason) {\r\n        console.debug(reason);\r\n        let msg = reason?.errors[0]?.title\r\n          ? reason.errors[0].title\r\n          : reason?.title\r\n          ? reason.title\r\n          : 'Cause is unknown.  Please contact support.';\r\n\r\n        self\r\n          .get('flashMessages')\r\n          .danger(\r\n            'An error occurred and while saving this repository.' + '  ' + msg\r\n          );\r\n      });\r\n  }\r\n\r\n  @action\r\n  cancelAction() {\r\n    this.model.repository.rollbackAttributes();\r\n    this.router.transitionTo(\r\n      'providers.show.repositories',\r\n      this.get('model.provider.id')\r\n    );\r\n  }\r\n\r\n  // This helps to manage the validation state of the software field.  The field is required, but we don't want to show it as invalid until the user has interacted with it.\r\n  @action\r\n  activateSoftwareField() {\r\n    return this.set('isSoftwareFieldActive', true);\r\n  }\r\n}\r\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class SettingsController extends Controller {\n  @service\n  flashMessages;\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class RepositoriesController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n\n@classic\nexport default class ModifyController extends Controller {\n  @service\n  flashMessages;\n\n  queryParams = [\n    'query',\n    'year',\n    'provider-id',\n    'client-type',\n    'repository-type',\n    'certificate',\n    'software',\n    'include-deleted',\n    'sort',\n    'page',\n    'size'\n  ];\n  query = null;\n  year = null;\n  'provider-id' = null;\n  'client-type' = null;\n  'repository-type' = null;\n  certificate = null;\n  software = null;\n  'include-deleted' = null;\n  sort = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ShowController extends Controller {\n  @service\n  flashMessages;\n\n  // Enables showing newly assigned prefix on result page of repository creation.\n  queryParams = ['assignedPrefix'];\n\n  assignedPrefix = null;\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class ChangeController extends Controller {\n  @service\n  currentUser;\n\n  @service\n  router;\n\n  @action\n  togglePasswordAction() {\n    const togglePassword = document.querySelector('#togglePassword');\n    const password = document.querySelector('#password-input-field');\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    togglePassword.classList.toggle('bi-eye');\n  }\n\n  @action\n  toggleConfirmPasswordAction() {\n    const togglePassword = document.querySelector('#toggleConfirmPassword');\n    const password = document.querySelector('#confirm-password-input-field');\n    const type = password.getAttribute('type') === 'password' ? 'text' : 'password';\n    password.setAttribute('type', type);\n    togglePassword.classList.toggle('bi-eye');\n  }\n\n  @action\n  submitAction(repository) {\n    let self = this;\n    repository\n      .save()\n      .then(function (repository) {\n        var controller = self;\n        controller.get('model').set('passwordInput', '');\n        controller.get('model').set('confirmPasswordInput', '');\n        return repository;\n      })\n      .then(function (repository) {\n        self.router.transitionTo('repositories.show', repository);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    let controller = this;\n    controller.get('model').set('passwordInput', '');\n    controller.get('model').set('confirmPasswordInput', '');\n    this.model.rollbackAttributes();\n    this.router.transitionTo('repositories.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class DeleteController extends Controller {\n  @service\n  store;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  @action\n  submitAction() {\n    let self = this;\n    let providerId = this.model.get('provider.id');\n    this.store\n      .findRecord('repository', this.model.get('id'), {\n        backgroundReload: false\n      })\n      .then(function (repository) {\n        repository\n          .destroyRecord()\n          .then(function () {\n            self.router.transitionTo(\n              'providers.show.repositories',\n              providerId\n            );\n          })\n          .catch(function (reason) {\n            console.debug(reason);\n            self\n              .get('flashMessages')\n              .danger(\n                'An error occurred while deleting this repository.  Please contact support.'\n              );\n          });\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('repositories.show', this.model);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class DoisController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class EditController extends Controller {\n  queryParams = [\n    'query',\n    'resource-type-id',\n    'provider-id',\n    'client-id',\n    'person-id',\n    'affiliation-id',\n    'prefix',\n    'year',\n    'state',\n    'sort',\n    'created',\n    'registered',\n    'schema-version',\n    'source',\n    'link-check-status',\n    'certificate',\n    'page',\n    'size',\n    'affiliation',\n    'publisher'\n  ];\n  query = null;\n  'resource-type-id' = null;\n  'provider-id' = null;\n  'client-id' = null;\n  'person-id' = null;\n  'affiliation-id' = null;\n  prefix = null;\n  year = null;\n  created = null;\n  registered = null;\n  state = null;\n  source = null;\n  'link-check-status' = null;\n  sort = '-updated';\n  'schema-version' = null;\n  certificate = null;\n  page = 1;\n  size = 25;\n  affiliation = true;\n  publisher = true;\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport { isBlank } from '@ember/utils';\nimport { A } from '@ember/array';\n\n@classic\nexport default class NewController extends Controller {\n  @service\n  spdx;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  setEvent(state) {\n    if (state === 'registered') {\n      return 'register';\n    } else if (state === 'findable') {\n      return 'publish';\n    } else {\n      return null;\n    }\n  }\n\n  @action\n  submitAction(doi) {\n    doi.set('event', this.setEvent(doi.get('state')));\n\n    // schema-version will be determined by API\n    doi.set('schemaVersion', 'http://datacite.org/schema/kernel-4');\n\n    // track use of the form\n    doi.set('source', 'fabricaForm');\n\n    // don't send xml\n    doi.set('xml', null);\n\n    // only store name identifiers and affiliations with a value\n    A(doi.get('creators')).forEach((creator) => {\n      creator.set(\n        'nameIdentifiers',\n        A(creator.get('nameIdentifiers')).filter(function (nameIdentifier) {\n          return !isBlank(nameIdentifier.nameIdentifier);\n        })\n      );\n      creator.set(\n        'affiliation',\n        A(creator.get('affiliation')).filter(function (affiliation) {\n          return !isBlank(affiliation.name);\n        })\n      );\n      if (creator.nameType === 'Organizational') {\n        creator.set('givenName', null);\n        creator.set('familyName', null);\n      }\n    });\n\n    // only store titles with a title text\n    doi.set(\n      'titles',\n      A(doi.get('titles')).filter(function (title) {\n        return !isBlank(title.title);\n      })\n    );\n\n    // only store subject with a subject text\n    doi.set(\n      'subjects',\n      A(doi.get('subjects')).filter(function (subject) {\n        return !isBlank(subject.subject);\n      })\n    );\n\n    // only store name identifiers and affiliations for contributor with a value\n    doi.set(\n      'contributors',\n      A(doi.get('contributors')).filter(function (contributor) {\n        let nameIdentifiers = A(contributor.get('nameIdentifiers')).filter(\n          function (nameIdentifier) {\n            return !isBlank(nameIdentifier.nameIdentifier);\n          }\n        );\n        let affiliation = A(contributor.get('affiliation')).filter(function (\n          affiliation\n        ) {\n          return !isBlank(affiliation.name);\n        });\n\n        let contributorType = !isBlank(contributor.contributorType)\n          ? [contributor.contributorType]\n          : [];\n\n        return (\n          !isBlank(nameIdentifiers) ||\n          !isBlank(affiliation) ||\n          !isBlank(contributorType) ||\n          !isBlank(contributor.name)\n        );\n      })\n    );\n\n    // only store dates with a text\n    doi.set(\n      'dates',\n      A(doi.get('dates')).filter(function (date) {\n        return (\n          !isBlank(date.date) ||\n          !isBlank(date.dateType) ||\n          !isBlank(date.dateInformation)\n        );\n      })\n    );\n\n    // only store related identifiers with a text\n    doi.set(\n      'relatedIdentifiers',\n      A(doi.get('relatedIdentifiers')).filter(function (identifier) {\n        return (\n          !isBlank(identifier.relatedIdentifier) ||\n          !isBlank(identifier.relatedIdentifierType) ||\n          !isBlank(identifier.relationType) ||\n          !isBlank(identifier.relatedMetadataScheme) ||\n          !isBlank(identifier.resourceTypeGeneral)\n        );\n      })\n    );\n\n    // only store descriptions with a description text\n    doi.set(\n      'descriptions',\n      A(doi.get('descriptions')).filter(function (description) {\n        return !isBlank(description.description);\n      })\n    );\n\n    doi.set(\n      'geoLocations',\n      A(doi.get('geoLocations')).filter(function (geoLocation) {\n        let point =\n          isBlank(geoLocation.geoLocationPoint.pointLongitude) &&\n          isBlank(geoLocation.geoLocationPoint.pointLatitude)\n            ? []\n            : [geoLocation.geoLocationPoint];\n        let box =\n          isBlank(geoLocation.geoLocationBox.westBoundLongitude) &&\n          isBlank(geoLocation.geoLocationBox.eastBoundLongitude) &&\n          isBlank(geoLocation.geoLocationBox.southBoundLatitude) &&\n          isBlank(geoLocation.geoLocationBox.northBoundLatitude)\n            ? []\n            : [geoLocation.geoLocationBox];\n\n        return (\n          !isBlank(geoLocation.geoLocationPlace) ||\n          !isBlank(point) ||\n          !isBlank(box)\n        );\n      })\n    );\n\n    // only store identifiers with a  text\n    doi.set(\n      'alternateIdentifiers',\n      A(doi.get('alternateIdentifiers')).filter(function (\n        alternateIdentifier\n      ) {\n        return !isBlank(alternateIdentifier.alternateIdentifier);\n      })\n    );\n\n    // only store rights with a text\n    doi.set(\n      'rightsList',\n      A(doi.get('rightsList')).filter(function (rights) {\n        return !isBlank(rights.rights);\n      })\n    );\n\n    // only store sizes with a text\n    doi.set(\n      'sizes',\n      A(doi.get('sizes')).filter(function (size) {\n        return !isBlank(size);\n      })\n    );\n\n    // only store formats with a text\n    doi.set(\n      'formats',\n      A(doi.get('formats')).filter(function (format) {\n        return !isBlank(format);\n      })\n    );\n\n    // only store funding references with a text\n    doi.set(\n      'fundingReferences',\n      A(doi.get('fundingReferences')).filter(function (fundingReference) {\n        return (\n          !isBlank(fundingReference.funderName) ||\n          !isBlank(fundingReference.funderIdentifier) ||\n          !isBlank(fundingReference.funderIdentifierType) ||\n          !isBlank(fundingReference.awardNumber) ||\n          !isBlank(fundingReference.awardTitle)\n        );\n      })\n    );\n\n    // only store related items with a type, a relation type and a title\n    doi.set(\n      'relatedItems',\n      A(doi.get('relatedItems')).filter(function (item) {\n        let titles = A(item.get('titles')).filter(function (title) {\n          return !isBlank(title.title);\n        });\n\n        return (\n          !isBlank(item.relatedItemType) ||\n          !isBlank(item.relationType) ||\n          !isBlank(titles)\n        );\n      })\n    );\n\n    let self = this;\n    doi\n      .save()\n      .then(function (doi) {\n        self.router.transitionTo('dois.show', doi);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self\n          .get('flashMessages')\n          .warning('An error occured and this DOI could not be saved.', {\n            componentName: 'doi-error'\n          });\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo(\n      'repositories.show.dois',\n      this.get('model.repository.id')\n    );\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class UploadController extends Controller {\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  setEvent(state) {\n    if (state === 'registered') {\n      return 'register';\n    } else if (state === 'findable') {\n      return 'publish';\n    } else {\n      return null;\n    }\n  }\n\n  @action\n  submitAction(doi) {\n    doi.set('event', this.setEvent(doi.get('state')));\n\n    // Reset content to null rather than use default values\n    // We want the API to work out the values from the file XML\n    doi.set('formats', null);\n    doi.set('sizes', null);\n    doi.set('version', null);\n    doi.set('creators', null);\n    doi.set('titles', null);\n    doi.set('descriptions', null);\n    doi.set('publisher', null);\n    doi.set('publicationYear', null);\n    doi.set('types', null);\n    doi.set('rightsList', null);\n    doi.set('schemaVersion', null);\n    doi.set('subjects', null);\n    doi.set('language', null);\n    doi.set('contributors', null);\n    doi.set('alternateIdentifiers', null);\n    doi.set('relatedIdentifiers', null);\n    doi.set('fundingReferences', null);\n    doi.set('geoLocations', null);\n    doi.set('dates', null);\n    doi.set('relatedItems', null);\n\n    let self = this;\n    doi\n      .save()\n      .then(function (doi) {\n        self.router.transitionTo('dois.show', doi);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.get('flashMessages').warning(\n          'An error occured and this DOI could not be saved.' +\n            (reason?.title ? '  ' + reason.title : '')\n          /*\n              reason.errors[0]\n              ? reason.errors[0].title\n              : reason\n              */\n        );\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo(\n      'repositories.show.dois',\n      this.get('model.repository.id')\n    );\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport { A } from '@ember/array';\nimport { capitalize } from '@ember/string';\nimport langs from 'langs';\nimport { clientTypeList, softwareList } from 'bracco/models/repository';\n\n@classic\nexport default class EditController extends Controller {\n  @service\n  currentUser;\n\n  @service\n  store;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  edit = false;\n  change = false;\n  delete = false;\n  provider = null;\n  setPassword = false;\n  softwareList = softwareList;\n  softwares = softwareList;\n  isSoftwareFieldActive = false;\n  clientTypeList = clientTypeList;\n  clientTypes = clientTypeList;\n\n  @computed('clientTypeList', 'model.clientType')\n  get clientType() {\n    return this.clientTypeList.find(\n      (item) => item.value === this.get('model.clientType')\n    );\n  }\n\n  init(...args) {\n    super.init(...args);\n\n    this.repositories = this.repositories || [];\n  }\n\n  @action\n  searchClientTypeAction(query) {\n    let clientTypes = this.clientTypeList.filter(function (clientType) {\n      return clientType.label.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('clientTypes', clientTypes);\n  }\n\n  @action\n  selectClientTypeAction(clientType) {\n    this.model.set('clientType', clientType.value);\n    this.set('clientTypes', this.clientTypeList);\n  }\n\n  @action\n  searchSoftwareAction(query) {\n    let softwares = softwareList.filter(function (software) {\n      return software.toLowerCase().startsWith(query.toLowerCase());\n    });\n    this.set('softwares', softwares);\n  }\n\n  @action\n  selectSoftwareAction(software) {\n    this.model.set('software', software);\n    this.set('softwares', softwareList);\n  }\n\n  @action\n  addLanguageAction() {\n    this.model.get('language').pushObject(null);\n  }\n\n  @action\n  addCertificateAction() {\n    this.model.get('certificate').pushObject(null);\n  }\n\n  @action\n  addRepositoryTypeAction() {\n    this.model.get('repositoryType').pushObject(null);\n  }\n\n  @action\n  submitAction(repository) {\n    let self = this;\n    repository\n      .save()\n      .then(function (repository) {\n        self.router.transitionTo('repositories.show', repository);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.model.rollbackAttributes();\n    this.router.transitionTo('repositories.show', this.model);\n  }\n\n  // This helps to manage the validation state of the software field.  The field is required, but we don't want to show it as invalid until the user has interacted with it.\n  @action\n  activateSoftwareField() {\n    return this.set('isSoftwareFieldActive', true);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class PrefixesController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n\n@classic\nexport default class EditController extends Controller {\n  prefixes = service();\n  queryParams = ['query', 'provider-id', 'client-id', 'year', 'page', 'size'];\n  query = null;\n  'provider-id' = null;\n  'client-id' = null;\n  year = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class NewController extends Controller {\n  @service\n  store;\n\n  disabled = true;\n\n  @service('prefixes')\n  prefixes_service;\n\n  @service\n  router;\n\n  init(...args) {\n    super.init(...args);\n    this.prefixes = this.prefixes || [];\n  }\n\n  searchPrefix(query) {\n    let self = this;\n    let prefixes = [];\n\n    this.prefixes_service\n      .get_prefixes(\n        ENV.SHOW_N_PREFIXES,\n        this.model.repository.get('provider.id'),\n        query\n      )\n      .then((values) => {\n        let provider = this.model.repository.provider;\n\n        values.forEach(function (value) {\n          if (value.constructor.modelName == 'provider-prefix') {\n            prefixes.push(value);\n          } else if (value.constructor.modelName == 'prefix') {\n            let prefix = value;\n            let providerPrefix;\n            providerPrefix = self.store.createRecord('providerPrefix', {\n              provider,\n              prefix\n            });\n            prefixes.push(providerPrefix);\n          } else {\n            throw new Error('Expecting a prefix object. Got something else.');\n          }\n        });\n\n        self.set('provider-prefixes', prefixes);\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        self.set('provider-prefixes', []);\n      });\n  }\n\n  @action\n  searchPrefixAction(query) {\n    this.searchPrefix(query);\n  }\n\n  @action\n  selectPrefixAction(providerPrefix) {\n    this.model['repository-prefix'].set('provider-prefix', providerPrefix);\n    this.model['repository-prefix'].set(\n      'prefix',\n      providerPrefix.get('prefix')\n    );\n    this.set('disabled', false);\n  }\n\n  @action\n  submitAction() {\n    if (this.model['repository-prefix'].get('provider-prefix')) {\n      let self = this;\n\n      this.model['repository-prefix'].get('provider-prefix').then((m) => {\n        if (typeof m.get('createdAt') == 'undefined') {\n          m.save().then(function (value) {\n            self.model['repository-prefix']\n              .save()\n              .then(function (repositoryPrefix) {\n                self.set('disabled', true);\n                // We need a timeout because of ElasticSearch indexing\n                setTimeout(() => {\n                  self.router.transitionTo(\n                    'repositories.show.prefixes',\n                    repositoryPrefix.get('repository.id')\n                  );\n                }, 1200);\n              })\n              .catch(function (reason) {\n                console.debug(reason);\n              });\n          });\n        } else {\n          self.model['repository-prefix']\n            .save()\n            .then(function (repositoryPrefix) {\n              self.set('disabled', true);\n              // We need a timeout because of ElasticSearch indexing\n              setTimeout(() => {\n                self.router.transitionTo(\n                  'repositories.show.prefixes',\n                  repositoryPrefix.get('repository.id')\n                );\n              }, 1200);\n            })\n            .catch(function (reason) {\n              console.debug(reason);\n            });\n        }\n      });\n    } else {\n      this.router.transitionTo(\n        'repositories.show.prefixes',\n        this.get('model.repository')\n      );\n    }\n  }\n\n  @action\n  cancelAction() {\n    this.model['repository-prefix'].set('provider-prefix', null);\n    this.model['repository-prefix'].set('prefix', null);\n    this.set('disabled', true);\n    this.router.transitionTo(\n      'repositories.show.prefixes',\n      this.get('model.repository')\n    );\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ShowController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class DeleteController extends Controller {\n  @service\n  router;\n\n  @service\n  store;\n\n  @action\n  submitAction() {\n    let self = this;\n    let repositoryId = this.model.get('repository.id');\n    this.store\n      .findRecord('repositoryPrefix', this.model.get('id'), {\n        backgroundReload: false\n      })\n      .then(function (repositoryPrefix) {\n        repositoryPrefix.destroyRecord().then(function () {\n          // We need a timeout because of ElasticSearch indexing\n          setTimeout(() => {\n            self.router.transitionTo(\n              'repositories.show.prefixes',\n              repositoryId\n            );\n          }, 1200);\n        });\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n      });\n  }\n\n  @action\n  cancelAction() {\n    this.router.transitionTo(\n      'repositories.show.prefixes',\n      this.model.get('repository.id')\n    );\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class IndexController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class SettingsController extends Controller {\n  @service\n  flashMessages;\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class TransferRepositoryController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ModifyController extends Controller {\n  queryParams = ['query', 'provider-id', 'page', 'size'];\n  query = null;\n  'provider-id' = null;\n  page = 1;\n  size = 25;\n};\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class RepositoryPrefixesController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class ResetController extends Controller {\n  @service\n  session;\n\n  requestSent = false;\n  errorMessage = null;\n\n  @action\n  sendLink() {\n    this.set('requestSent', false);\n    let { identification } = this;\n    let self = this;\n    let url = ENV.API_URL + '/reset';\n\n    fetch(url, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/x-www-form-urlencoded'\n      },\n      body: 'username=' + identification\n    })\n      .then(function (response) {\n        if (response.ok) {\n          response.json().then(function (data) {\n            if (data.message === 'Queued. Thank you.') {\n              self.set('requestSent', true);\n            } else {\n              self.set('errorMessage', data.message);\n            }\n          });\n        } else {\n          console.debug(response);\n        }\n      })\n      .catch(function (reason) {\n        self.set(\n          'errorMessage',\n          (reason.errors && reason.errors[0].title) || JSON.stringify(reason)\n        );\n      });\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class SettingsController extends Controller {\n  @service\n  flashMessages;\n}\n","import classic from 'ember-classic-decorator';\nimport { action, computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Controller from '@ember/controller';\nimport ENV from 'bracco/config/environment';\nimport { isPresent } from '@ember/utils';\nimport reasonUtil from '../utils/reason-util';\n\n@classic\nexport default class SignInController extends Controller {\n  @service\n  session;\n\n  @service\n  router;\n\n  queryParams = ['globus'];\n  globus = null;\n  orcidLogoUrl = ENV.CDN_URL + '/images/orcid.png';\n  globusLogoUrl = ENV.CDN_URL + '/images/globus.png';\n  oidcAuthUrl = 'http://localhost:8080/users/auth/globus'; // ENV.FABRICA_URL + '/authorize',\n\n  @computed('globus')\n  get showGlobus() {\n    return isPresent(this.globus);\n  }\n\n  @action\n  authenticate() {\n    let self = this;\n    let { identification, password } = this;\n    identification = identification.trim();\n    this.session\n      .authenticate('authenticator:oauth2', identification, password)\n      .then(() => {\n        self.router.transitionTo('/');\n      })\n      .catch((reason) => {\n        this.set(\n          'errorMessage',\n          reasonUtil(reason, { default: 'Error logging in.' })\n        );\n      });\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class UsersController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n\n@classic\nexport default class EditController extends Controller {\n  @service\n  flashMessages;\n\n  queryParams = [\n    'query',\n    'year',\n    'provider-id',\n    'repository-id',\n    'sort',\n    'page',\n    'size'\n  ];\n  query = null;\n  'provider-id' = null;\n  'repository-id' = null;\n  sort = null;\n  page = 1;\n  size = 25;\n}\n","import classic from 'ember-classic-decorator';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class ShowController extends Controller {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport Controller from '@ember/controller';\n\n@classic\nexport default class EditController extends Controller {\n  queryParams = [\n    'query',\n    'resource-type-id',\n    'provider-id',\n    'client-id',\n    'prefix',\n    'year',\n    'created',\n    'registered',\n    'state',\n    'sort',\n    'source',\n    'link-check-status',\n    'schema-version',\n    'certificate',\n    'has-citations',\n    'has-views',\n    'has-downloads',\n    'page',\n    'size',\n    'affiliation'\n  ];\n  query = null;\n  'resource-type-id' = null;\n  'provider-id' = null\n  'client-id' = null;\n  prefix = null;\n  year = null;\n  created = null;\n  registered = null;\n  state = null;\n  source = null;\n  'link-check-status' = null;\n  sort = null;\n  'schema-version' = null;\n  certificate = null;\n  'has-citations' = null;\n  'has-views' = null;\n  'has-downloads' = null;\n  page = 1;\n  size = 25;\n  affiliation = true;\n}\n","export default {\n  time: {\n    hhmmss: {\n      hour: 'numeric',\n      minute: 'numeric',\n      second: 'numeric'\n    }\n  },\n  date: {\n    hhmmss: {\n      hour: 'numeric',\n      minute: 'numeric',\n      second: 'numeric'\n    }\n  },\n  number: {\n    EUR: {\n      style: 'currency',\n      currency: 'EUR',\n      minimumFractionDigits: 2,\n      maximumFractionDigits: 2\n    },\n    USD: {\n      style: 'currency',\n      currency: 'USD',\n      minimumFractionDigits: 2,\n      maximumFractionDigits: 2\n    }\n  }\n};\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\nimport ENV from 'bracco/config/environment';\n\nexport function analyticsDashboardScriptUrl() {\n  return htmlSafe(ENV.ANALYTICS_URL + '/js/embed.host.js');\n}\n\nexport default buildHelper(analyticsDashboardScriptUrl);\n","import { helper } from '@ember/component/helper';\nimport config from '../config/environment';\nimport {\n  shaRegExp,\n  versionRegExp,\n  versionExtendedRegExp,\n} from 'ember-cli-app-version/utils/regexp';\n\nexport function appVersion(_, hash = {}) {\n  const version = config.APP.version;\n  // e.g. 1.0.0-alpha.1+4jds75hf\n\n  // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n  let versionOnly = hash.versionOnly || hash.hideSha;\n  let shaOnly = hash.shaOnly || hash.hideVersion;\n\n  let match = null;\n\n  if (versionOnly) {\n    if (hash.showExtended) {\n      match = version.match(versionExtendedRegExp); // 1.0.0-alpha.1\n    }\n    // Fallback to just version\n    if (!match) {\n      match = version.match(versionRegExp); // 1.0.0\n    }\n  }\n\n  if (shaOnly) {\n    match = version.match(shaRegExp); // 4jds75hf\n  }\n\n  return match ? match[0] : version;\n}\n\nexport default helper(appVersion);\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\nimport ENV from 'bracco/config/environment';\n\nexport function cdnUrl() {\n  return htmlSafe(ENV.CDN_URL);\n}\n\nexport default buildHelper(cdnUrl);\n","import { helper } from '@ember/component/helper';\n\nconst labelList = {\n  givenName: 'given name',\n  familyName: 'family name'\n};\n\nexport function contactFormErrors([model]) {\n  let errorAttributes = model.validations.errors.mapBy('attribute');\n\n  return errorAttributes\n    .map(function (attribute) {\n      return labelList[attribute] || attribute;\n    })\n    .join(', ');\n}\n\nexport default helper(contactFormErrors);\n","import { helper as buildHelper } from '@ember/component/helper';\nimport ENV from 'bracco/config/environment';\n\nexport function contentNegotiationUrl([doi], hash) {\n  let mimeType = '';\n  switch (hash.format) {\n    case 'datacite':\n      mimeType = 'application/vnd.datacite.datacite+xml';\n      break;\n    case 'datacite_json':\n      mimeType = 'application/vnd.datacite.datacite+json';\n      break;\n    case 'crosscite_json':\n      mimeType = 'application/vnd.crosscite.crosscite+json';\n      break;\n    case 'schema_org':\n      mimeType = 'application/vnd.schemaorg.ld+json';\n      break;\n    case 'codemeta':\n      mimeType = 'application/vnd.codemeta.ld+json';\n      break;\n    case 'citeproc':\n      mimeType = 'application/vnd.citationstyles.csl+json';\n      break;\n    case 'jats':\n      mimeType = 'application/vnd.jats+xml';\n      break;\n    case 'bibtex':\n      mimeType = 'application/x-bibtex';\n      break;\n    case 'ris':\n      mimeType = 'application/x-research-info-systems';\n      break;\n    default:\n      mimeType = 'application/vnd.schemaorg.ld+json';\n  }\n\n  return ENV.API_URL + '/dois/' + mimeType + '/' + doi;\n}\n\nexport default buildHelper(contentNegotiationUrl);\n","import { helper as buildHelper } from '@ember/component/helper';\n\nexport function currentYear([add]) {\n  let incr = add ? parseInt(add) : 0;\n  return new Date().getFullYear() + parseInt(incr);\n}\n\nexport default buildHelper(currentYear);\n","import { helper } from '@ember/component/helper';\n\nconst labelList = {};\n\nexport function doiFormErrors([model]) {\n  let errorAttributes = model.validations.errors.mapBy('attribute');\n\n  // check validation errors for data model fragments if not in draft state\n  if (model.state !== 'draft' && ['new', 'edit'].includes(model.mode)) {\n    if (model.titles) {\n      model.titles.forEach((title) => {\n        errorAttributes = errorAttributes.concat(\n          title.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.creators) {\n      model.creators.forEach((creator) => {\n        errorAttributes = errorAttributes.concat(\n          creator.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.contributors) {\n      model.contributors.forEach((contributor) => {\n        errorAttributes = errorAttributes.concat(\n          contributor.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.alternateIdentifiers) {\n      model.alternateIdentifiers.forEach((alternateIdentifier) => {\n        errorAttributes = errorAttributes.concat(\n          alternateIdentifier.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.subjects) {\n      model.subjects.forEach((subject) => {\n        errorAttributes = errorAttributes.concat(\n          subject.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.relatedIdentifiers) {\n      model.relatedIdentifiers.forEach((relatedIdentifier) => {\n        errorAttributes = errorAttributes.concat(\n          relatedIdentifier.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.fundingReferences) {\n      model.fundingReferences.forEach((fundingReference) => {\n        errorAttributes = errorAttributes.concat(\n          fundingReference.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.dates) {\n      model.dates.forEach((date) => {\n        errorAttributes = errorAttributes.concat(\n          date.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.geoLocations) {\n      model.geoLocations.forEach((geoLocation) => {\n        errorAttributes = errorAttributes.concat(\n          geoLocation.geoLocationPoint.validations.errors.mapBy('attribute')\n        );\n        errorAttributes = errorAttributes.concat(\n          geoLocation.geoLocationBox.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.rightsList) {\n      model.rightsList.forEach((rights) => {\n        errorAttributes = errorAttributes.concat(\n          rights.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n    if (model.relatedItems) {\n      model.relatedItems.forEach((relatedItem) => {\n        errorAttributes = errorAttributes.concat(\n          relatedItem.validations.errors.mapBy('attribute')\n        );\n      });\n    }\n  }\n\n  return errorAttributes\n    .map(function (attribute) {\n      return labelList[attribute] || attribute;\n    })\n    .join(', ');\n}\n\nexport default helper(doiFormErrors);\n","import { helper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\n\nexport function formatContact([contact]) {\n  let name = null;\n  let email = null;\n\n  // use email as fallback if not givenName or familyName\n  if (contact.email) {\n    email = contact.email;\n  }\n\n  if (contact.givenName || contact.familyName) {\n    name = [contact.givenName, contact.familyName].join(' ');\n  }\n\n  if (name && email) {\n    return htmlSafe('<a href=\"mailto:' + email + '\">' + name + '</a>');\n  } else if (email) {\n    return htmlSafe('<a href=\"mailto:' + email + '\">' + email + '</a>');\n  } else if (name) {\n    return name;\n  } else {\n    return '';\n  }\n}\n\nexport default helper(formatContact);\n","import { helper as buildHelper } from '@ember/component/helper';\n\nexport function formatCreator([creators], hash) {\n  let limit = creators.length;\n  if (hash.showOnly) {\n    limit = hash.showOnly;\n  }\n  if (limit > hash.index + 2) {\n    return ', ';\n  } else if (limit > hash.index + 1) {\n    return ' & ';\n  } else {\n    return '';\n  }\n}\n\nexport default buildHelper(formatCreator);\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport { default } from 'ember-intl/helpers/format-date';\n","import { helper } from '@ember/component/helper';\nimport ISO6391 from 'iso-639-1';\n\nexport function formatLanguage([language]) {\n  return ISO6391.getName(language);\n}\n\nexport default helper(formatLanguage);\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport { default } from 'ember-intl/helpers/format-list';\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport { default } from 'ember-intl/helpers/format-message';\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { isPresent } from '@ember/utils';\nimport _string from 'lodash/string';\n\nexport function formatMetadata([publicationYear], hash) {\n  let container = '';\n  if (hash.container && hash.container.title) {\n    container = ' via ' + hash.container.title;\n  } else if (hash.publisher && hash.publisher.name) {\n    container = ' via ' + hash.publisher.name;\n  }\n  let published = publicationYear ? ' published ' + publicationYear : '';\n  let version = hash.version ? 'Version ' + hash.version + ' of ' : '';\n  let resourceType = _string.startCase(\n    hash.resourceType || hash.resourceTypeGeneral || ''\n  );\n  let metadata = [version, resourceType, published, container].join(' ').trim();\n\n  if (isPresent(metadata)) {\n    return metadata;\n  } else {\n    return null;\n  }\n}\n\nexport default buildHelper(formatMetadata);\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport { default } from 'ember-intl/helpers/format-number';\n","import { helper as buildHelper } from '@ember/component/helper';\n\nexport function formatNumbers(counter) {\n  if (counter < 1e3) {\n    return counter;\n  }\n  if (counter >= 1e3 && counter < 1e6) {\n    return `${+(counter / 1e3).toFixed(1)}K`;\n  }\n  if (counter >= 1e6 && counter < 1e9) {\n    return `${+(counter / 1e6).toFixed(1)}M`;\n  }\n  if (counter >= 1e9 && counter < 1e12) {\n    return `${+(counter / 1e9).toFixed(1)}B`;\n  }\n  if (counter >= 1e12) {\n    return `${+(counter / 1e12).toFixed(1)}T`;\n  }\n  return counter;\n}\n\nexport default buildHelper(formatNumbers);\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport { default } from 'ember-intl/helpers/format-relative';\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\nimport HtmlEntities from 'html-entities';\nimport SanitizeHtml from 'sanitize-html';\nimport checkForTex from '../utils/check-for-tex';\n\nconst Entities = HtmlEntities.AllHtmlEntities;\nconst entities = new Entities();\n\n// sanitize and truncate text\nexport function formatText([text], hash) {\n  text = entities.decode(text);\n\n  let allowedTags = [\n    'strong',\n    'em',\n    'b',\n    'i',\n    'code',\n    'pre',\n    'sub',\n    'sup',\n    'br'\n  ];\n  let sanitizedText = SanitizeHtml(text, { allowedTags });\n\n  let out = '';\n\n  // Doesn't parse math correctly (so leave it out for now).\n  if (!checkForTex(sanitizedText)) {\n    let words = sanitizedText.split(' ');\n    let len = hash.limit || 500;\n\n    if (words) {\n      out = words.splice(0, len).join(' ');\n\n      if (words.length > len) {\n        out += ' …';\n      }\n    }\n  } else {\n    out = sanitizedText;\n  }\n\n  return htmlSafe(out);\n}\n\nexport default buildHelper(formatText);\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport { default } from 'ember-intl/helpers/format-time';\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\nimport ENV from 'bracco/config/environment';\n\nexport function homeUrl() {\n  return htmlSafe(ENV.HOME_URL);\n}\n\nexport default buildHelper(homeUrl);\n","import { helper as buildHelper } from '@ember/component/helper';\n\nexport function isEqual([leftSide, rightSide]) {\n  return leftSide === rightSide;\n}\n\nexport default buildHelper(isEqual);\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\nimport ENV from 'bracco/config/environment';\n\nexport function links() {\n  return ENV.LINKS;\n}\n\nexport default buildHelper(links);\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\nimport ENV from 'bracco/config/environment';\n\nexport function orcidURL() {\n  return htmlSafe(ENV.ORCID_URL);\n}\n\nexport default buildHelper(orcidURL);\n","import pageTitle from 'ember-page-title/helpers/page-title';\n\nexport default pageTitle;\n","import pluralize from 'ember-inflector/lib/helpers/pluralize';\nexport default pluralize;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Helper from '@ember/component/helper';\n\n@classic\nexport default class PrefixesAvailable extends Helper {\n  @service\n  prefixes;\n\n  compute([provider_id]) {\n    return this.prefixes.available(provider_id);\n  }\n}\n","import { helper } from '@ember/component/helper';\nimport { isPresent } from '@ember/utils';\n\nconst providerLabelList = {\n  symbol: 'member ID',\n  confirmSymbol: 'confirm member ID',\n  globusUuid: 'globus UUID',\n  rorId: 'ROR ID',\n  name: 'provider name',\n  displayName: 'provider display name',\n  systemEmail: 'system email',\n  votingContact: 'voting representative',\n  serviceContact: 'service contact',\n  billingContact: 'billing contact',\n  'billingInformation.state': 'billing state/province information'\n};\nconst organizationLabelList = {\n  symbol: 'member ID',\n  confirmSymbol: 'confirm member ID',\n  globusUuid: 'globus UUID',\n  rorId: 'ROR ID',\n  name: 'organization name',\n  displayName: 'organization display name',\n  systemEmail: 'system email',\n  serviceContact: 'service contact'\n};\n\nexport function providerFormErrors([model]) {\n  let errorAttributes = model.validations.errors.mapBy('attribute');\n\n  // check validation errors for embedded data model fragments\n  // but only if contacts exist\n  if (model.get('contacts').length > 0) {\n    if (\n      model.serviceContact &&\n      isPresent(model.serviceContact.validations.errors)\n    ) {\n      errorAttributes = errorAttributes.concat(\n        'service contact ' +\n          model.serviceContact.validations.errors.mapBy('attribute')\n      );\n    }\n\n    // the following fields are disabled for consortium organizations\n    if (\n      model.memberType !== 'consortium_organization' &&\n      model.memberType !== 'developer'\n    ) {\n      if (\n        model.billingContact &&\n        isPresent(model.billingContact.validations.errors)\n      ) {\n        errorAttributes = errorAttributes.concat(\n          'billing contact ' +\n            model.billingContact.validations.errors.mapBy('attribute')\n        );\n      }\n      if (\n        model.votingContact &&\n        isPresent(model.votingContact.validations.errors)\n      ) {\n        errorAttributes = errorAttributes.concat(\n          'voting contact ' +\n            model.votingContact.validations.errors.mapBy('attribute')\n        );\n      }\n    }\n  }\n\n  return errorAttributes\n    .map(function (attribute) {\n      if (model.memberType === 'consortium_organization') {\n        return organizationLabelList[attribute] || attribute;\n      } else {\n        return providerLabelList[attribute] || attribute;\n      }\n    })\n    .join(', ');\n}\n\nexport default helper(providerFormErrors);\n","import { helper } from '@ember/component/helper';\n\nexport function randomNumber([max]) {\n  let min = 0;\n  return Math.floor(Math.random() * (parseInt(max) - min + 1) + min);\n}\n\nexport default helper(randomNumber);\n","import { helper } from '@ember/component/helper';\nimport { isPresent } from '@ember/utils';\n\nconst labelList = {\n  symbol: 'repository ID',\n  confirmSymbol: 'confirm repository ID',\n  globusUuid: 'globus UUID',\n  name: 'repository name',\n  alternateName: 'repository alternate name',\n  systemEmail: 'system email'\n};\n\nexport function repositoryFormErrors([model]) {\n  let errorAttributes = model.validations.errors.mapBy('attribute');\n\n  // check validation errors for embed data model fragments\n  if (\n    model.serviceContact &&\n    isPresent(model.serviceContact.validations.errors)\n  ) {\n    errorAttributes = errorAttributes.concat(\n      'service contact ' +\n        model.serviceContact.validations.errors.mapBy('attribute')\n    );\n  }\n\n  return errorAttributes\n    .map(function (attribute) {\n      return labelList[attribute] || attribute;\n    })\n    .join(', ');\n}\n\nexport default helper(repositoryFormErrors);\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\nimport ENV from 'bracco/config/environment';\n\nexport function searchURL() {\n  return htmlSafe(ENV.SEARCH_URL);\n}\n\nexport default buildHelper(searchURL);\n","import { helper as buildHelper } from '@ember/component/helper';\n\nexport function settingsRoute([route]) {\n  if (route == 'index') {\n    return 'settings';\n  }\n  return route + '.settings';\n}\n\nexport default buildHelper(settingsRoute);\n","import singularize from 'ember-inflector/lib/helpers/singularize';\nexport default singularize;\n","import { helper as buildHelper } from '@ember/component/helper';\nimport { htmlSafe } from '@ember/template';\nimport ENV from 'bracco/config/environment';\n\nexport function siteTitle() {\n  return htmlSafe(ENV.SITE_TITLE);\n}\n\nexport default buildHelper(siteTitle);\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport { default } from 'ember-intl/helpers/t';\n","import { helper } from '@ember/component/helper';\n\nexport function twitterUrl([twitter]) {\n  if (twitter) {\n    return 'https://twitter.com/' + twitter.substr(1);\n  } else {\n    return null;\n  }\n}\n\nexport default helper(twitterUrl);\n","import initializerFactory from 'ember-cli-app-version/initializer-factory';\nimport config from '../config/environment';\n\nlet name, version;\nif (config.APP) {\n  name = config.APP.name;\n  version = config.APP.version;\n}\n\nexport default {\n  name: 'App Version',\n  initialize: initializerFactory(name, version),\n};\n","import ContainerDebugAdapter from 'ember-resolver/resolvers/classic/container-debug-adapter';\n\nexport default {\n  name: 'container-debug-adapter',\n\n  initialize() {\n    let app = arguments[1] || arguments[0];\n\n    app.register('container-debug-adapter:main', ContainerDebugAdapter);\n  }\n};\n","import Inflector from 'ember-inflector';\n\nexport function initialize(/* application */) {\n  const inflector = Inflector.inflector;\n\n}\n\nexport default {\n  name: 'custom-inflector-rules',\n  initialize\n};\n","import 'ember-data';\n\nimport setupContainer from 'ember-data/setup-container';\n\n/*\n  This code initializes EmberData in an Ember application.\n*/\nexport default {\n  name: 'ember-data',\n  initialize: setupContainer,\n};\n","import ResponsiveInitializer from 'ember-responsive/initializers/responsive';\nexport default ResponsiveInitializer;\n","import ENV from '../config/environment';\nimport Configuration from 'ember-simple-auth/configuration';\nimport setupSession from 'ember-simple-auth/initializers/setup-session';\nimport setupSessionRestoration from 'ember-simple-auth/initializers/setup-session-restoration';\nimport Adaptive from 'ember-simple-auth/session-stores/adaptive';\nimport LocalStorage from 'ember-simple-auth/session-stores/local-storage';\nimport Cookie from 'ember-simple-auth/session-stores/cookie';\n\nexport default {\n  name: 'ember-simple-auth',\n\n  initialize(registry) {\n    const config = ENV['ember-simple-auth'] || {};\n    config.rootURL = ENV.rootURL || ENV.baseURL;\n    Configuration.load(config);\n\n    registry.register('session-store:adaptive', Adaptive);\n    registry.register('session-store:cookie', Cookie);\n    registry.register('session-store:local-storage', LocalStorage);\n\n    setupSession(registry);\n    setupSessionRestoration(registry);\n  }\n};\n","import ENV from '../config/environment';\nimport Config from 'ember-bootstrap/config';\nimport { registerLibrary } from 'ember-bootstrap/version';\n\nexport function initialize(/* container, application */) {\n  Config.load(ENV['ember-bootstrap'] || {});\n  registerLibrary();\n}\n\nexport default {\n  name: 'load-bootstrap-config',\n  initialize,\n};\n","// Import the full module to ensure monkey-patches are applied before any store\n// instances are created. Sad face for side-effects :(\nimport 'ember-data-model-fragments';\nimport 'ember-data-model-fragments/ext';\n\nexport default {\n  name: 'fragmentTransform',\n  after: 'ember-data',\n\n  initialize() {},\n};\n","import { initialize } from 'ember-responsive/initializers/responsive';\n\nexport default {\n  name: 'responsive',\n  initialize\n};\n","/* exists only for things that historically used \"after\" or \"before\" */\nexport default {\n  name: 'ember-data',\n  initialize() {},\n};\n","// This is only needed for backwards compatibility and will be removed in the\n// next major release of ember-simple-auth. Unfortunately, there is no way to\n// deprecate this without hooking into Ember's internals…\nexport default {\n  name: 'ember-simple-auth',\n\n  initialize() {}\n};\n","export default {\n  name: 'head-browser',\n  initialize() {\n    // do nothing!\n    // this functionality has been moved into addon/components/head-layout.js\n    // This is only here in order to not break existing addons relying on this, e.g. ember-page-title.\n  },\n};\n","// https://api.emberjs.com/ember/release/classes/Mixin?show=inherited\nimport Ember from 'ember';\nimport ISO6391 from 'iso-639-1';\nimport { computed } from '@ember/object';\n\nexport default Ember.Mixin.create({\n  language: computed('fragment.lang', function () {\n    return ISO6391.getName(this.get('fragment.lang')) !== ''\n      ? ISO6391.getName(this.get('fragment.lang'))\n      : this.get('fragment.lang');\n  })\n});\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\n\n@classic\nexport default class Affiliation extends Fragment {\n  @attr('string')\n  name;\n\n  @attr('string', { defaultValue: null })\n  affiliationIdentifier;\n\n  @attr('string', { defaultValue: null })\n  affiliationIdentifierScheme;\n\n  @attr('string', { defaultValue: null })\n  schemeUri;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { isBlank } from '@ember/utils';\n\nconst Validations = buildValidations({\n  alternateIdentifierType: [\n    validator('presence', {\n      presence: true,\n      message: 'Alternate Identifier must include Identifier Type',\n      disabled: computed('model.alternateIdentifier', function () {\n        return isBlank(this.model.get('alternateIdentifier'));\n      })\n    })\n  ]\n});\n\n@classic\nexport default class AlternateIdentifier extends Fragment.extend(Validations) {\n  @attr('string', { defaultValue: null })\n  alternateIdentifier;\n\n  @attr('string', { defaultValue: null })\n  alternateIdentifierType;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport Fragment from 'ember-data-model-fragments/fragment';\n\nconst Validations = buildValidations({\n  email: [\n    validator('email-format', {\n      allowBlank: true\n    })\n  ]\n});\n\n@classic\nexport default class ContactFragment extends Fragment.extend(Validations) {\n  @attr('string')\n  email;\n\n  @attr('string')\n  givenName;\n\n  @attr('string')\n  familyName;\n\n  @computed('givenName', 'familyName')\n  get name() {\n    let name = null;\n    if (this.givenName || this.familyName) {\n      name = [this.givenName, this.familyName].join(' ');\n    }\n    return name;\n  }\n\n  @computed('name', 'email')\n  get displayName() {\n    if (this.name) {\n      return this.name.trim();\n    } else {\n      return this.email;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport Model, { attr, belongsTo } from '@ember-data/model';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport _string from 'lodash/string';\n\nconst Validations = buildValidations({\n  email: [\n    validator('presence', {\n      presence: true\n    }),\n    validator('email-format', {\n      allowBlank: true\n    }),\n    validator('unique-email')\n  ],\n  confirmDelete: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model', function () {\n        return this.model.get('isNew');\n      })\n    }),\n    validator('inclusion', {\n      in: ['Delete'],\n      message: \"The entered text does not match 'Delete'.\",\n      disabled: computed('model', function () {\n        return this.model.get('isNew');\n      })\n    })\n  ]\n});\n\n@classic\nexport default class Contact extends Model.extend(Validations) {\n  @belongsTo('provider', {\n    async: true\n  })\n  provider;\n\n  @attr()\n  meta;\n\n  @attr('string')\n  email;\n\n  @attr('string')\n  givenName;\n\n  @attr('string')\n  familyName;\n\n  @attr('string')\n  name;\n\n  @attr()\n  roleName;\n\n  @attr('date')\n  created;\n\n  @attr('date')\n  updated;\n\n  @attr('date')\n  deleted;\n\n  @computed('name', 'email')\n  get displayName() {\n    if (this.name) {\n      return this.name;\n    } else {\n      return this.email;\n    }\n  }\n\n  @computed('roleName')\n  get roleNameString() {\n    if (this.roleName) {\n      return this.roleName\n        .map(function (role) {\n          return _string.upperFirst(_string.lowerCase(role));\n        })\n        .join(', ');\n    } else {\n      return null;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { fragmentArray } from 'ember-data-model-fragments/attributes';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { A } from '@ember/array';\nimport { isBlank } from '@ember/utils';\n\nconst Validations = buildValidations({\n  name: [\n    validator('presence', {\n      presence: true\n      // disabled: computed('model.state', function() {\n      //   return this.model.get('state') === 'draft';\n      // }),\n    })\n  ],\n  contributorType: [\n    validator('presence', {\n      presence: true,\n      message: 'Contributors must include a contributor type',\n      disabled: computed('model.name', function () {\n        return isBlank(this.model.get('name'));\n      })\n    }),\n    validator('contributor-type', {\n      disabled: computed('model.name', function () {\n        return isBlank(this.model.get('name'));\n      })\n    })\n  ]\n});\n\n@classic\nexport default class Contributor extends Fragment.extend(Validations) {\n  @attr('string')\n  name;\n\n  @attr('string', { defaultValue: null })\n  contributorType;\n\n  @attr('string', { defaultValue: null })\n  givenName;\n\n  @attr('string', { defaultValue: null })\n  familyName;\n\n  @attr('string', { defaultValue: null })\n  nameType;\n\n  @fragmentArray('name-identifier')\n  nameIdentifiers;\n\n  @fragmentArray('affiliation')\n  affiliation;\n\n  @computed('name', 'givenName', 'familyName')\n  get displayName() {\n    return this.familyName\n      ? [this.givenName, this.familyName].join(' ')\n      : this.name;\n  }\n\n  @computed('nameIdentifiers')\n  get orcid() {\n    if (this.nameIdentifiers) {\n      let id = A(this.nameIdentifiers).findBy('nameIdentifierScheme', 'ORCID');\n      if (\n        typeof id !== 'undefined' &&\n        typeof id.nameIdentifier !== 'undefined'\n      ) {\n        return id.nameIdentifier.substr(id.nameIdentifier.indexOf('0'));\n      } else {\n        return null;\n      }\n    } else {\n      return null;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { fragmentArray } from 'ember-data-model-fragments/attributes';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { A } from '@ember/array';\n\nconst Validations = buildValidations({\n  name: [\n    validator('presence', {\n      presence: true\n      // disabled: computed('model.state', function() {\n      //   return this.model.get('state') === 'draft';\n      // }),\n    })\n  ]\n});\n\n@classic\nexport default class Creator extends Fragment.extend(Validations) {\n  @attr('string')\n  name;\n\n  @attr('string', { defaultValue: null })\n  givenName;\n\n  @attr('string', { defaultValue: null })\n  familyName;\n\n  @attr('string', { defaultValue: null })\n  nameType;\n\n  @fragmentArray('name-identifier')\n  nameIdentifiers;\n\n  @fragmentArray('affiliation')\n  affiliation;\n\n  @computed('name', 'givenName', 'familyName')\n  get displayName() {\n    return this.familyName\n      ? [this.givenName, this.familyName].join(' ')\n      : this.name;\n  }\n\n  @computed('nameIdentifiers')\n  get orcid() {\n    if (this.nameIdentifiers) {\n      let id = A(this.nameIdentifiers).findBy('nameIdentifierScheme', 'ORCID');\n      if (id && id.nameIdentifier) {\n        return id.nameIdentifier.substr(id.nameIdentifier.indexOf('0'));\n      } else {\n        return null;\n      }\n    } else {\n      return null;\n    }\n  }\n}\n","import Inflector from 'ember-inflector';\n\nconst inflector = Inflector.inflector;\n\ninflector.uncountable('status');\ninflector.uncountable('media');\ninflector.uncountable('auth');\n\n// Modules must have an export, so we just export an empty object here\nexport default {};\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\n\nconst Validations = buildValidations({\n  dateType: [\n    validator('presence', {\n      presence: true,\n      message: 'Date type must be included when adding a Date',\n      disabled: computed('model.date', function () {\n        return this.model.get('date') == null;\n      })\n    })\n  ],\n  date: [\n    validator('presence', {\n      presence: true,\n      message: 'Date must be included when adding a Date',\n      disabled: computed('model.state', function () {\n        return this.model.get('state') === 'draft';\n      })\n    })\n  ]\n});\n\n@classic\nexport default class Date extends Fragment.extend(Validations) {\n  @attr('string')\n  date;\n\n  @attr('string')\n  dateType;\n\n  @attr('string')\n  dateInformation;\n}\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\n// import { validator, buildValidations } from 'ember-cp-validations';\n// import { computed } from '@ember/object';\n\n// const Validations = buildValidations({\n//   description: [\n//     validator('format', {\n//       regex: /^([^,]+)(, \\w+(\\(\\w+\\))?, \\w+(-\\w+)?)?$/,\n//       message: 'Series information not in recommended format of series title, followed by comma and optional volume(issue), firstpage-lastpage',\n//       disabled: computed('model.descriptionType', function() {\n//         return this.model.get('descriptionType') !== 'SeriesInformation';\n//       }),\n//       isWarning: true,\n//     }),\n//   ],\n// });\n\n@classic\nexport default class Description extends Fragment {\n  @attr('string', { defaultValue: null })\n  description;\n\n  @attr('string', { defaultValue: 'Abstract' })\n  descriptionType;\n\n  @attr('string', { defaultValue: null })\n  lang;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { reads, equal } from '@ember/object/computed';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport ENV from 'bracco/config/environment';\nimport Model, { attr, belongsTo } from '@ember-data/model';\nimport { fragment, fragmentArray } from 'ember-data-model-fragments/attributes';\nimport { A } from '@ember/array';\n\nconst Validations = buildValidations({\n  details: [\n    validator('belongs-to', {\n      disabled: computed('model.{mode,state}', function () {\n        return (\n          !['new', 'edit'].includes(this.model.get('mode')) ||\n          this.model.get('state') === 'draft'\n        );\n      })\n    })\n  ],\n  confirmDoi: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model.mode', function () {\n        return this.model.get('mode') !== 'delete';\n      })\n    }),\n    validator('confirmation', {\n      on: 'doi',\n      message: 'DOI does not match',\n      disabled: computed('model.mode', function () {\n        return this.model.get('mode') !== 'delete';\n      })\n    })\n  ],\n  suffix: [\n    validator('presence', {\n      presence: true,\n      message: \"The DOI suffix can't be blank.\",\n      disabled: computed('model.mode', function () {\n        return !['new', 'upload'].includes(this.model.get('mode'));\n      })\n    }),\n    validator('format', {\n      regex: /^[A-Za-z0-9][-._;()/:A-Za-z0-9]+$/,\n      message: 'The DOI suffix contains invalid characters.',\n      disabled: computed('model.mode', function () {\n        return !['new', 'upload'].includes(this.model.get('mode'));\n      })\n    }),\n    validator('unique-doi', {\n      dependentKeys: ['model.prefix'],\n      disabled: computed('model.mode', function () {\n        return !['new', 'upload'].includes(this.model.get('mode'));\n      })\n    })\n  ],\n  url: [\n    validator('url-format', {\n      require_tld: false,\n      message: 'Please enter a valid URL that the DOI should resolve to.',\n      disabled: computed('model.state', function () {\n        return this.model.get('state') === 'draft';\n      })\n    }),\n    validator('url-domain', {\n      disabled: computed('model.state', function () {\n        return this.model.get('state') === 'draft';\n      })\n    })\n  ],\n  'publisher.name': [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model.{mode,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          !['new', 'edit'].includes(this.model.get('mode'))\n        );\n      })\n    })\n  ],\n  publicationYear: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model.{mode,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          !['new', 'edit'].includes(this.model.get('mode'))\n        );\n      })\n    }),\n    validator('date', {\n      onOrAfter: '1000',\n      onOrBefore: computed('model.maxMintFutureOffset', function () {\n        let mydate = (\n          new Date().getFullYear() +\n          Number(this.model.get('maxMintFutureOffset'))\n        ).toString();\n        return mydate;\n      }),\n      precision: 'year',\n      format: 'YYYY',\n      errorFormat: 'YYYY',\n      message: computed('model.maxMintFutureOffset', function () {\n        return `Must be a year between 1000 and ${\n          new Date().getFullYear() + this.model.get('maxMintFutureOffset')\n        }.`;\n      }),\n      disabled: computed('model.{mode,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          !['new', 'edit'].includes(this.model.get('mode'))\n        );\n      })\n    })\n  ],\n  'types.resourceTypeGeneral': [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model.{mode,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          !['new', 'edit'].includes(this.model.get('mode'))\n        );\n      })\n    }),\n    validator('resource-type', {\n      presence: true,\n      disabled: computed('model.{mode,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          !['new', 'edit'].includes(this.model.get('mode'))\n        );\n      })\n    })\n  ],\n  xml: [\n    validator('presence', {\n      presence: true,\n      message: 'Please include valid metadata.',\n      disabled: computed('model.{mode,state}', function () {\n        return (\n          !['upload', 'modify'].includes(this.model.get('mode')) ||\n          this.model.get('state') === 'draft'\n        );\n      })\n    }),\n    validator('metadata', {\n      allowBlank: true,\n      dependentKeys: ['model.doi'],\n      disabled: computed('model.{mode,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          !['upload', 'modify'].includes(this.model.get('mode'))\n        );\n      })\n    })\n  ],\n  language: [\n    validator('format', {\n      allowBlank: true,\n      regex: /^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/,\n      message: 'Must be a valid Language code.'\n    })\n  ]\n});\n\n@classic\nexport default class Doi extends Model.extend(Validations) {\n  @belongsTo('repository', {\n    async: true\n  })\n  repository;\n\n  @attr('string')\n  doi;\n\n  @attr('string', { defaultValue: null })\n  confirmDoi;\n\n  @attr('string')\n  prefix;\n\n  @attr('string')\n  suffix;\n\n  @attr('string')\n  url;\n\n  @attr()\n  contentUrl;\n\n  @fragmentArray('creator', { defaultValue: [] })\n  creators;\n\n  @fragmentArray('title', { defaultValue: [] })\n  titles;\n\n  @fragment('publisher', { defaultValue: {} })\n  publisher;\n\n  @attr()\n  bcontainer;\n\n  @attr('number')\n  publicationYear;\n\n  @fragmentArray('subject', { defaultValue: [] })\n  subjects;\n\n  @fragmentArray('contributor', { defaultValue: [] })\n  contributors;\n\n  @fragmentArray('alternateIdentifier', {\n    defaultValue: []\n  })\n  alternateIdentifiers;\n\n  @fragmentArray('date', { defaultValue: [] })\n  dates;\n\n  @attr('string')\n  language;\n\n  @attr()\n  types;\n\n  @fragmentArray('relatedIdentifier', { defaultValue: [] })\n  relatedIdentifiers;\n\n  @attr('array')\n  sizes;\n\n  @attr('array')\n  formats;\n\n  @attr('string')\n  version;\n\n  @fragmentArray('rights', { defaultValue: [] })\n  rightsList;\n\n  @fragmentArray('description', { defaultValue: [] })\n  descriptions;\n\n  @fragmentArray('geoLocation', { defaultValue: [] })\n  geoLocations;\n\n  @fragmentArray('fundingReference', { defaultValue: [] })\n  fundingReferences;\n\n  @fragmentArray('relatedItem', { defaultValue: [] })\n  relatedItems;\n\n  @attr()\n  landingPage;\n\n  @attr('xml')\n  xml;\n\n  @attr('string')\n  metadataVersion;\n\n  @attr('string')\n  schemaVersion;\n\n  @attr('string', { defaultValue: 'fabrica' })\n  source;\n\n  @attr('string')\n  state;\n\n  @attr('string', { defaultValue: null })\n  breason;\n\n  @attr('boolean', { defaultValue: true })\n  isActive;\n\n  @attr('string')\n  event;\n\n  @attr('date')\n  created;\n\n  @attr('date')\n  registered;\n\n  @attr('date')\n  updated;\n\n  @attr('string')\n  mode;\n\n  @attr()\n  meta;\n\n  @attr('number')\n  citationCount;\n\n  @attr('number')\n  viewCount;\n\n  @attr('number')\n  downloadCount;\n\n  @computed('doi', 'repository')\n  get identifier() {\n    return ENV.HANDLE_SERVER + '/' + this.doi;\n  }\n\n  @equal('state', 'draft')\n  isDraft;\n\n  @reads('registered')\n  showCitation;\n\n  @computed('schemaVersion')\n  get schemaVersionString() {\n    if (this.schemaVersion) {\n      return A(this.schemaVersion.split('-')).get('lastObject');\n    } else {\n      return null;\n    }\n  }\n\n  @computed('titles.length')\n  get title() {\n    if (this.titles.length > 0) {\n      return A(this.titles).get('firstObject').get('title');\n    } else {\n      return null;\n    }\n  }\n\n  @computed('descriptions.length')\n  get description() {\n    if (this.descriptions.length > 0) {\n      return A(this.descriptions).get('firstObject').get('description');\n    } else {\n      return null;\n    }\n  }\n\n  @computed\n  get maxMintFutureOffset() {\n    return ENV.MAX_MINT_FUTURE_OFFSET;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Model, { attr } from '@ember-data/model';\n\n@classic\nexport default class Funder extends Model {\n  @attr()\n  meta;\n\n  @attr('string')\n  name;\n\n  @attr('array')\n  altNames;\n\n  @attr('string')\n  location;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { isBlank } from '@ember/utils';\n\nconst Validations = buildValidations({\n  funderName: [\n    validator('presence', {\n      presence: true,\n      message: 'Funder Name must be included if you input a funderIdentifier.',\n      disabled: computed('model.{funderIdentifier,state}', function () {\n        return this.model.get('state') === 'draft';\n      })\n    })\n  ],\n  awardUri: [\n    validator('url-format', {\n      allowBlank: true,\n      message: 'Please enter a valid URI'\n    })\n  ]\n});\n\n@classic\nexport default class FundingReference extends Fragment.extend(Validations) {\n  @attr('string', { defaultValue: null })\n  funderName;\n\n  @attr('string', { defaultValue: null })\n  funderIdentifier;\n\n  @attr('string', { defaultValue: null })\n  funderIdentifierType;\n\n  // schemeUri: attr('string', { defaultValue: null }),\n  @attr('string', { defaultValue: null })\n  awardNumber;\n\n  @attr('string', { defaultValue: null })\n  awardUri;\n\n  @attr('string', { defaultValue: null })\n  awardTitle;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { isBlank } from '@ember/utils';\n\nconst Validations = buildValidations({\n  westBoundLongitude: [\n    validator('number', {\n      allowString: true,\n      allowBlank: true,\n      message: 'Domain: -180.00 ≤ westBoundLongitude ≤ 180.00 ',\n      gte: -180,\n      lte: 180\n    }),\n    validator('presence', {\n      presence: true,\n      ignoreBlank: true,\n      message:\n        'westBoundLongitude must be included if you input a GeoLocation Box.',\n      disabled: computed(\n        'model.{eastBoundLongitude,southBoundLatitude,northBoundLatitude,state}',\n        function () {\n          return (\n            this.model.get('state') === 'draft' ||\n            (isBlank(this.model.get('eastBoundLongitude')) &&\n              isBlank(this.model.get('southBoundLatitude')) &&\n              isBlank(this.model.get('northBoundLatitude')))\n          );\n        }\n      )\n    })\n  ],\n  eastBoundLongitude: [\n    validator('number', {\n      allowString: true,\n      allowBlank: true,\n      message: 'Domain: -180.00 ≤ eastBoundLongitude ≤ 180.00 ',\n      gte: -180,\n      lte: 180\n    }),\n    validator('presence', {\n      presence: true,\n      ignoreBlank: true,\n      message:\n        'eastBoundLongitude must be included if you input a GeoLocation Box.',\n      disabled: computed(\n        'model.{eastBoundLongitude,southBoundLatitude,northBoundLatitude,state}',\n        function () {\n          return (\n            this.model.get('state') === 'draft' ||\n            (isBlank(this.model.get('westBoundLongitude')) &&\n              isBlank(this.model.get('southBoundLatitude')) &&\n              isBlank(this.model.get('northBoundLatitude')))\n          );\n        }\n      )\n    })\n  ],\n  southBoundLatitude: [\n    validator('number', {\n      allowString: true,\n      allowBlank: true,\n      message: 'Domain: -90.00 ≤ southBoundLatitude ≤ 90.00 ',\n      gte: -90,\n      lte: 90\n    }),\n    validator('presence', {\n      presence: true,\n      ignoreBlank: true,\n      message:\n        'southBoundLatitude must be included if you input a GeoLocation Box.',\n      disabled: computed(\n        'model.{eastBoundLongitude,southBoundLatitude,northBoundLatitude,state}',\n        function () {\n          return (\n            this.model.get('state') === 'draft' ||\n            (isBlank(this.model.get('westBoundLongitude')) &&\n              isBlank(this.model.get('eastBoundLongitude')) &&\n              isBlank(this.model.get('northBoundLatitude')))\n          );\n        }\n      )\n    })\n  ],\n  northBoundLatitude: [\n    validator('number', {\n      allowString: true,\n      allowBlank: true,\n      message: 'Domain: -90.00 ≤ northBoundLatitude ≤ 90.00 ',\n      gte: -90,\n      lte: 90\n    }),\n    validator('presence', {\n      presence: true,\n      ignoreBlank: true,\n      message:\n        'northBoundLatitude must be included if you input a GeoLocation Box.',\n      disabled: computed(\n        'model.{eastBoundLongitude,southBoundLatitude,northBoundLatitude}',\n        function () {\n          return (\n            isBlank(this.model.get('eastBoundLongitude')) &&\n            isBlank(this.model.get('southBoundLatitude')) &&\n            isBlank(this.model.get('westBoundLongitude'))\n          );\n        }\n      )\n    })\n  ]\n});\n\n@classic\nexport default class GeoLocationBox extends Fragment.extend(Validations) {\n  @attr('number', { defaultValue: null })\n  southBoundLatitude;\n\n  @attr('number', { defaultValue: null })\n  northBoundLatitude;\n\n  @attr('number', { defaultValue: null })\n  westBoundLongitude;\n\n  @attr('number', { defaultValue: null })\n  eastBoundLongitude;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { isBlank } from '@ember/utils';\nimport { validator, buildValidations } from 'ember-cp-validations';\n\nconst Validations = buildValidations({\n  pointLongitude: [\n    validator('number', {\n      allowString: true,\n      allowBlank: true,\n      message: 'Domain: -180.00 ≤ pointLongitude ≤ 180.00 ',\n      gte: -180,\n      lte: 180\n    }),\n    validator('presence', {\n      presence: true,\n      ignoreBlank: true,\n      message:\n        'Point Longitude must be included if you input a GeoLocation Point.',\n      disabled: computed('model.pointLatitude', function () {\n        return isBlank(this.model.get('pointLatitude'));\n      })\n    })\n  ],\n  pointLatitude: [\n    validator('number', {\n      allowString: true,\n      allowBlank: true,\n      message: 'Domain: -90.00 ≤ pointLatitude ≤ 90.00 ',\n      gte: -90,\n      lte: 90\n    }),\n    validator('presence', {\n      presence: true,\n      ignoreBlank: true,\n      message:\n        'Point Latitude must be included if you input a GeoLocation Point.',\n      disabled: computed('model.pointLongitude', function () {\n        return isBlank(this.model.get('pointLongitude'));\n      })\n    })\n  ]\n});\n\n@classic\nexport default class GeoLocationPoint extends Fragment.extend(Validations) {\n  @attr('number', { defaultValue: null })\n  pointLongitude;\n\n  @attr('number', { defaultValue: null })\n  pointLatitude;\n}\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { fragment } from 'ember-data-model-fragments/attributes';\n\n@classic\nexport default class GeoLocation extends Fragment {\n  @attr('string', { defaultValue: null })\n  geoLocationPlace;\n\n  @fragment('geoLocationPoint', { defaultValue: {} })\n  geoLocationPoint;\n\n  @fragment('geoLocationBox', { defaultValue: {} })\n  geoLocationBox;\n\n  @attr()\n  geoLocationPolygon;\n}\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\n\n@classic\nexport default class Issn extends Fragment {\n  @attr('string')\n  issnl;\n\n  @attr('string')\n  electronic;\n\n  @attr('string')\n  print;\n}\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\n// import { validator, buildValidations } from 'ember-cp-validations';\n\n// const Validations = buildValidations({\n//   nameIdentifier: [\n//     validator('name-identifier', true),\n//   ],\n// });\n\n@classic\nexport default class NameIdentifier extends Fragment {\n  @attr('string')\n  nameIdentifier;\n\n  @attr('string')\n  nameIdentifierScheme;\n\n  @attr('string')\n  schemeUri;\n}\n","import classic from 'ember-classic-decorator';\nimport Model, { attr } from '@ember-data/model';\n\n@classic\nexport default class Person extends Model {\n  @attr('string')\n  name;\n\n  @attr('string', { defaultValue: null })\n  givenName;\n\n  @attr('string', { defaultValue: null })\n  familyName;\n}\n","import Model, { attr, hasMany } from '@ember-data/model';\n\nexport default Model.extend({\n  providers: hasMany('provider', {\n    async: true\n  }),\n  repositories: hasMany('repository', {\n    async: true\n  }),\n  'provider-prefixes': hasMany('provider-prefix', {\n    async: true\n  }),\n  'repository-prefixes': hasMany('repository-prefix', {\n    async: true\n  }),\n\n  meta: attr(),\n  createdAt: attr('date')\n});\n","import Model, { attr, belongsTo, hasMany } from '@ember-data/model';\nimport { validator, buildValidations } from 'ember-cp-validations';\n\nconst Validations = buildValidations({\n  prefix: [validator('presence', true)]\n});\n\nexport default Model.extend(Validations, {\n  provider: belongsTo('provider', {\n    async: true\n  }),\n  prefix: belongsTo('prefix', {\n    async: true\n  }),\n  repositories: hasMany('repository', {\n    async: true\n  }),\n  'repository-prefixes': hasMany('repository-prefix', {\n    async: true\n  }),\n\n  createdAt: attr('date')\n});\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { reads } from '@ember/object/computed';\nimport Model, { attr, belongsTo, hasMany } from '@ember-data/model';\nimport { isPresent, isBlank } from '@ember/utils';\nimport { w } from '@ember/string';\n// import ENV from 'bracco/config/environment';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { fragment } from 'ember-data-model-fragments/attributes';\nimport addressFormatter from '@fragaria/address-formatter';\nimport ENV from 'bracco/config/environment';\nimport validatePwdInputs from 'bracco/utils/validate-pwd-inputs';\n\nexport const organizationTypeList = [\n  'researchInstitution',\n  'academicInstitution',\n  'governmentAgency',\n  'internationalOrganization',\n  'nationalInstitution',\n  'professionalSociety',\n  'publisher',\n  'serviceProvider',\n  'other'\n];\nexport const memberTypeList = [\n  'consortium',\n  'consortium_organization',\n  'contractual_member',\n  'direct_member',\n  'member_only',\n  'registration_agency'\n];\nexport const focusAreaList = [\n  'naturalSciences',\n  'engineeringAndTechnology',\n  'medicalAndHealthSciences',\n  'agriculturalSciences',\n  'socialSciences',\n  'humanities',\n  'general'\n];\nexport const nonProfitStatusList = ['non-profit', 'for-profit'];\n\nconst Validations = buildValidations({\n  symbol: [\n    validator('presence', true),\n    validator('unique-provider-id', {\n      presence: true,\n      disabled: computed('model', function () {\n        return !this.model.get('isNew');\n      })\n    }),\n    validator('format', {\n      regex: /^[A-Z]+$/,\n      message: 'The Member ID can contain only upper case letters'\n    }),\n    validator('length', {\n      min: 2,\n      max: 8\n    })\n  ],\n  confirmSymbol: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model', function () {\n        return this.model.get('isNew');\n      })\n    }),\n    validator('confirmation', {\n      on: 'symbol',\n      message: 'Member ID does not match',\n      disabled: computed('model', function () {\n        return this.model.get('isNew');\n      })\n    })\n  ],\n  globusUuid: [\n    validator('uuid-format', {\n      version: 4,\n      allowBlank: true,\n      message: 'Must be a valid UUID (version 4).'\n    })\n  ],\n  twitterHandle: [\n    validator('format', {\n      regex: /^@[a-zA-Z0-9_]{0,15}$/,\n      allowBlank: true,\n      message: 'Must start with @ followed by up to 15 alphanumeric characters.'\n    })\n  ],\n  name: validator('presence', true),\n  displayName: validator('presence', true),\n  systemEmail: [validator('presence', true), validator('email-format', true)],\n  groupEmail: [\n    validator('email-format', {\n      allowBlank: true\n    })\n  ],\n  passwordInput: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model', 'model.router.currentRouteName', function () {\n        return !validatePwdInputs(this.model.router.currentRouteName);\n      })\n    }),\n    validator('length', {\n      min: 8,\n      disabled: computed('model', 'model.router.currentRouteName', function () {\n        return !validatePwdInputs(this.model.router.currentRouteName);\n      })\n    })\n  ],\n  confirmPasswordInput: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model', 'model.router.currentRouteName', function () {\n        return !validatePwdInputs(this.model.router.currentRouteName);\n      })\n    }),\n    validator('confirmation', {\n      on: 'passwordInput',\n      message: 'Password does not match',\n      disabled: computed('model', 'model.router.currentRouteName', function () {\n        return !validatePwdInputs(this.model.router.currentRouteName);\n      })\n    })\n  ],\n  website: [\n    validator('url-format', {\n      allowBlank: true,\n      require_tld: false,\n      message: 'Please enter a valid website URL.'\n    })\n  ],\n  rorId: [\n    validator('url-format', {\n      allowBlank: true,\n      message: 'Please enter a valid ROR ID expressed as URL.'\n    })\n  ],\n  salesforceId: [\n    validator('format', {\n      regex: /[a-zA-Z0-9]{18}/,\n      allowBlank: true,\n      message: 'Please enter a valid 18 digit Salesforce ID.'\n    })\n  ],\n  contacts: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model', function () {\n        return (\n          this.model.get('disableValidations') ||\n          this.model.get('isNew') ||\n          this.model.get('mode') === 'change' ||\n          this.model.get('memberType') === 'developer' ||\n          !this.model.get('memberType') || // memberType is null for admin account\n          !this.model.get('hasPassword') // Allows users with no contacts to set their password.\n        );\n      })\n    })\n  ],\n  votingContact: [\n    validator('presence', {\n      presence: true,\n      message: 'A voting representative is required.',\n      disabled: computed('model', function () {\n        return (\n          this.model.get('contacts').length === 0 ||\n          this.model.get('isNew') ||\n          this.model.get('mode') === 'change' ||\n          this.model.get('memberType') === 'consortium_organization' ||\n          this.model.get('memberType') === 'developer' ||\n          !this.model.get('memberType') // memberType is null for admin account\n        );\n      })\n    })\n  ],\n  serviceContact: [\n    validator('presence', {\n      presence: true,\n      message: 'A service contact is required.',\n      disabled: computed('model', function () {\n        return (\n          this.model.get('contacts').length === 0 ||\n          this.model.get('isNew') ||\n          this.model.get('mode') === 'change' ||\n          this.model.get('memberType') === 'consortium_organization' ||\n          this.model.get('memberType') === 'developer' ||\n          !this.model.get('memberType') // memberType is null for admin account\n        );\n      })\n    })\n  ],\n  billingContact: [\n    validator('presence', {\n      presence: true,\n      message: 'A billing contact is required.',\n      disabled: computed('model', function () {\n        return (\n          this.model.get('contacts').length === 0 ||\n          this.model.get('isNew') ||\n          this.model.get('mode') === 'change' ||\n          this.model.get('memberType') === 'consortium_organization' ||\n          this.model.get('memberType') === 'developer' ||\n          !this.model.get('memberType') // memberType is null for admin account\n        );\n      })\n    })\n  ],\n  'billingInformation.state': [validator('billing-state')],\n  country: [\n    validator('presence', true)\n  ]\n});\n\n@classic\nexport default class Provider extends Model.extend(Validations) {\n  @service\n  router;\n\n  @belongsTo('provider', {\n    inverse: 'consortiumOrganizations',\n    async: true\n  })\n  consortium;\n\n  @hasMany('provider', {\n    inverse: 'consortium',\n    async: true\n  })\n  consortiumOrganizations;\n\n  @hasMany('contact', {\n    inverse: 'provider',\n    async: true\n  })\n  contacts;\n\n  @attr()\n  meta;\n\n  @attr('string')\n  name;\n\n  @attr('string')\n  displayName;\n\n  @attr('string')\n  symbol;\n\n  @attr('string')\n  globusUuid;\n\n  @attr('string')\n  description;\n\n  @attr('string')\n  region;\n\n  @attr('country')\n  country;\n\n  @attr('string')\n  memberType;\n\n  @attr('string')\n  organizationType;\n\n  @attr('string')\n  focusArea;\n\n  @attr('string')\n  logoUrl;\n\n  @attr('string')\n  systemEmail;\n\n  @attr('string')\n  groupEmail;\n\n  @attr('string')\n  website;\n\n  @attr('boolean', { defaultValue: true })\n  isActive;\n\n  @attr('string')\n  passwordInput;\n\n  @attr('string')\n  nonProfitStatus;\n\n  @attr('boolean')\n  hasPassword;\n\n  @attr('string')\n  rorId;\n\n  @attr('string')\n  salesforceId;\n\n  @attr('string')\n  twitterHandle;\n\n  @attr()\n  logo;\n\n  @attr('billingInformation')\n  billingInformation;\n\n  @fragment('contact-fragment')\n  technicalContact;\n\n  @fragment('contact-fragment')\n  secondaryTechnicalContact;\n\n  @fragment('contact-fragment')\n  billingContact;\n\n  @fragment('contact-fragment')\n  secondaryBillingContact;\n\n  @fragment('contact-fragment')\n  secondaryServiceContact;\n\n  @fragment('contact-fragment')\n  serviceContact;\n\n  @fragment('contact-fragment')\n  votingContact;\n\n  @attr('date')\n  joined;\n\n  @attr('date')\n  created;\n\n  @attr('date')\n  updated;\n\n  @computed('id')\n  get uid() {\n    return this.id.toUpperCase();\n  }\n\n  @computed(\n    'billingContact.email',\n    'memberType',\n    'serviceContact.email',\n    'votingContact.email'\n  )\n  get hasRequiredContacts() {\n    if (this.memberType === 'consortium_organization') {\n      return isPresent(this.serviceContact.email);\n    } else if (this.memberType !== 'developer') {\n      return (\n        isPresent(this.votingContact.email) &&\n        isPresent(this.serviceContact.email) &&\n        isPresent(this.billingContact.email)\n      );\n    }\n  }\n\n  @reads('contacts')\n  filteredContacts;\n\n  @computed(\n    'billingInformation',\n    'billingInformation.{address,city,postCode,state.name,country,country.name,country.code}'\n  )\n  get formattedBillingInformation() {\n    if (this.billingInformation) {\n      return addressFormatter.format(\n        {\n          road: this.billingInformation.address,\n          city: this.billingInformation.city,\n          postcode: this.billingInformation.postCode\n            ? this.billingInformation.postCode\n            : null,\n          state: this.billingInformation.state\n            ? this.billingInformation.state.name\n            : null,\n          country: this.billingInformation.country\n            ? this.billingInformation.country.name\n            : null,\n          countryCode: this.billingInformation.country\n            ? this.billingInformation.country.code\n            : null\n        },\n        {\n          output: 'array'\n        }\n      );\n    } else {\n      return null;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\n\n@classic\nexport default class Publisher extends Fragment {\n  @attr('string', { defaultValue: null })\n  name;\n\n  @attr('string', { defaultValue: null })\n  lang;\n\n  @attr('string', { defaultValue: null })\n  publisherIdentifier;\n\n  @attr('string', { defaultValue: null })\n  publisherIdentifierScheme;\n\n  @attr('string', { defaultValue: null })\n  schemeUri;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { isBlank } from '@ember/utils';\n\nconst Validations = buildValidations({\n  schemeUri: [\n    validator('url-format', {\n      allowBlank: true,\n      message: 'Related Identifier scheme URI has to be a valid URI',\n      disabled: computed('model.relatedIdentifierType', function () {\n        return ['HasMetadata', 'IsMetadataFor'].includes(\n          this.model.get('relatedIdentifierType')\n        );\n      })\n    })\n  ],\n  relatedIdentifier: [\n    // validator('url-format', {\n    //   allowBlank: true,\n    //   message: 'Please enter a valid URL.',\n    //   disabled: computed('model.relatedIdentifierType', 'model.state', function() {\n    //     return this.model.get('state') === 'draft' || ![ 'PURL','URL' ].includes(this.model.get('relatedIdentifierType'));\n    //   }),\n    // }),\n    validator('identifier-format', {\n      allowBlank: true,\n      dependentKeys: ['model.relatedIdentifierType'],\n      disabled: computed('model.relatedIdentifier', function () {\n        return isBlank(this.model.get('relatedIdentifier'));\n      })\n    })\n  ],\n  relatedIdentifierType: [\n    validator('presence', {\n      presence: true,\n      message:\n        'Please enter a Related Identifier Type for the Related Identifier.',\n      disabled: computed('model.{relatedIdentifier,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          isBlank(this.model.get('relatedIdentifier'))\n        );\n      })\n    })\n  ],\n  relationType: [\n    validator('presence', {\n      presence: true,\n      message: 'Please enter a Relation Type for the Related Identifier.',\n      disabled: computed('model.{relatedIdentifier,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          isBlank(this.model.get('relatedIdentifier'))\n        );\n      })\n    })\n  ],\n  resourceTypeGeneral: [\n    validator('presence', {\n      presence: true,\n      message:\n        'Please enter a Resource Type for the Related Identifier Metadata.',\n      disabled: computed('model.{relatedIdentifierType,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          !['HasMetadata', 'IsMetadataFor'].includes(\n            this.model.get('relatedIdentifierType')\n          )\n        );\n      })\n    })\n  ]\n});\n\n@classic\nexport default class RelatedIdentifier extends Fragment.extend(Validations) {\n  @attr('string', { defaultValue: null })\n  relatedIdentifier;\n\n  @attr('string', { defaultValue: null })\n  relatedIdentifierType;\n\n  @attr('string', { defaultValue: null })\n  relationType;\n\n  @attr('string', { defaultValue: null })\n  relationTypeInformation;\n\n  @attr('string', { defaultValue: null })\n  relatedMetadataScheme;\n\n  @attr('string', { defaultValue: null })\n  schemeUri;\n\n  @attr('string', { defaultValue: null })\n  schemeType;\n\n  @attr('string', { defaultValue: null })\n  resourceTypeGeneral;\n}","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\n\nconst Validations = buildValidations({\n  name: [\n    validator('presence', {\n      presence: true,\n      message: 'Related Item contributor must have a name',\n      disabled: computed('model.{name,state}', function () {\n        return this.model.get('state') === 'draft';\n      })\n    })\n  ],\n  contributorType: [\n    validator('presence', {\n      presence: true,\n      message: 'Contributors must include a contributor type',\n      disabled: computed('model.{name,state}', function () {\n        return (\n          this.model.get('state') === 'draft' || this.model.get('name') === null\n        );\n      })\n    })\n  ]\n});\n\n@classic\nexport default class RelatedItemContributor extends Fragment.extend(Validations) {\n  @attr('string')\n  name;\n\n  @attr('string', { defaultValue: 'Other' })\n  contributorType;\n\n  @attr('string', { defaultValue: null })\n  givenName;\n\n  @attr('string', { defaultValue: null })\n  familyName;\n\n  @attr('string', { defaultValue: null })\n  nameType;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\n\nconst Validations = buildValidations({\n  name: [\n    validator('presence', {\n      presence: true,\n      message: 'Related Item creator must have a name'\n    })\n  ]\n});\n\n@classic\nexport default class RelatedItemCreator extends Fragment.extend(Validations) {\n  @attr('string')\n  name;\n\n  @attr('string', { defaultValue: null })\n  givenName;\n\n  @attr('string', { defaultValue: null })\n  familyName;\n\n  @attr('string', { defaultValue: null })\n  nameType;\n\n  @computed('name', 'givenName', 'familyName')\n  get displayName() {\n    return this.familyName\n      ? [this.givenName, this.familyName].join(' ')\n      : this.name;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { isBlank } from '@ember/utils';\n\nconst Validations = buildValidations({\n  schemeUri: [\n    validator('url-format', {\n      allowBlank: true,\n      message: 'Related Identifier scheme URI has to be a valid URI',\n      disabled: computed('model.relatedItemIdentifierType', function () {\n        return ['HasMetadata', 'IsMetadataFor'].includes(\n          this.model.get('relatedItemIdentifierType')\n        );\n      })\n    })\n  ],\n  relatedItemIdentifier: [\n    validator('related-item-identifier-format', {\n      allowBlank: true,\n      message: 'Identifier format is wrong',\n      dependentKeys: ['model.relatedItemIdentifierType'],\n      disabled: computed('model.relatedItemIdentifier', function () {\n        return isBlank(this.model.get('relatedItemIdentifier'));\n      })\n    })\n  ],\n  relatedItemIdentifierType: [\n    validator('presence', {\n      presence: true,\n      message:\n        'Please enter a Related Identifier Type for the Related Identifier.',\n      disabled: computed('model.{relatedItemIdentifier,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          isBlank(this.model.get('relatedItemIdentifier'))\n        );\n      })\n    })\n  ]\n});\n\n@classic\nexport default class RelatedItemIdentifier extends Fragment.extend(Validations) {\n  @attr('string', { defaultValue: null })\n  relatedItemIdentifier;\n\n  @attr('string', { defaultValue: null })\n  relatedItemIdentifierType;\n\n  @attr('string', { defaultValue: null })\n  relatedMetadataScheme;\n\n  @attr('string', { defaultValue: null })\n  schemeUri;\n\n  @attr('string', { defaultValue: null })\n  schemeType;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { reads } from '@ember/object/computed';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { fragmentArray, fragment } from 'ember-data-model-fragments/attributes';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport { isBlank } from '@ember/utils';\nimport { A } from '@ember/array';\n\nconst Validations = buildValidations({\n  relatedItemType: [\n    validator('presence', {\n      presence: true,\n      message: 'Please enter a Related Item Type for the Related Item.',\n      disabled: computed('model.{title,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          isBlank(this.model.get('title'))\n        );\n      })\n    })\n  ],\n  relationType: [\n    validator('presence', {\n      presence: true,\n      message: 'Please enter a Relation Type for the Related Item.',\n      disabled: computed('model.{title,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          isBlank(this.model.get('title'))\n        );\n      })\n    })\n  ],\n  title: [\n    validator('presence', {\n      presence: true,\n      message: 'Related Item must have a Title',\n      disabled: computed(\n        'model.{title,relatedItemType,relationType,state}',\n        function () {\n          return (\n            this.model.get('state') === 'draft' ||\n            (isBlank(this.model.get('title')) &&\n              isBlank(this.model.get('relatedItemType')) &&\n              isBlank(this.model.get('relationType')))\n          );\n        }\n      )\n    })\n  ],\n  publicationYear: [\n    validator('date-format', {\n      allowBlank: true,\n      disabled: computed('model.{title,state}', function () {\n        return (\n          this.model.get('state') === 'draft' ||\n          isBlank(this.model.get('title'))\n        );\n      })\n    })\n  ],\n  relatedItemContributors: [\n   validator('inline',\n      {\n        validate () {\n          let valid = true;\n          this.model.get('contributors').forEach((element) => {\n            const { validations } = element.validateSync();\n            valid = validations.get('isValid');\n          });\n          return valid;\n        },\n        dependentKeys: [\n          'model.contributors.@each.name',\n          'model.contributors.@each.contributorType'\n        ],\n        attributeDescription: 'Related Items Contributors',\n        disabled: computed('model.{title,state}', function () {\n          return (\n            this.model.get('state') === 'draft' ||\n            isBlank(this.model.get('title'))\n          );\n        })\n      }\n    )\n  ]\n});\n\n@classic\nexport default class RelatedItem extends Fragment.extend(Validations) {\n  @attr('string', { defaultValue: null })\n  relatedItemType;\n\n  @attr('string', { defaultValue: null })\n  relationType;\n\n  @attr('string', { defaultValue: null })\n  relationTypeInformation;\n\n  @fragment('related-item-identifier', {\n    defaultValue: {}\n  })\n  relatedItemIdentifier;\n\n  @fragmentArray('related-item-creator', { defaultValue: [] })\n  creators;\n\n  @fragmentArray('title', { defaultValue: [] })\n  titles;\n\n  @attr('string', { defaultValue: null })\n  volume;\n\n  @attr('string', { defaultValue: null })\n  issue;\n\n  @attr()\n  number;\n\n  @attr('string', { defaultValue: null })\n  publicationYear;\n\n  @fragmentArray('related-item-contributor', { defaultValue: [] })\n  contributors;\n\n  @attr('string', { defaultValue: null })\n  firstPage;\n\n  @attr('string', { defaultValue: null })\n  lastPage;\n\n  @attr('string', { defaultValue: null })\n  numberType;\n\n  @attr('string', { defaultValue: null })\n  publisher;\n\n  @attr('string', { defaultValue: null })\n  edition;\n\n  @computed('titles.@each.title')\n  get title() {\n    if (this.titles.length > 0) {\n      return A(this.titles).get('firstObject').title;\n    } else {\n      return null;\n    }\n  }\n\n  @reads('contributors')\n  relatedItemContributors;\n}\n","import Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default Model.extend({\n  repository: belongsTo('repository', {\n    async: true\n  }),\n  'provider-prefix': belongsTo('provider-prefix', {\n    async: true\n  }),\n  prefix: belongsTo('prefix', {\n    async: true\n  }),\n\n  createdAt: attr('date')\n});\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Model, { attr, belongsTo, hasMany } from '@ember-data/model';\nimport ENV from 'bracco/config/environment';\nimport {\n  array,\n  fragment,\n  fragmentArray\n} from 'ember-data-model-fragments/attributes';\nimport { validator, buildValidations } from 'ember-cp-validations';\nimport isEmpty from 'bracco/utils/is-empty';\nimport validatePwdInputs from 'bracco/utils/validate-pwd-inputs';\n\nexport const clientTypeList = [\n  {\n    label: 'Repository',\n    value: 'repository'\n  },\n  {\n    label: 'Periodical',\n    value: 'periodical'\n  },\n  {\n    label: 'IGSN ID Catalog',\n    value: 'igsnCatalog'\n  },\n  {\n    label: 'RAiD Registry',\n    value: 'raidRegistry'\n  }\n];\n\nexport const softwareList = [\n  'Archipelago',\n  'Cayuse',\n  'CKAN',\n  'Dataverse',\n  'dLibra',\n  'DSpace',\n  'EPrints',\n  'Ex Libris Esploro',\n  'Fedora',\n  'Figshare',\n  'Invenio',\n  'Islandora',\n  'MyCoRe',\n  'Nesstar',\n  'Omega-PSIR',\n  'Omeka S',\n  'Open Journal Systems (OJS)',\n  'OPUS',\n  'Pubman',\n  'Pure',\n  'Redivis',\n  'RSpace',\n  'Samvera',\n  'SESAR',\n  'Ubiquity',\n  'Other'\n];\n\nconst Validations = buildValidations({\n  symbol: [\n    validator('presence', true),\n    validator('unique-repository-id', {\n      presence: true,\n      disabled: computed('model', function () {\n        return !this.model.get('isNew');\n      })\n    }),\n    validator('format', {\n      regex: /^[A-Z]+\\.[A-Z0-9]+(-[A-Z0-9]+)?$/,\n      message:\n        'The Repository ID must start with the Member ID, followed by a dot. It can then contain only upper case letters, numbers, and at most one hyphen.'\n    }),\n    validator('length', {\n      min: 5,\n      max: 18\n    })\n  ],\n  confirmSymbol: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model', function () {\n        return this.model.get('isNew');\n      })\n    }),\n    validator('confirmation', {\n      on: 'symbol',\n      message: 'Repository ID does not match',\n      disabled: computed('model', function () {\n        return this.model.get('isNew');\n      })\n    })\n  ],\n  passwordInput: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model', 'model.router.currentRouteName', function () {\n        return !validatePwdInputs(this.model.router.currentRouteName);\n      })\n    }),\n    validator('length', {\n      min: 8,\n      disabled: computed('model', 'model.router.currentRouteName', function () {\n        return !validatePwdInputs(this.model.router.currentRouteName);\n      })\n    })\n  ],\n  confirmPasswordInput: [\n    validator('presence', {\n      presence: true,\n      disabled: computed('model', 'model.router.currentRouteName', function () {\n        return !validatePwdInputs(this.model.router.currentRouteName);\n      })\n    }),\n    validator('confirmation', {\n      on: 'passwordInput',\n      message: 'Password does not match',\n      disabled: computed('model', 'model.router.currentRouteName', function () {\n        return !validatePwdInputs(this.model.router.currentRouteName);\n      })\n    })\n  ],\n  name: validator('presence', true),\n  systemEmail: [validator('presence', true), validator('email-format', true)],\n  salesforceId: [\n    validator('format', {\n      regex: /[a-zA-Z0-9]{18}/,\n      allowBlank: true,\n      message: 'Please enter a valid 18 digit Salesforce ID.'\n    })\n  ],\n  globusUuid: [\n    validator('uuid-format', {\n      version: 4,\n      allowBlank: true,\n      message: 'Must be a valid UUID (version 4).'\n    })\n  ],\n  'issn.issnl': [\n    validator('issn-format', {\n      allowBlank: true,\n      message: 'ISSN-L is in the wrong format.'\n    })\n  ],\n  'issn.electronic': [\n    validator('issn-format', {\n      allowBlank: true,\n      message: 'ISSN (electronic) is in the wrong format.'\n    })\n  ],\n  'issn.print': [\n    validator('issn-format', {\n      allowBlank: true,\n      message: 'ISSN (print) is in the wrong format.'\n    })\n  ],\n  software: [\n    validator('presence', true)\n  ]\n});\n\n@classic\nexport default class Repository extends Model.extend(Validations) {\n  @service\n  router;\n\n  @belongsTo('provider', {\n    async: true\n  })\n  provider;\n\n  @hasMany('prefix', {\n    async: true\n  })\n  prefixes;\n\n  @attr()\n  meta;\n\n  @attr('string')\n  name;\n\n  @attr('string')\n  alternateName;\n\n  @attr('string')\n  symbol;\n\n  @attr('string')\n  globusUuid;\n\n  @attr('string', { defaultValue: '*' })\n  domains;\n\n  @attr('string')\n  systemEmail;\n\n  @attr('string')\n  salesforceId;\n\n  @attr('string')\n  analyticsTrackingId;\n\n  @attr('number')\n  year;\n\n  @attr('string')\n  description;\n\n  @array()\n  language;\n\n  @array()\n  certificate;\n\n  @fragment('contact-fragment')\n  serviceContact;\n\n  @fragment('issn')\n  issn;\n\n  @attr('string')\n  url;\n\n  @attr('string')\n  clientType;\n\n  @array()\n  repositoryType;\n\n  @attr('string')\n  software;\n\n  @attr('boolean', { defaultValue: true })\n  isActive;\n\n  @attr('string')\n  passwordInput;\n\n  @attr('boolean')\n  hasPassword;\n\n  @attr('date')\n  created;\n\n  @attr('date')\n  updated;\n\n  @fragmentArray('subject', { defaultValue: [] })\n  subjects;\n\n  @attr()\n  targetId;\n\n  @attr('string')\n  mode;\n\n  @computed('domains')\n  get domainList() {\n    return this.domains.split(',').map(function (item) {\n      return item.trim();\n    });\n  }\n\n  get isDisciplinary() {\n    return this.repositoryType.includes('disciplinary');\n  }\n\n  clearSubjects() {\n    this.subjects = [];\n  }\n\n  certifyDisciplinaryRepository() {\n    if (!this.isDisciplinary) {\n      this.clearSubjects();\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Model, { attr } from '@ember-data/model';\nimport { validator, buildValidations } from 'ember-cp-validations';\n\nconst Validations = buildValidations({\n  title: validator('presence', true)\n});\n\n@classic\nexport default class ResourceType extends Model.extend(Validations) {\n  @attr('string')\n  title;\n\n  @attr('date')\n  updated;\n}\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\n// import { computed } from '@ember/object';\n\nconst Validations = buildValidations({\n  rightsUri: [\n    validator('url-format', {\n      allowBlank: true,\n      protocols: ['http', 'https', 'ftp'],\n      message: 'Rights scheme URI has to be a valid URI'\n      // disable url check for info URI\n      // disabled: computed('fragment.rightsUri', function() {\n      //   return this.fragment.get('rightsUri').startsWith('info:');\n      // }),\n    })\n  ]\n  // schemeUri: [\n  //   validator('url-format', {\n  //     allowBlank: true,\n  //     require_tld: false,\n  //     message: 'Please enter a valid URL.',\n  //   }),\n  // ],\n});\n\n@classic\nexport default class Rights extends Fragment.extend(Validations) {\n  @attr('string')\n  rights;\n\n  @attr('string')\n  rightsUri;\n\n  @attr('string', { defaultValue: null })\n  lang;\n  // // Not implemented yet in the REST API\n  // rightsIdentifier: attr('string'),\n  // rightsIdentifierScheme: attr('string'),\n  // schemeUri: attr('string'),\n}\n","import classic from 'ember-classic-decorator';\nimport Model, { attr } from '@ember-data/model';\n\n@classic\nexport default class Ror extends Model {\n  @attr()\n  meta;\n\n  @attr('string')\n  rorId;\n\n  @attr('string')\n  name;\n\n  @attr('string')\n  local;\n\n  @attr()\n  types;\n\n  @attr()\n  links;\n\n  @attr()\n  aliases;\n\n  @attr()\n  acronyms;\n\n  @attr()\n  external_ids;\n\n  @attr('string')\n  wikipediaUrl;\n\n  @attr()\n  labels;\n\n  @attr()\n  country;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\n\nconst Validations = buildValidations({\n  subjectSchemeUri: [\n    validator('url-format', {\n      allowBlank: true,\n      require_tld: false,\n      message: 'Please enter a valid URL.'\n    })\n  ]\n});\n\n@classic\nexport default class Subject extends Fragment.extend(Validations) {\n  @attr('string')\n  subject;\n\n  @attr('string', { defaultValue: null })\n  subjectScheme;\n\n  @attr('string', { defaultValue: null })\n  schemeUri;\n\n  @attr('string', { defaultValue: null })\n  valueUri;\n\n  @attr('string', { defaultValue: null })\n  classificationCode;\n\n  @attr('string', { defaultValue: null })\n  lang;\n\n  @computed('schemeUri')\n  get subjectSchemeUri() {\n    return this.schemeUri || '';\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\nimport { validator, buildValidations } from 'ember-cp-validations';\n\nconst Validations = buildValidations({\n  title: [\n    validator('presence', {\n      presence: true\n    })\n  ]\n});\n\n@classic\nexport default class Title extends Fragment.extend(Validations) {\n  @attr('string', { defaultValue: null })\n  title;\n\n  @attr('string', { defaultValue: null })\n  titleType;\n\n  @attr('string', { defaultValue: null })\n  lang;\n}\n","import classic from 'ember-classic-decorator';\nimport { attr } from '@ember-data/model';\nimport Fragment from 'ember-data-model-fragments/fragment';\n\n@classic\nexport default class Types extends Fragment {\n  @attr('string')\n  ris;\n\n  @attr('string')\n  bibtex;\n\n  @attr('string')\n  citeproc;\n\n  @attr('string')\n  resourceTypeGeneral;\n\n  @attr('string')\n  resourceType;\n\n  @attr('string')\n  schemaOrg;\n}\n","import classic from 'ember-classic-decorator';\nimport { computed } from '@ember/object';\nimport { reads } from '@ember/object/computed';\nimport Model, { attr } from '@ember-data/model';\nimport { A } from '@ember/array';\n\n@classic\nexport default class User extends Model {\n  @attr()\n  meta;\n\n  @attr('string')\n  name;\n\n  @attr('string')\n  givenName;\n\n  @attr('string')\n  familyName;\n\n  @attr('date')\n  createdAt;\n\n  @attr('date')\n  updatedAt;\n\n  @computed('id')\n  get orcid() {\n    return 'https://orcid.org/' + this.id;\n  }\n\n  @reads('meta.published')\n  doiCount;\n\n  @computed('meta.published')\n  get totalDoiCount() {\n    return this.get('meta.published').reduce(function (a, b) {\n      return a + b.count;\n    }, 0);\n  }\n\n  @reads('meta.resourceTypes')\n  resourceTypeCount;\n\n  @computed('meta.resourceTypes')\n  get totalResourceTypeCount() {\n    return this.get('meta.resourceTypes').reduce(function (a, b) {\n      return a + b.count;\n    }, 0);\n  }\n\n  @computed('meta.citations')\n  get totalCitationCount() {\n    return this.get('meta.citations').reduce(function (a, b) {\n      return a + b.count;\n    }, 0);\n  }\n\n  @computed('meta.views')\n  get totalViewCount() {\n    return this.get('meta.views').reduce(function (a, b) {\n      return a + b.count;\n    }, 0);\n  }\n\n  @computed('meta.downloads')\n  get totalDownloadCount() {\n    return this.get('meta.downloads').reduce(function (a, b) {\n      return a + b.count;\n    }, 0);\n  }\n\n  @computed('doiCount')\n  get currentDoiCount() {\n    let currentYear = A(this.doiCount).findBy(\n      'id',\n      new Date().getFullYear().toString()\n    );\n    if (currentYear) {\n      return currentYear.count;\n    } else {\n      return 0;\n    }\n  }\n}\n","import Resolver from 'ember-resolver';\n\nexport default Resolver;\n","import classic from 'ember-classic-decorator';\nimport EmberRouter from '@ember/routing/router';\nimport config from './config/environment';\n\n@classic\nclass Router extends EmberRouter {\n  location = 'history';\n}\n\nRouter.map(function () {\n  this.route('providers', function () {\n    this.route('show', { path: '/:provider_id' }, function () {\n      this.route('edit');\n      this.route('change');\n      this.route('delete');\n      this.route('settings');\n      this.route('dois');\n      this.route('prefixes', function () {\n        this.route('show', { path: '/:prefix_id' }, function () {\n          this.route('delete');\n        });\n        this.route('new');\n      });\n      this.route('contacts', function () {\n        this.route('new');\n      });\n      this.route('organizations', function () {\n        this.route('new');\n      });\n      this.route('repositories', function () {\n        this.route('new');\n      });\n    });\n    this.route('new');\n  });\n  this.route('repositories', function () {\n    this.route('show', { path: '/:repository_id' }, function () {\n      this.route('edit');\n      this.route('change');\n      this.route('delete');\n      this.route('settings');\n      this.route('transfer-repository');\n      this.route('dois', function () {\n        this.route('new');\n        this.route('upload');\n      });\n      this.route('transfer');\n      this.route('prefixes', function () {\n        this.route('show', { path: '/:prefix_id' }, function () {\n          this.route('delete');\n        });\n        this.route('new');\n      });\n    });\n    this.route('new');\n  });\n  this.route('dois', function () {\n    this.route('show', { path: '/:doi_id' }, function () {\n      this.route('edit');\n      this.route('modify');\n      this.route('delete');\n      this.route('transfer');\n    });\n  });\n  this.route('prefixes', function () {\n    this.route('new');\n  });\n  this.route('users', function () {});\n  this.route('contacts', function () {\n    this.route('show', { path: '/:contact_id' }, function () {\n      this.route('edit');\n      this.route('delete');\n    });\n    this.route('new');\n  });\n  this.route('edit');\n  this.route('change');\n  this.route('settings');\n\n  this.route('about');\n\n  this.route('sign-in');\n  this.route('authorize');\n  this.route('reset');\n  this.route('password');\n\n  // set up all of your known routes, and then...\n  this.route('404', { path: '*path' });\n});\n\nexport default Router;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport ENV from 'bracco/config/environment';\nimport { set } from '@ember/object';\n\n@classic\nexport default class ApplicationRoute extends Route {\n  @service\n  session;\n\n  @service\n  currentUser;\n\n  @service\n  headData;\n\n  @service\n  intl;\n\n  @service\n  router;\n\n  isTokenAuthenticating = null;\n\n  async beforeModel() {\n    await this.session.setup();\n    this.intl.setLocale(['en-us']);\n    set(this, 'headData.siteName', ENV.SITE_TITLE);\n    return this._loadCurrentUser();\n  }\n\n  model(params) {\n    const { jwt } = params;\n    if (jwt) {\n      this.set('isTokenAuthenticating', true);\n      if (this.get('session.isAuthenticated')) {\n        this.session.invalidate();\n      }\n      let self = this;\n      this.session.authenticate('authenticator:jwt', jwt).then(function () {\n        return self._loadCurrentUser();\n      });\n    }\n  }\n\n  sessionAuthenticated() {\n    if (!this.isTokenAuthenticating) {\n      undefined;\n      this._loadCurrentUser();\n      this.router.transitionTo('providers');\n    } else {\n      this.set('isTokenAuthenticating', false);\n    }\n  }\n\n  sessionInvalidated() {\n    if (!this.isTokenAuthenticating) {\n      undefined;\n    }\n  }\n\n  _loadCurrentUser() {\n    return this.currentUser.load().catch(() => this.session.invalidate());\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class AuthorizeRoute extends Route {\n  @service\n  session;\n\n  @service\n  router;\n\n  model() {\n    let self = this;\n    let url = ENV.FABRICA_URL + '/authorize';\n    fetch(url)\n      .then(function (response) {\n        let jwt = response.headers.get('x-amzn-oidc-data');\n\n        if (jwt) {\n          self.session\n            .authenticate('authenticator:globus', jwt)\n            .catch((reason) => {\n              self.set(\n                'errorMessage',\n                (reason.errors && reason.errors[0].title) || reason\n              );\n              self.router.transitionTo('/');\n            });\n        } else {\n          if (self.isDestroying || self.isDestroyed) {\n            return;\n          }\n          console.log(response);\n          self.router.transitionTo('/sign-in?globus');\n        }\n      })\n      .catch(function (error) {\n        console.log(error);\n        this.router.transitionTo('/sign-in?globus');\n      });\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class ChangeRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    return this.store\n      .findRecord('provider', 'admin')\n      .then(function (model) {\n        model.set('confirmSymbol', model.get('symbol'));\n        return model;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  flashMessages;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      include: 'provider'\n    });\n\n    return hash({\n      provider: null,\n      contacts: this.store\n        .query('contact', params)\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    'role-name': {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class ShowRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  flashMessages;\n\n  @service\n  headData;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let self = this;\n    return this.store\n      .findRecord('contact', params.contact_id, { include: 'provider' })\n      .then(function (contact) {\n        self.headData.set('title', contact.name);\n\n        return contact;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('index');\n      });\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read contact', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class DeleteRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  model() {\n    return this.modelFor('contacts/show');\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('delete contact', model)) {\n      this.router.transitionTo('providers.show', model);\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class EditRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  model() {\n    let contact = this.modelFor('contacts/show');\n    contact.set('confirmDelete', 'Delete');\n    return contact;\n  }\n\n  afterModel() {\n    if (this.can.cannot('update contact', this.modelFor('contacts/show'))) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class DoisRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  flashMessages;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      include: 'client',\n      sort: params.sort || '-updated',\n\n      facets:\n        'affiliations,certificates,citations,clients,created,downloads,fieldsOfScience,licenses,linkChecksStatus,prefixes,providers,published,registered,resourceTypes,schemaVersions,states,subjects,views',\n\n      'disable-facets': 'false'\n    });\n\n    return this.store\n      .query('doi', params)\n      .then(function (result) {\n        return result;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return null;\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    state: {\n      refreshModel: true\n    },\n    'resource-type-id': {\n      refreshModel: true\n    },\n    year: {\n      refreshModel: true\n    },\n    registered: {\n      refreshModel: true\n    },\n    'client-id': {\n      refreshModel: true\n    },\n    'affiliation-id': {\n      refreshModel: true\n    },\n    prefix: {\n      refreshModel: true\n    },\n    'schema-version': {\n      refreshModel: true\n    },\n    source: {\n      refreshModel: true\n    },\n    'link-check-status': {\n      refreshModel: true\n    }\n  };\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n// import { set } from '@ember/object';\n\n@classic\nexport default class ShowRoute extends Route {\n  @service\n  can;\n\n  @service\n  store;\n\n  model(params) {\n    // let self = this;\n    return this.store\n      .findRecord('doi', params.doi_id.toLowerCase(), {\n        include: 'client',\n        adapterOptions: {\n          affiliation: true,\n          publisher: true\n        }\n      })\n      .then(function (doi) {\n        // TODO fix metadata injection\n        // set(self, 'headData.title', doi.titles[0].title);\n        // if (doi.descriptions) {\n        //   set(self, 'headData.description', doi.descriptions[0].description);\n        // }\n        return doi;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return null;\n      });\n  }\n\n  // afterModel(model) {\n  //   if (this.get('can').cannot('view doi', model)) {\n  //     return this.transitionTo('index');\n  //   }\n  // }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class DeleteRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    return this.store\n      .findRecord('doi', this.modelFor('dois/show').get('id'), {\n        include: 'client'\n      })\n      .then(function (doi) {\n        return doi;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('delete doi', this.modelFor('dois/show'))) {\n      this.router.transitionTo('index');\n    } else {\n      this.modelFor('dois/show').set('mode', 'delete');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { isBlank } from '@ember/utils';\n\n@classic\nexport default class EditRoute extends Route {\n  @service\n  can;\n\n  @service\n  flashMessages;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    let id = this.modelFor('dois/show').get('id');\n    return this.store\n      .findRecord('doi', id, {\n        include: 'client',\n        adapterOptions: {\n          affiliation: true,\n          publisher: true\n        }\n      })\n      .then(function (doi) {\n        if (\n          isBlank(doi.schemaVersion) ||\n          !doi.schemaVersion.endsWith('kernel-4')\n        ) {\n          self\n            .get('flashMessages')\n            .warning(\n              'Using the Form would update this DOI to the latest schema version.',\n              { destroyOnClick: false }\n            );\n        }\n        if (!doi.publisher) {\n          doi.publisher = {};\n        }\n        return doi;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('delete doi', this.modelFor('dois/show'))) {\n      this.router.transitionTo('index');\n    } else {\n      this.modelFor('dois/show').set('mode', 'edit');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class ModifyRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    return this.store\n      .findRecord('doi', this.modelFor('dois/show').get('id'), {\n        include: 'client',\n        adapterOptions: {\n          affiliation: true,\n          publisher: true\n        }\n      })\n      .then(function (doi) {\n        return doi;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('delete doi', this.modelFor('dois/show'))) {\n      this.router.transitionTo('index');\n    } else {\n      this.modelFor('dois/show').set('mode', 'modify');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class TransferRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    return this.store\n      .findRecord('doi', this.modelFor('dois/show').get('id'), {\n        include: 'client'\n      })\n      .then(function (doi) {\n        return doi;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('transfer doi', this.modelFor('dois/show'))) {\n      this.router.transitionTo('index');\n    } else {\n      this.modelFor('dois/show').set('mode', 'modify');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class EditRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    return this.store\n      .findRecord('provider', 'admin')\n      .then(function (model) {\n        model.set('confirmSymbol', model.get('symbol'));\n        return model;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { w } from '@ember/string';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  flashMessages;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    if (this.can.can('read index')) {\n      let self = this;\n      return this.store\n        .findRecord('provider', 'admin')\n        .then(function (admin) {\n          return admin;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n\n          self.get('flashMessages').warning(reason);\n          self.router.transitionTo('index');\n        });\n    }\n  }\n\n  afterModel() {\n    if (this.get('currentUser.role_id') === 'staff_admin') {\n      var self = this;\n\n      this.prefixes.available().then(\n        function (value) {\n          if (\n            self.isDestroying || self.isDestroyed\n          ) {\n            return;\n          }\n\n          if (value <= 0) {\n            self.get('flashMessages').danger(self.prefixes.msg_zero);\n          } else if (value < self.prefixes.min) {\n            self.get('flashMessages').warning(self.prefixes.msg_min);\n          }\n        },\n        function (reason) {\n          console.debug(reason);\n        }\n      );\n\n      this.router.transitionTo('/');\n    } else if (\n      w('provider_admin consortium_admin client_admin user').includes(\n        this.get('currentUser.role_id')\n      )\n    ) {\n      let home = this.currentUser.get('home');\n      this.router.transitionTo(home.route, home.id);\n    } else if (this.get('currentUser.role_id') === 'temporary') {\n      this.router.transitionTo('password');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class InfoRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  flashMessages;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    if (this.can.can('read index')) {\n      let self = this;\n      return this.store\n        .findRecord('provider', 'admin')\n        .then(function (admin) {\n          return admin;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n\n          self.get('flashMessages').warning(reason);\n          self.router.transitionTo('index');\n        });\n    }\n  }\n\n  afterModel() {\n    if (this.can.cannot('read index') && this.currentUser) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class PasswordRoute extends Route {\n  @service\n  currentUser;\n\n  @service\n  store;\n\n  @service\n  session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'sign-in');\n  }\n\n  //authenticationRoute: 'sign-in',\n\n  model() {\n    if (this.currentUser.get('client_id')) {\n      return this.store\n        .findRecord('repository', this.currentUser.get('uid'))\n        .then(function (repository) {\n          repository.set('confirmSymbol', repository.get('symbol'));\n          return repository;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n        });\n    } else if (this.currentUser.get('provider_id')) {\n      return this.store\n        .findRecord('provider', this.currentUser.get('uid'))\n        .then(function (provider) {\n          provider.set('confirmSymbol', provider.get('symbol'));\n          return provider;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n        });\n    } else if (this.currentUser.get('uid') === 'admin') {\n      return this.store\n        .findRecord('provider', 'admin')\n        .then(function (provider) {\n          provider.set('confirmSymbol', provider.get('symbol'));\n          return provider;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n        });\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class PrefixesRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  flashMessages;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      include: 'providers,clients'\n    });\n\n    return this.store\n      .query('prefix', params)\n      .then(function (result) {\n        return result;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return null;\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    state: {\n      refreshModel: true\n    },\n    year: {\n      refreshModel: true\n    },\n    'provider-id': {\n      refreshModel: true\n    }\n  };\n}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class NewRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class ProvidersRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  flashMessages;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size,\n        include: 'contacts'\n      }\n    });\n\n    return this.store\n      .query('provider', params)\n      .then(function (result) {\n        return result;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return null;\n      });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    region: {\n      refreshModel: true\n    },\n    year: {\n      refreshModel: true\n    },\n    'member-type': {\n      refreshModel: true\n    },\n    'organization-type': {\n      refreshModel: true\n    },\n    'focus-area': {\n      refreshModel: true\n    },\n    'non-profit-status': {\n      refreshModel: true\n    },\n    'has-required-contacts': {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo('index');\n    }\n    /*\n    } else if (this.get('currentUser.role_id') === 'staff_admin') {\n      let self = this;\n      this.prefixes.available().then(function(value) {\n        if (value <= 0) {\n          self.get('flashMessages').danger(self.prefixes.msg_zero);\n        }\n      }, function(reason) {\n        console.debug(reason);\n      });\n    }\n    */\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class NewRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    return this.store.createRecord('provider', {\n      billingInformation: {},\n      votingContact: null,\n      serviceContact: null,\n      secondaryServiceContact: null,\n      technicalContact: null,\n      secondaryTechnicalContact: null,\n      billingContact: null,\n      secondaryBillingContact: null,\n      isActive: true\n    });\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('create provider', model)) {\n      return this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { set, action } from '@ember/object';\n\n@classic\nexport default class ShowRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  headData;\n\n  @service\n  currentUser;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  @service\n  flashMessages;\n\n  model(params) {\n    let self = this;\n    return this.store\n      .findRecord('provider', params.provider_id.toLowerCase(), {\n        include: 'consortium,consortium-organizations,contacts'\n      })\n      .then(function (provider) {\n        set(self, 'headData.title', provider.displayName);\n        set(self, 'headData.description', provider.description);\n        set(self, 'headData.image', provider.logoUrl);\n        return provider;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (this.get('currentUser.role_id') === 'staff_admin') {\n      let self = this;\n      this.prefixes.available().then(\n        function (value) {\n          if (self.isDestroyed || self.isDestroying) {\n            return;\n          }\n          if (value <= 0) {\n            self.get('flashMessages').danger(self.prefixes.msg_zero);\n          } else if (value < self.prefixes.min) {\n            self.get('flashMessages').warning(self.prefixes.msg_min);\n          }\n        },\n        function (reason) {\n          console.debug(reason);\n        }\n      );\n    }\n  }\n\n  redirect(model) {\n    if (this.can.cannot('read provider', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class ChangeRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let provider = this.modelFor('providers/show');\n    provider.set('confirmSymbol', provider.get('symbol'));\n    provider.set('disableValidations', true);\n    return provider;\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read provider', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let providerId = null;\n    let consortiumId = null;\n    let model = this.modelFor('providers/show');\n    if (model.memberType === 'consortium') {\n      consortiumId = model.get('id').toLowerCase();\n    } else {\n      providerId = model.get('id').toLowerCase();\n    }\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      'provider-id': providerId,\n      'consortium-id': consortiumId\n    });\n\n    let ret = hash({\n      provider: this.modelFor('providers/show'),\n      contacts: this.store\n        .query('contact', params)\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n\n    return ret.then(function (ret) {\n      // Workaround - going back to settings tab, contacts disappear.\n      // ret.provider.contacts = ret.contacts;\n      return ret;\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    'role-name': {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read provider', this.modelFor('providers/show'))) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class NewRoute extends Route {\n  @service\n  can;\n\n  @service\n  store;\n\n  @service\n  flashMessages;\n\n  model() {\n    let provider = this.modelFor('providers/show');\n    let contact = this.store.createRecord('contact', {\n      provider\n    });\n\n    return hash({\n      provider,\n      contact\n    });\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class DeleteRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  model() {\n    return this.modelFor('providers/show');\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read provider', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class DoisRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let providerId = null;\n    let consortiumId = null;\n    let model = this.modelFor('providers/show');\n    if (model.memberType === 'consortium') {\n      consortiumId = model.get('id');\n    } else {\n      providerId = model.get('id');\n    }\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      'provider-id': providerId,\n      'consortium-id': consortiumId,\n\n      facets:\n        'affiliations,certificates,citations,clients,created,downloads,fieldsOfScience,licenses,linkChecksStatus,prefixes,providers,published,registered,resourceTypes,schemaVersions,states,subjects,views',\n\n      'disable-facets': 'false'\n    });\n\n    return hash({\n      provider: this.modelFor('providers/show'),\n      dois: this.store\n        .query('doi', params)\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read provider', this.modelFor('providers/show'))) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class EditRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  async model() {\n    let provider = this.modelFor('providers/show');\n    provider.set('confirmSymbol', provider.get('symbol'));\n\n    let contacts = await provider.get('contacts')\n    let filteredContacts = contacts.filter(function (contact) {\n      return contact.deleted === null;\n    })\n    provider.set('filteredContacts', filteredContacts)\n    provider.set(\"consortium_id\", this.modelFor('providers/show').get('consortium.id'));\n\n    return provider;\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read provider', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class InfoRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  model() {\n    return this.modelFor('providers/show');\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read provider', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size,\n        include: 'contacts'\n      },\n      'consortium-id': this.modelFor('providers/show').get('id')\n    });\n\n    return hash({\n      provider: this.modelFor('providers/show'),\n      organizations: this.store\n        .query('provider', params)\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    region: {\n      refreshModel: true\n    },\n    year: {\n      refreshModel: true\n    },\n    'member-type': {\n      refreshModel: true\n    },\n    'organization-type': {\n      refreshModel: true\n    },\n    'focus-area': {\n      refreshModel: true\n    },\n    'non-profit-status': {\n      refreshModel: true\n    },\n    'has-required-contacts': {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read provider', this.modelFor('providers/show'))) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class NewRoute extends Route {\n  @service\n  can;\n\n  @service\n  store;\n\n  model() {\n    let provider = this.modelFor('providers/show');\n    let organization = this.store.createRecord('provider', {\n      consortium: provider,\n      memberType: 'consortium_organization',\n      billingInformation: {},\n      votingContact: null,\n      serviceContact: null,\n      secondaryServiceContact: null,\n      technicalContact: null,\n      secondaryTechnicalContact: null,\n      billingContact: null,\n      secondaryBillingContact: null,\n      isActive: true\n    });\n\n    return hash({\n      provider,\n      organization\n    });\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class PrefixesRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { A } from '@ember/array';\n\n@classic\nexport default class DeleteRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let self = this;\n    return this.store\n      .query('provider-prefix', {\n        'provider-id': this.modelFor('providers/show').get('id'),\n        'prefix-id': params.prefix_id\n      })\n      .then(function (providerPrefixes) {\n        return A(providerPrefixes).get('firstObject');\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let providerId = null;\n    let consortiumId = null;\n    let model = this.modelFor('providers/show');\n    if (model.memberType === 'consortium') {\n      consortiumId = model.get('id');\n    } else {\n      providerId = model.get('id');\n    }\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      'provider-id': providerId,\n      'consortium-id': consortiumId\n    });\n\n    return hash({\n      provider: this.modelFor('providers/show'),\n      currentUser: this.currentUser,\n      prefixes: this.store\n        .query('provider-prefix', params, { reload: true })\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    state: {\n      refreshModel: true\n    },\n    year: {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read provider', this.modelFor('providers/show'))) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class NewRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let provider = this.modelFor('providers/show');\n\n    return hash({\n      provider: this.store.findRecord('provider', provider.get('id')),\n      'provider-prefix': this.store.createRecord('provider-prefix', {\n        provider\n      })\n    });\n  }\n\n  setupController(controller, model) {\n    super.setupController(controller, model);\n\n    this.controllerFor('providers.show.prefixes.new').send(\n      'searchPrefixAction',\n      null\n    );\n  }\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo(\n        'providers.show.prefixes',\n        this.modelFor('providers/show')\n      );\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { A } from '@ember/array';\n\n@classic\nexport default class ShowRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let self = this;\n    return this.store\n      .query('provider-prefix', {\n        'provider-id': this.modelFor('providers/show').get('id'),\n        'prefix-id': params.prefix_id\n      })\n      .then(function (providerPrefixes) {\n        return A(providerPrefixes).get('firstObject');\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  currentUser;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let providerId = null;\n    let consortiumId = null;\n    let model = this.modelFor('providers/show');\n    if (model.memberType === 'consortium') {\n      consortiumId = model.get('id');\n    } else {\n      providerId = model.get('id');\n    }\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      'provider-id': providerId,\n      'consortium-id': consortiumId\n    });\n\n    return hash({\n      provider: this.modelFor('providers/show'),\n      currentUser: this.currentUser,\n      repositories: this.store\n        .query('repository', params)\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    year: {\n      refreshModel: true\n    },\n    software: {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read provider', this.modelFor('providers/show'))) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class NewRoute extends Route {\n  @service\n  can;\n\n  @service\n  store;\n\n  model() {\n    let provider = this.modelFor('providers/show');\n    let repository = this.store.createRecord('repository', {\n      provider,\n      symbol: provider.id.toUpperCase() + '.',\n      clientType: 'repository',\n      language: [],\n      repositoryType: [],\n      certificate: [],\n      issn: this.store.createFragment('issn'),\n      serviceContact: this.store.createFragment('contact-fragment')\n    });\n\n    repository.get('language').pushObject('');\n    repository.get('repositoryType').pushObject('');\n    repository.get('certificate').pushObject('');\n\n    return hash({\n      provider,\n      repository,\n      'provider-prefix': null,\n      'repository-prefix': this.store.createRecord('repositoryPrefix', {\n        repository\n      })\n    });\n  }\n\n  setupController(controller, model) {\n    // Call _super to maintain default behavior (controller.set('model', model))\n    super.setupController(controller, model);\n\n    // Custom setup: Set additional properties\n    controller.set('isSoftwareFieldActive', false);\n  }\n\n  resetController(controller, isExiting, transition) {\n    // If the user is exiting the route entirely, reset the transient properties\n    if (isExiting) {\n      controller.set('isSoftwareFieldActive', false);\n    }\n\n    // Calls the default resetController behavior (important for query params)\n    super.resetController(controller, isExiting, transition);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class RepositoriesRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  flashMessages;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      include: 'provider'\n    });\n\n    return hash({\n      provider: null,\n      repositories: this.store\n        .query('repository', params)\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    year: {\n      refreshModel: true\n    },\n    software: {\n      refreshModel: true\n    },\n    language: {\n      refreshModel: true\n    },\n    certificate: {\n      refreshModel: true\n    },\n    'provider-id': {\n      refreshModel: true\n    },\n    'client-type': {\n      refreshModel: true\n    },\n    'repository-type': {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo('index');\n    } else if (this.get('currentUser.role_id') === 'staff_admin') {\n      let self = this;\n      this.prefixes.available().then(\n        function (value) {\n          if (value <= 0) {\n            self\n              .get('flashMessages')\n              .danger(\n                'There are 0 prefixes available. Request new prefixes to CNRI.'\n              );\n          }\n        },\n        function (reason) {\n          console.debug(reason);\n        }\n      );\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class ShowRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  flashMessages;\n\n  @service\n  headData;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let self = this;\n\n    return this.store\n      .findRecord('repository', params.repository_id.toLowerCase(), {\n        include: 'provider,prefixes'\n      })\n      .then(function (repository) {\n        self.headData.set('title', repository.name);\n        self.headData.set('description', repository.description);\n\n        return repository;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('index');\n      });\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read repository', model)) {\n      this.router.transitionTo('index');\n    } else {\n      if (this.paramsFor(this.routeName).assignedPrefix) {\n        this.flashMessages.success(\n          'Assigned prefix is: ' + this.paramsFor(this.routeName).assignedPrefix\n        );\n      }\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class AnalyticsRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n\n    return this.store\n      .findRecord('repository', this.modelFor('repositories/show').get('id'), {\n        include: 'provider'\n      })\n      .then(function (repository) {\n        return repository;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (\n      this.can.cannot('read repository', this.modelFor('repositories/show'))\n    ) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class ChangeRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let repository = this.modelFor('repositories/show');\n    repository.set('confirmSymbol', repository.get('symbol'));\n    return repository;\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('update repository', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class DeleteRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  router;\n\n  model() {\n    return this.modelFor('repositories/show');\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read repository', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class DoisRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      'client-id': this.modelFor('repositories/show').get('id'),\n\n      facets:\n        'affiliations,certificates,citations,clients,created,downloads,fieldsOfScience,licenses,linkChecksStatus,prefixes,providers,published,registered,resourceTypes,schemaVersions,states,subjects,views',\n\n      'disable-facets': 'false'\n    });\n\n    return hash({\n      repository: this.modelFor('repositories/show'),\n      dois: this.store\n        .query('doi', params)\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        }),\n      page: params['page']['number']\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (\n      this.can.cannot('read repository', this.modelFor('repositories/show'))\n    ) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class NewRoute extends Route {\n  @service\n  can;\n\n  @service\n  flashMessages;\n\n  @service\n  store;\n\n  model() {\n    let repository = this.modelFor('repositories/show');\n    let doi = this.store.createRecord('doi', {\n      repository,\n      mode: 'new',\n      state: 'draft',\n      titles: [],\n      descriptions: [],\n      creators: []\n    });\n\n    return hash({\n      repository,\n      doi\n    });\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class UploadRoute extends Route {\n  @service\n  can;\n\n  @service\n  store;\n\n  model() {\n    let repository = this.modelFor('repositories/show');\n    let doi = this.store.createRecord('doi', {\n      repository,\n      mode: 'upload',\n      state: 'draft'\n    });\n\n    return hash({\n      repository,\n      doi\n    });\n  }\n\n  // afterModel(model) {\n  //   if (this.get('can').cannot('create doi', model)) {\n  //     return this.transitionTo('index');\n  //   }\n  // }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { clientTypeList } from 'bracco/models/repository';\n\n@classic\nexport default class EditRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  model() {\n    let repository = this.modelFor('repositories/show');\n    repository.set('confirmSymbol', repository.get('symbol'));\n    return repository;\n  }\n\n  afterModel() {\n    if (\n      this.can.cannot('update repository', this.modelFor('repositories/show'))\n    ) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  setupController(controller, model) {\n    super.setupController(controller, model);\n\n    const filteredClientTypeList =\n      model.get('clientType') === 'igsnCatalog'\n        ? clientTypeList.filter(function (object) {\n            return object.value === 'igsnCatalog';\n          })\n        : clientTypeList.filter(function (object) {\n            return object.value !== 'igsnCatalog';\n          });\n\n    controller.set('clientTypeList', filteredClientTypeList);\n    controller.set('clientTypes', filteredClientTypeList);\n    controller.set('isSoftwareFieldActive', false);\n  }\n\n  resetController(controller, isExiting, transition) {\n    // If the user is exiting the route entirely, reset the transient properties\n    if (isExiting) {\n      controller.set('isSoftwareFieldActive', false);\n    }\n\n    // Calls the default resetController behavior (important for query params)\n    super.resetController(controller, isExiting, transition);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class InfoRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  flashMessages;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    return this.store\n      .findRecord('repository', this.modelFor('repositories/show').get('id'), {\n        include: 'provider'\n      })\n      .then(function (repository) {\n        return repository;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (\n      this.can.cannot('read repository', this.modelFor('repositories/show'))\n    ) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class PrefixesRoute extends Route {\n  @service\n  store;\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { A } from '@ember/array';\n\n@classic\nexport default class DeleteRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let self = this;\n    return this.store\n      .query('repository-prefix', {\n        'repository-id': this.modelFor('repositories/show').get('id'),\n        'prefix-id': params.prefix_id\n      })\n      .then(function (repositoryPrefixes) {\n        return A(repositoryPrefixes).get('firstObject');\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('delete prefix', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n\n  @action\n  refreshCurrentRoute() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let repositoryId = this.modelFor('repositories/show').get('id');\n\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      'repository-id': repositoryId\n    });\n\n    return hash({\n      repository: this.store.findRecord('repository', repositoryId),\n      'repository-prefixes': this.store\n        .query('repository-prefix', params, { reload: true })\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n  }\n\n  afterModel() {\n    if (\n      this.can.cannot('read repository', this.modelFor('repositories/show'))\n    ) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n\n  @action\n  refreshCurrentRoute() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class NewRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let repository = this.modelFor('repositories/show');\n    return hash({\n      repository: this.store.findRecord('repository', repository.get('id')),\n      'repository-prefix': this.store.createRecord('repositoryPrefix', {\n        repository\n      })\n    });\n  }\n\n  setupController(controller, model) {\n    super.setupController(controller, model);\n\n    this.controllerFor('repositories.show.prefixes.new').send(\n      'searchPrefixAction',\n      null\n    );\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n\n  @action\n  refreshCurrentRoute() {\n    this.refresh();\n  }\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo(\n        'repositories.show.prefixes',\n        this.modelFor('repositories/show')\n      );\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { A } from '@ember/array';\n\n@classic\nexport default class ShowRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let self = this;\n    return this.store\n      .query('repository-prefix', {\n        'repository-id': this.modelFor('repositories/show').get('id'),\n        'prefix-id': params.prefix_id\n      })\n      .then(function (repositoryPrefixes) {\n        return A(repositoryPrefixes).get('firstObject');\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read prefix', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class TransferRepositoryRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class TransferRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    return this.store\n      .findRecord('repository', this.modelFor('repositories/show').get('id'), {\n        include: 'provider'\n      })\n      .then(function (repository) {\n        return repository;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').warning(reason);\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (\n      this.can.cannot('read repository', this.modelFor('repositories/show'))\n    ) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class ResetRoute extends Route {\n  @service\n  router;\n\n  @service\n  session;\n\n  beforeModel(transition) {\n    this.session.prohibitAuthentication('index');\n  }\n\n  @action\n  close() {\n    this.router.transitionTo('index');\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class SettingsRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  @service\n  flashMessages;\n\n  model() {\n    if (this.can.can('read index')) {\n      let self = this;\n      return this.store\n        .findRecord('provider', 'admin')\n        .then(function (model) {\n          return model;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n\n          self.get('flashMessages').warning(reason);\n        });\n    }\n  }\n\n  afterModel() {\n    if (this.can.cannot('read index') && this.currentUser) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class SignInRoute extends Route {\n  @service\n  session;\n\n  beforeModel(transition) {\n    this.session.prohibitAuthentication('index');\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class UsersRoute extends Route {}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class IndexRoute extends Route {\n  @service\n  can;\n\n  @service\n  currentUser;\n\n  @service\n  flashMessages;\n\n  @service\n  prefixes;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      }\n    });\n\n    return this.store\n      .query('user', params)\n      .then(function (result) {\n        return result;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return null;\n      });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    },\n    'provider-id': {\n      refreshModel: true\n    },\n    'repository-id': {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read index')) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\nimport { set, action } from '@ember/object';\n\nimport { all } from 'rsvp';\n\n@classic\nexport default class ShowRoute extends Route {\n  @service\n  can;\n\n  @service\n  features;\n\n  @service\n  headData;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let self = this;\n\n    let parameters = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      'user-id': `${params.user_id}`,\n\n      facets:\n        'affiliations,certificates,citations,clients,created,downloads,fieldsOfScience,licenses,linkChecksStatus,prefixes,providers,published,registered,resourceTypes,schemaVersions,states,subjects,views',\n\n      'disable-facets': 'false'\n    });\n\n    // eslint-disable-next-line no-undef\n    return new Promise(function (resolve, reject) {\n      all([\n        self.store\n          .findRecord('user', params.user_id)\n          .then(function (user) {\n            set(self, 'headData.title', user.name);\n            return user;\n          })\n          .catch(function (reason) {\n            console.debug(reason);\n\n            self.get('flashMessages').add({\n              message:\n                'No results found. The ORCID record ' +\n                params.user_id +\n                ' has not been linked to any DOIs. Contact the repository where your resources are deposited to request your ORCID record is linked to your contents DOIs. Or visit our support website, at https://support.datacite.org/docs/datacite-researcher-profiles, for more information.',\n              href: 'https://support.datacite.org/docs/datacite-researcher-profiles',\n              type: 'warning'\n            });\n            self.router.transitionTo('/');\n          }),\n        self.store\n          .query('doi', parameters)\n          .then(function (result) {\n            return result.meta;\n          })\n          .catch((error) => console.log(error))\n      ])\n        .then(function ([hashA, hashB]) {\n          resolve(Object.assign(hashA, hashB));\n        })\n        .catch(reject);\n    });\n  }\n\n  afterModel(model) {\n    if (this.can.cannot('read user', model)) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport { hash } from 'rsvp';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class DoisRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model(params) {\n    let user = this.modelFor('users/show');\n    params = Object.assign(params, {\n      page: {\n        number: params.page,\n        size: params.size\n      },\n      'user-id': user.get('id'),\n\n      facets:\n        'affiliations,certificates,citations,clients,created,downloads,fieldsOfScience,licenses,linkChecksStatus,prefixes,providers,published,registered,resourceTypes,schemaVersions,states,subjects,views',\n\n      'disable-facets': 'false'\n    });\n\n    return hash({\n      user,\n      dois: this.store\n        .query('doi', params)\n        .then(function (result) {\n          return result;\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return null;\n        })\n    });\n  }\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    size: {\n      refreshModel: true\n    }\n  };\n\n  afterModel() {\n    if (this.can.cannot('read user', this.modelFor('users/show').user)) {\n      this.router.transitionTo('index');\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\nimport Route from '@ember/routing/route';\n\n@classic\nexport default class InfoRoute extends Route {\n  @service\n  can;\n\n  @service\n  router;\n\n  @service\n  store;\n\n  model() {\n    let self = this;\n    return this.store\n      .findRecord('user', this.modelFor('users/show').get('id'))\n      .then(function (user) {\n        return user;\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n\n        self.get('flashMessages').add({\n          message:\n            'No results found. The ORCID record has not been linked to any DOIs. Contact the repository where your resources are deposited to request your ORCID record is linked to your contents DOIs. Or visit our support website, at https://support.datacite.org/docs/datacite-researcher-profiles, for more information.',\n          href: 'https://support.datacite.org/docs/datacite-researcher-profiles',\n          type: 'warning'\n        });\n        self.router.transitionTo('/');\n      });\n  }\n\n  afterModel() {\n    if (this.can.cannot('read user', this.modelFor('users/show'))) {\n      this.router.transitionTo('index');\n    }\n  }\n\n  @action\n  queryParamsDidChange() {\n    this.refresh();\n  }\n}\n","import JSONAPISerializer from '@ember-data/serializer/json-api';\n\nexport default JSONAPISerializer.extend({\n  keyForAttribute(key) {\n    return key;\n  },\n  normalizeFindRecordResponse(store, primaryModelClass, payload) {\n    payload.data.attributes.meta = payload.meta || {};\n\n    return this._super.apply(this, arguments);\n  },\n  modelNameFromPayloadKey(modelName) {\n    if (modelName === 'clients') {\n      return this._super('repositories');\n    } else {\n      return this._super(...arguments);\n    }\n  }\n});\n","import ApplicationSerializer from './application';\n\nexport default ApplicationSerializer.extend({\n  serialize(snapshot) {\n    let json = this._super(...arguments);\n\n    // don't send back these attributes if file upload form is used\n    if (snapshot.attr('mode') === 'modify') {\n      delete json.data.attributes.creators;\n      delete json.data.attributes.titles;\n      delete json.data.attributes.description;\n      delete json.data.attributes.publisher;\n      delete json.data.attributes.publicationYear;\n      delete json.data.attributes.types;\n    }\n\n    return json;\n  },\n  attrs: {\n    // reserved attribute names\n    breason: { key: 'reason' },\n    bcontainer: { key: 'container', serialize: false },\n\n    // don't send back these attributes, as updates are not implemented yet\n    // identifiers: { serialize: false },\n    contentUrl: { serialize: false },\n    // subjects: { serialize: false },\n    // contributors: { serialize: false },\n    // dates: { serialize: false },\n    // language: { serialize: false },\n    // relatedIdentifiers: { serialize: false },\n    // sizes: { serialize: false },\n    // formats: { serialize: false },\n    // version: { serialize: false },\n    // rightsList: { serialize: false },\n    // geoLocations: { serialize: false },\n    // fundingReferences: { serialize: false },\n    // schemaVersion: { serialize: false },\n\n    // don't send back these attributes, as they are managed by the API\n    prefix: { serialize: false },\n    suffix: { serialize: false },\n    metadataVersion: { serialize: false },\n    created: { serialize: false },\n    registered: { serialize: false },\n    updated: { serialize: false },\n    isActive: { serialize: false },\n\n    citationCount: { serialize: false },\n    downloadCount: { serialize: false },\n    viewCount: { serialize: false },\n    meta: { serialize: false }\n  },\n  keyForAttribute(key) {\n    return key;\n  },\n  // don't return this._super('client')\n  keyForRelationship(key) {\n    if (key === 'repository') {\n      return 'client';\n    } else {\n      return this._super(...arguments);\n    }\n  },\n  normalizeFindRecordResponse(store, primaryModelClass, payload) {\n    payload.data.attributes.meta = payload.meta || {};\n\n    return this._super.apply(this, arguments);\n  }\n});\n","import classic from 'ember-classic-decorator';\nimport JSONSerializer from '@ember-data/serializer/json';\nimport { underscore } from '@ember/string';\n\n@classic\nexport default class Funder extends JSONSerializer {\n  normalizeArrayResponse(store, primaryModelClass, payload, id, requestType) {\n    let total = payload.message.total_results;\n    let totalPages = Math.min(Math.ceil(total / 20), 500);\n    let meta = { meta: { total, totalPages } };\n    payload = payload.message.items.map((item) => {\n      item.id = '10.13039/' + item.id;\n      return item;\n    });\n    let data = super.normalizeArrayResponse(store, primaryModelClass, payload, id, requestType);\n    return Object.assign(data, meta);\n  }\n\n  normalizeSingleResponse(store, primaryModelClass, payload, id, requestType) {\n    // add DOI prefix\n    payload.id = '10.13039/' + payload.message.id;\n    return super.normalizeSingleResponse(store, primaryModelClass, payload, id, requestType);\n  }\n\n  keyForAttribute(attr) {\n    return underscore(attr);\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport JSONSerializer from '@ember-data/serializer/json';\nimport { isBlank, typeOf } from '@ember/utils';\n\n@classic\nexport default class GeoLocation extends JSONSerializer {\n  serialize(snapshot) {\n    let json = {};\n\n    snapshot.eachAttribute((key) => {\n      json[key] = snapshot.attr(key);\n    });\n\n    Object.keys(json).forEach((key) => {\n      if (Object.keys(this.filterNull(json[key], key)).length === 0) {\n        delete json[key];\n      } else {\n        json[key] = this.filterNull(json[key], key);\n      }\n    });\n\n    return json;\n  }\n\n  filterNull(snapshot, key) {\n    if (isBlank(snapshot)) {\n      return {};\n    }\n    if ( \n      typeOf(snapshot) === 'string' ||\n      (snapshot.constructor.name === 'Array' && key === 'geoLocationPolygon')\n    ) {\n      return snapshot;\n    }\n\n    let json = {\n      id: snapshot.id\n    };\n\n    snapshot.eachAttribute((key) => {\n      json[key] = snapshot.attr(key);\n    });\n\n    Object.keys(json).forEach((key) => isBlank(json[key]) && delete json[key]);\n\n    return json;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport JSONSerializer from '@ember-data/serializer/json';\n\n@classic\nexport default class Person extends JSONSerializer {\n  normalizeSingleResponse(store, primaryModelClass, payload, id, requestType) {\n    let name = payload.person.name;\n\n    payload = {\n      id: payload['orcid-identifier'].path,\n      name: name['credit-name'] ? name['credit-name'].value : null,\n      givenName: name['given-names'] ? name['given-names'].value : null,\n      familyName: name['family-name'] ? name['family-name'].value : null\n    };\n\n    return super.normalizeSingleResponse(store, primaryModelClass, payload, id, requestType);\n  }\n  // normalizeFindRecordResponse(store, primaryModelClass, payload) {\n  //   payload.data.attributes.meta = payload.meta || {};\n\n  //   return this._super(store, primaryModelClass, payload);\n  // },\n  // keyForAttribute(attr) {\n  //   return underscore(attr);\n  // }\n}\n","import classic from 'ember-classic-decorator';\nimport ApplicationSerializer from './application';\n\n@classic\nexport default class Prefix extends ApplicationSerializer {\n  // don't return this._super('client')\n  keyForRelationship(key) {\n    if (key === 'repositories') {\n      return 'clients';\n    } else {\n      return super.keyForRelationship(...arguments);\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport ApplicationSerializer from './application';\n\n@classic\nexport default class ProviderPrefix extends ApplicationSerializer {\n  // don't return this._super('client')\n  keyForRelationship(key) {\n    if (key === 'repositories') {\n      return 'clients';\n    } else {\n      return super.keyForRelationship(...arguments);\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport ApplicationSerializer from './application';\n\n@classic\nexport default class Provider extends ApplicationSerializer {\n  keyForRelationship(key) {\n    return key;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport JSONSerializer from '@ember-data/serializer/json';\nimport { isBlank, typeOf } from '@ember/utils';\n\n@classic\nexport default class RelatedItem extends JSONSerializer {\n  serialize(snapshot) {\n    let json = {};\n\n    snapshot.eachAttribute((key) => {\n      json[key] = snapshot.attr(key);\n    });\n\n    Object.keys(json).forEach((key) => {\n      if (Object.keys(this.filterNull(json[key])).length === 0) {\n        delete json[key];\n      } else {\n        json[key] = this.filterNull(json[key]);\n        if (typeOf(json[key]) == 'array') {\n          json[key] = json[key].filter((item) => {\n            return Object.keys(item).length > 0;\n          });\n        }\n      }\n    });\n\n    return json;\n  }\n\n  filterNull(snapshot) {\n    if (isBlank(snapshot)) {\n      return {};\n    }\n\n    if (typeOf(snapshot) === 'string') {\n      return snapshot;\n    }\n\n    if (typeOf(snapshot) === 'array') {\n      if (snapshot.length > 0) {\n        return snapshot.map((item) => this.filterNull(item));\n      } else {\n        return {};\n      }\n    }\n\n    let json = {\n      id: snapshot.id\n    };\n\n    snapshot.eachAttribute((key) => {\n      json[key] = snapshot.attr(key);\n    });\n\n    Object.keys(json).forEach((key) => isBlank(json[key]) && delete json[key]);\n\n    return json;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport JSONSerializer from '@ember-data/serializer/json';\nimport { underscore } from '@ember/string';\n\n@classic\nexport default class Ror extends JSONSerializer {\n  normalizeArrayResponse(store, primaryModelClass, payload, id, requestType) {\n    let total = payload.number_of_results;\n    let totalPages = Math.min(Math.ceil(total / 20), 500);\n    let meta = { meta: { total, totalPages } };\n\n    // ROR v2: 'items' replaced with 'data'\n    let records = payload.items || payload.data || [];\n\n    payload = records.map((item) => this._normalizeRorRecord(item));\n\n    let data = super.normalizeArrayResponse(store, primaryModelClass, payload, id, requestType);\n    return Object.assign(data, meta);\n  }\n\n  normalizeSingleResponse(store, primaryModelClass, payload, id, requestType) {\n    // ROR v2: 'id' still has 'https://ror.org/'\n    payload.id = payload.id?.substr(8);\n\n    payload = this._normalizeRorRecord(payload);\n\n    return super.normalizeSingleResponse(store, primaryModelClass, payload, id, requestType);\n  }\n\n  /**\n   * Normalize a single ROR record (used for both single + array responses)\n   * Priority for name types: ror_display -> label -> alias -> primary -> first\n   */\n  _normalizeRorRecord(item) {\n    if (Array.isArray(item.names) && item.names.length > 0) {\n      const preferredTypes = ['ror_display', 'label', 'alias', 'primary'];\n      let nameEntry = null;\n\n      for (let t of preferredTypes) {\n        nameEntry = item.names.find((n) => Array.isArray(n.types) && n.types.includes(t));\n        if (nameEntry) break;\n      }\n\n      // fallback to first names entry if none of the preferred types are present\n      if (!nameEntry) {\n        nameEntry = item.names[0];\n      }\n\n      item.name = nameEntry?.value || item.name;\n    }\n\n    // Normalize country if nested structure present\n    if (item.country && typeof item.country === 'object') {\n      item.country = item.country.country_name || item.country;\n    }\n\n    // ensure arrays are at least empty arrays to avoid template errors\n    item.aliases = item.aliases || [];\n    item.acronyms = item.acronyms || [];\n    item.links = item.links || [];\n\n    return item;\n  }\n\n  keyForAttribute(attr) {\n    return underscore(attr);\n  }\n}\n","import CookiesService from 'ember-cookies/services/cookies';\n\nexport default CookiesService;\n","import classic from 'ember-classic-decorator';\nimport { resolve } from 'rsvp';\nimport Service, { inject as service } from '@ember/service';\nimport { isEmpty } from '@ember/utils';\nimport nodeJsonWebToken from 'jsonwebtoken';\nimport ENV from 'bracco/config/environment';\n\n@classic\nexport default class CurrentUserService extends Service {\n  @service\n  session;\n\n  @service\n  store;\n\n  @service\n  flashMessages;\n\n  @service\n  features;\n\n  uid = null;\n  jwt = null;\n  name = null;\n  email = null;\n  role_id = null;\n  roleName = null;\n  provider_id = null;\n  client_id = null;\n  home = null;\n  settings = null;\n  isAdmin = false;\n  isConsortium = false;\n  isProvider = false;\n  isClient = false;\n  isUser = false;\n  isDeveloper = false;\n  isBetaTester = false;\n\n  load() {\n    if (this.get('session.data.authenticated.access_token')) {\n      // using authenticator:oauth2\n      let jwt = this.get('session.data.authenticated.access_token');\n\n      // rejecting revoked tokens\n      if (ENV.JWT_BLACKLISTED.split(',').includes(jwt)) {\n        jwt = null;\n        this.flashMessages.danger(\n          'Unable to authenticate because the token has been revoked.'\n        );\n      }\n      // RSA public key\n      let cert = ENV.JWT_PUBLIC_KEY\n        ? ENV.JWT_PUBLIC_KEY.replace(/\\\\n/g, '\\n')\n        : null;\n\n      // verify asymmetric token, using RSA with SHA-256 hash algorithm\n      let self = this;\n      nodeJsonWebToken.verify(\n        jwt,\n        cert,\n        { algorithms: ['RS256'] },\n        function (error, payload) {\n          if (payload) {\n            self.set('jwt', jwt);\n            self.initUser(payload);\n          } else if (error.message !== 'jwt must be provided') {\n            self.session.invalidate().then(function () {\n              self\n                .get('flashMessages')\n                .danger(\n                  'Unable to authenticate because the token was wrong or has expired.'\n                );\n            });\n          }\n        }\n      );\n    } else if (this.get('session.data.authenticated.role_id')) {\n      // using authenticator:test\n      this.initUser(this.get('session.data.authenticated'));\n    }\n    return resolve();\n  }\n\n  initUser(payload) {\n    if (!isEmpty(payload) && !isEmpty(payload.uid)) {\n      this.set('uid', payload.uid);\n      this.set('name', payload.name);\n      this.set('email', payload.email);\n      this.set('provider_id', payload.provider_id);\n      this.set('client_id', payload.client_id);\n      this.set('role_id', payload.role_id);\n      this.set('isBetaTester', payload.beta_tester);\n\n      if (payload.role_id === 'staff_admin' && payload.uid === 'admin') {\n        this.set('isAdmin', true);\n        this.set('home', { route: 'providers' });\n        this.set('settings', { route: 'index' });\n        this.set('roleName', 'Staff');\n        this.features.enable('showResearchers');\n      } else if (payload.role_id === 'staff_admin') {\n        // other users with role_id staff_admin are developers\n        this.set('isDeveloper', true);\n        this.set('isAdmin', true);\n        this.set('home', { route: 'providers.show', id: this.uid });\n        this.set('settings', { route: 'providers.show', id: this.uid });\n        this.set('roleName', 'Developer');\n      } else if (payload.role_id === 'consortium_admin') {\n        this.set('isConsortium', true);\n        this.set('home', { route: 'providers.show', id: this.uid });\n        this.set('settings', { route: 'providers.show', id: this.uid });\n        this.set('roleName', 'Consortium');\n      } else if (payload.role_id === 'provider_admin') {\n        this.set('isProvider', true);\n        this.set('home', { route: 'providers.show', id: this.uid });\n        this.set('settings', { route: 'providers.show', id: this.uid });\n        this.set('roleName', 'Member');\n      } else if (payload.role_id === 'client_admin') {\n        this.set('isClient', true);\n        this.set('home', { route: 'repositories.show', id: this.uid });\n        this.set('settings', { route: 'repositories.show', id: this.uid });\n        this.set('roleName', 'Repository');\n      } else if (payload.role_id === 'user') {\n        this.set('home', { route: 'users.show', id: this.uid });\n        this.set('settings', { route: 'users.show', id: this.uid });\n        this.set('roleName', 'User');\n      } else if (payload.role_id === 'temporary') {\n        this.set('home', { route: 'password' });\n      }\n\n      if (payload.uid.startsWith('0')) {\n        this.set('isUser', true);\n        this.set('home', { route: 'users.show', id: this.uid });\n      }\n\n      if (payload.beta_tester) {\n        this.features.setup({\n          'show-researchers': true\n        });\n      }\n\n      // if (![ 'user', 'temporary' ].includes(payload.role_id)) {\n      //   this.flashMessages.info('Welcome ' + this.name + ' to the Fabrica administration area.');\n      // }\n    }\n  }\n}\n","import Features from 'ember-feature-flags/services/features';\nimport config from '../config/environment';\n\nexport default Features.extend({\n  config,\n  init() {\n    this._super(...arguments);\n\n    if (config.featureFlags) {\n      this.setup(config.featureFlags);\n    }\n  }\n\n});\n","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\nexport { default } from 'ember-intl/services/intl';\n","import Media from 'ember-responsive/services/media';\nexport default Media;\n","import MomentService from 'ember-moment/services/moment';\nimport config from '../config/environment';\n\nexport default class MomentOverride extends MomentService {\n  defaultFormat = (config.moment && config.moment.outputFormat) || null;\n}\n","import classic from 'ember-classic-decorator';\nimport Service, { inject as service } from '@ember/service';\nimport ENV from 'bracco/config/environment';\nimport fetch from 'fetch';\n\n@classic\nexport default class PrefixesService extends Service {\n  @service\n  store;\n\n  init() {\n    super.init(...arguments);\n    this.min = ENV.MIN_PREFIXES_AVAILABLE;\n    this.msg_zero =\n      'There are 0 prefixes available. Request new prefixes from CNRI.';\n    this.msg_min =\n      'There are fewer than ' +\n      this.min +\n      ' prefixes available. Contact CNRI and request more prefixes.';\n  }\n\n  get_n_available() {\n    let promise = new Promise((resolve, reject) => {\n      const url =\n        ENV.API_URL + '/prefixes?page[number]=1&page[size]=0&state=unassigned';\n      const headers = { Accept: 'application/json' };\n      fetch(url, {\n        headers\n      })\n        .then((response) => {\n          response.text().then((text) => {\n            try {\n              let json = JSON.parse(text);\n              if (!response.ok) {\n                response.responseJSON = json;\n                reject(response);\n              } else {\n                resolve(json.meta.total);\n              }\n            } catch (SyntaxError) {\n              response.responseText = text;\n              reject(response);\n            }\n          });\n        })\n        .catch(reject);\n    });\n\n    return promise;\n  }\n\n  get_n_available_pp(provider_id = null) {\n    let promise = new Promise((resolve, reject) => {\n      const url =\n        ENV.API_URL +\n        '/provider-prefixes?provider-id=' +\n        provider_id +\n        '&page[number]=1&page[size]=0&state=without-repository';\n      const headers = { Accept: 'application/json' };\n      fetch(url, {\n        headers\n      })\n        .then((response) => {\n          response.text().then((text) => {\n            try {\n              let json = JSON.parse(text);\n              if (!response.ok) {\n                response.responseJSON = json;\n                reject(response);\n              } else {\n                resolve(json.meta.total);\n              }\n            } catch (SyntaxError) {\n              response.responseText = text;\n              reject(response);\n            }\n          });\n        })\n        .catch(reject);\n    });\n\n    return promise;\n  }\n\n  prefix_list(n = 1, provider_id = null, query = '') {\n    let tot = n < 0 ? 0 : n;\n    let prefixes = [];\n\n    let promise = new Promise((resolve, reject) => {\n      this.store\n        .query('provider-prefix', {\n          query,\n          'provider-id': provider_id,\n          state: 'without-repository',\n          sort: 'name',\n          'page[size]': provider_id == null ? 0 : tot\n        })\n        .then((values) => {\n          values.forEach(function (value) {\n            prefixes.push(value);\n          });\n          this.store\n            .query('prefix', {\n              query,\n              state: 'unassigned',\n              sort: 'name',\n              'page[size]': tot - values.length\n            })\n            .then(function (values) {\n              values.forEach(function (value) {\n                prefixes.push(value);\n              });\n              resolve(prefixes);\n            });\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          reject(reason);\n        });\n    });\n\n    return promise;\n  }\n\n  //// These return a promise.\n\n  // Returns total available: pool prefixes + provider prefixes (0 if no provider_id given)\n  async available(provider_id = null) {\n    let m = 0;\n    if (provider_id) {\n      m = await this.get_n_available_pp(provider_id);\n    }\n\n    let n = await this.get_n_available();\n\n    return m + n;\n  }\n\n  // Returns total available: provider prefixes\n  async available_pp(provider_id = null) {\n    let m = 0;\n    if (provider_id) {\n      m = await this.get_n_available_pp(provider_id);\n    }\n\n    return m;\n  }\n\n  // Returns a mixed array of prefixes including available pool prefixes, and\n  // available provider_prefixes (if a provider is given).\n  async get_prefixes(n = 1, provider_id = null, query = '') {\n    let prefixes = await this.prefix_list(n, provider_id, query);\n\n    return prefixes;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport BaseSessionService from 'ember-simple-auth/services/session';\n\n@classic\nexport default class Session extends BaseSessionService {\n  @service\n  store;\n\n  @service\n  currentUser;\n\n  async handleAuthentication() {\n    try {\n      super.handleAuthentication(...arguments);\n      await this.currentUser.load();\n    } catch (err) {\n      await this.invalidate();\n    }\n  }\n}\n","import Service from '@ember/service';\nimport { A } from '@ember/array';\nimport spdx from 'bracco/spdx';\n\nexport default Service.extend({\n  spdxList: A([]),\n  init() {\n    this._super(...arguments);\n    this.getSpdxList();\n  },\n  getSpdxList() {\n    this.set('spdxList', spdx.licenses);\n    return true;\n  }\n});\n","import classic from 'ember-classic-decorator';\nimport CookieStore from 'ember-simple-auth/session-stores/cookie';\n\n@classic\nexport default class Application extends CookieStore {\n  cookieName = '_fabrica';\n  sameSite = 'Lax';\n}\n","export default {\n  licenses: [\n    {\n      reference: './0BSD.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/0BSD.json',\n      referenceNumber: '231',\n      name: 'BSD Zero Clause License',\n      licenseId: '0BSD',\n      seeAlso: ['http://landley.net/toybox/license.html'],\n      isOsiApproved: true\n    },\n    {\n      reference: './AAL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/AAL.json',\n      referenceNumber: '57',\n      name: 'Attribution Assurance License',\n      licenseId: 'AAL',\n      seeAlso: ['https://opensource.org/licenses/attribution'],\n      isOsiApproved: true\n    },\n    {\n      reference: './ADSL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/ADSL.json',\n      referenceNumber: '210',\n      name: 'Amazon Digital Services License',\n      licenseId: 'ADSL',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/AmazonDigitalServicesLicense'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './AFL-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AFL-1.1.json',\n      referenceNumber: '28',\n      name: 'Academic Free License v1.1',\n      licenseId: 'AFL-1.1',\n      seeAlso: [\n        'http://opensource.linux-mirror.org/licenses/afl-1.1.txt',\n        'http://wayback.archive.org/web/20021004124254/http://www.opensource.org/licenses/academic.php'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './AFL-1.2.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AFL-1.2.json',\n      referenceNumber: '215',\n      name: 'Academic Free License v1.2',\n      licenseId: 'AFL-1.2',\n      seeAlso: [\n        'http://opensource.linux-mirror.org/licenses/afl-1.2.txt',\n        'http://wayback.archive.org/web/20021204204652/http://www.opensource.org/licenses/academic.php'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './AFL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AFL-2.0.json',\n      referenceNumber: '330',\n      name: 'Academic Free License v2.0',\n      licenseId: 'AFL-2.0',\n      seeAlso: [\n        'http://wayback.archive.org/web/20060924134533/http://www.opensource.org/licenses/afl-2.0.txt'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './AFL-2.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AFL-2.1.json',\n      referenceNumber: '241',\n      name: 'Academic Free License v2.1',\n      licenseId: 'AFL-2.1',\n      seeAlso: ['http://opensource.linux-mirror.org/licenses/afl-2.1.txt'],\n      isOsiApproved: true\n    },\n    {\n      reference: './AFL-3.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AFL-3.0.json',\n      referenceNumber: '350',\n      name: 'Academic Free License v3.0',\n      licenseId: 'AFL-3.0',\n      seeAlso: [\n        'http://www.rosenlaw.com/AFL3.0.htm',\n        'https://opensource.org/licenses/afl-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './AGPL-1.0.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AGPL-1.0.json',\n      referenceNumber: '169',\n      name: 'Affero General Public License v1.0',\n      licenseId: 'AGPL-1.0',\n      seeAlso: ['http://www.affero.org/oagpl.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './AGPL-1.0-only.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/AGPL-1.0-only.json',\n      referenceNumber: '68',\n      name: 'Affero General Public License v1.0 only',\n      licenseId: 'AGPL-1.0-only',\n      seeAlso: ['http://www.affero.org/oagpl.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './AGPL-1.0-or-later.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/AGPL-1.0-or-later.json',\n      referenceNumber: '162',\n      name: 'Affero General Public License v1.0 or later',\n      licenseId: 'AGPL-1.0-or-later',\n      seeAlso: ['http://www.affero.org/oagpl.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './AGPL-3.0.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AGPL-3.0.json',\n      referenceNumber: '143',\n      name: 'GNU Affero General Public License v3.0',\n      licenseId: 'AGPL-3.0',\n      seeAlso: [\n        'https://www.gnu.org/licenses/agpl.txt',\n        'https://opensource.org/licenses/AGPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './AGPL-3.0-only.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AGPL-3.0-only.json',\n      referenceNumber: '287',\n      name: 'GNU Affero General Public License v3.0 only',\n      licenseId: 'AGPL-3.0-only',\n      seeAlso: [\n        'https://www.gnu.org/licenses/agpl.txt',\n        'https://opensource.org/licenses/AGPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './AGPL-3.0-or-later.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/AGPL-3.0-or-later.json',\n      referenceNumber: '154',\n      name: 'GNU Affero General Public License v3.0 or later',\n      licenseId: 'AGPL-3.0-or-later',\n      seeAlso: [\n        'https://www.gnu.org/licenses/agpl.txt',\n        'https://opensource.org/licenses/AGPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './AMDPLPA.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/AMDPLPA.json',\n      referenceNumber: '128',\n      name: \"AMD's plpa_map.c License\",\n      licenseId: 'AMDPLPA',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/AMD_plpa_map_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './AML.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/AML.json',\n      referenceNumber: '151',\n      name: 'Apple MIT License',\n      licenseId: 'AML',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Apple_MIT_License'],\n      isOsiApproved: false\n    },\n    {\n      reference: './AMPAS.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/AMPAS.json',\n      referenceNumber: '131',\n      name: 'Academy of Motion Picture Arts and Sciences BSD',\n      licenseId: 'AMPAS',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/BSD#AMPASBSD'],\n      isOsiApproved: false\n    },\n    {\n      reference: './ANTLR-PD.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/ANTLR-PD.json',\n      referenceNumber: '44',\n      name: 'ANTLR Software Rights Notice',\n      licenseId: 'ANTLR-PD',\n      seeAlso: ['http://www.antlr2.org/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './APAFML.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/APAFML.json',\n      referenceNumber: '240',\n      name: 'Adobe Postscript AFM License',\n      licenseId: 'APAFML',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/AdobePostscriptAFM'],\n      isOsiApproved: false\n    },\n    {\n      reference: './APL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/APL-1.0.json',\n      referenceNumber: '268',\n      name: 'Adaptive Public License 1.0',\n      licenseId: 'APL-1.0',\n      seeAlso: ['https://opensource.org/licenses/APL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './APSL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/APSL-1.0.json',\n      referenceNumber: '375',\n      name: 'Apple Public Source License 1.0',\n      licenseId: 'APSL-1.0',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/Apple_Public_Source_License_1.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './APSL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/APSL-1.1.json',\n      referenceNumber: '327',\n      name: 'Apple Public Source License 1.1',\n      licenseId: 'APSL-1.1',\n      seeAlso: [\n        'http://www.opensource.apple.com/source/IOSerialFamily/IOSerialFamily-7/APPLE_LICENSE'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './APSL-1.2.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/APSL-1.2.json',\n      referenceNumber: '194',\n      name: 'Apple Public Source License 1.2',\n      licenseId: 'APSL-1.2',\n      seeAlso: [\n        'http://www.samurajdata.se/opensource/mirror/licenses/apsl.php'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './APSL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/APSL-2.0.json',\n      referenceNumber: '136',\n      name: 'Apple Public Source License 2.0',\n      licenseId: 'APSL-2.0',\n      seeAlso: ['http://www.opensource.apple.com/license/apsl/'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Abstyles.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Abstyles.json',\n      referenceNumber: '72',\n      name: 'Abstyles License',\n      licenseId: 'Abstyles',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Abstyles'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Adobe-2006.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Adobe-2006.json',\n      referenceNumber: '299',\n      name: 'Adobe Systems Incorporated Source Code License Agreement',\n      licenseId: 'Adobe-2006',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/AdobeLicense'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Adobe-Glyph.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Adobe-Glyph.json',\n      referenceNumber: '332',\n      name: 'Adobe Glyph List License',\n      licenseId: 'Adobe-Glyph',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/MIT#AdobeGlyph'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Afmparse.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Afmparse.json',\n      referenceNumber: '321',\n      name: 'Afmparse License',\n      licenseId: 'Afmparse',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Afmparse'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Aladdin.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Aladdin.json',\n      referenceNumber: '304',\n      name: 'Aladdin Free Public License',\n      licenseId: 'Aladdin',\n      seeAlso: ['http://pages.cs.wisc.edu/~ghost/doc/AFPL/6.01/Public.htm'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Apache-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Apache-1.0.json',\n      referenceNumber: '32',\n      name: 'Apache License 1.0',\n      licenseId: 'Apache-1.0',\n      seeAlso: ['http://www.apache.org/licenses/LICENSE-1.0'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Apache-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Apache-1.1.json',\n      referenceNumber: '264',\n      name: 'Apache License 1.1',\n      licenseId: 'Apache-1.1',\n      seeAlso: [\n        'http://apache.org/licenses/LICENSE-1.1',\n        'https://opensource.org/licenses/Apache-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Apache-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Apache-2.0.json',\n      referenceNumber: '355',\n      name: 'Apache License 2.0',\n      licenseId: 'Apache-2.0',\n      seeAlso: [\n        'http://www.apache.org/licenses/LICENSE-2.0',\n        'https://opensource.org/licenses/Apache-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Artistic-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Artistic-1.0.json',\n      referenceNumber: '263',\n      name: 'Artistic License 1.0',\n      licenseId: 'Artistic-1.0',\n      seeAlso: ['https://opensource.org/licenses/Artistic-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Artistic-1.0-Perl.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Artistic-1.0-Perl.json',\n      referenceNumber: '295',\n      name: 'Artistic License 1.0 (Perl)',\n      licenseId: 'Artistic-1.0-Perl',\n      seeAlso: ['http://dev.perl.org/licenses/artistic.html'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Artistic-1.0-cl8.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Artistic-1.0-cl8.json',\n      referenceNumber: '221',\n      name: 'Artistic License 1.0 w/clause 8',\n      licenseId: 'Artistic-1.0-cl8',\n      seeAlso: ['https://opensource.org/licenses/Artistic-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Artistic-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Artistic-2.0.json',\n      referenceNumber: '75',\n      name: 'Artistic License 2.0',\n      licenseId: 'Artistic-2.0',\n      seeAlso: [\n        'http://www.perlfoundation.org/artistic_license_2_0',\n        'https://opensource.org/licenses/artistic-license-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './BSD-1-Clause.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-1-Clause.json',\n      referenceNumber: '377',\n      name: 'BSD 1-Clause License',\n      licenseId: 'BSD-1-Clause',\n      seeAlso: [\n        'https://svnweb.freebsd.org/base/head/include/ifaddrs.h?revision=326823'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-2-Clause.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-2-Clause.json',\n      referenceNumber: '296',\n      name: 'BSD 2-Clause \"Simplified\" License',\n      licenseId: 'BSD-2-Clause',\n      seeAlso: ['https://opensource.org/licenses/BSD-2-Clause'],\n      isOsiApproved: true\n    },\n    {\n      reference: './BSD-2-Clause-FreeBSD.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/BSD-2-Clause-FreeBSD.json',\n      referenceNumber: '271',\n      name: 'BSD 2-Clause FreeBSD License',\n      licenseId: 'BSD-2-Clause-FreeBSD',\n      seeAlso: ['http://www.freebsd.org/copyright/freebsd-license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-2-Clause-NetBSD.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-2-Clause-NetBSD.json',\n      referenceNumber: '179',\n      name: 'BSD 2-Clause NetBSD License',\n      licenseId: 'BSD-2-Clause-NetBSD',\n      seeAlso: ['http://www.netbsd.org/about/redistribution.html#default'],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-2-Clause-Patent.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-2-Clause-Patent.json',\n      referenceNumber: '351',\n      name: 'BSD-2-Clause Plus Patent License',\n      licenseId: 'BSD-2-Clause-Patent',\n      seeAlso: ['https://opensource.org/licenses/BSDplusPatent'],\n      isOsiApproved: true\n    },\n    {\n      reference: './BSD-3-Clause.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/BSD-3-Clause.json',\n      referenceNumber: '195',\n      name: 'BSD 3-Clause \"New\" or \"Revised\" License',\n      licenseId: 'BSD-3-Clause',\n      seeAlso: ['https://opensource.org/licenses/BSD-3-Clause'],\n      isOsiApproved: true\n    },\n    {\n      reference: './BSD-3-Clause-Attribution.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-3-Clause-Attribution.json',\n      referenceNumber: '39',\n      name: 'BSD with attribution',\n      licenseId: 'BSD-3-Clause-Attribution',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/BSD_with_Attribution'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-3-Clause-Clear.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/BSD-3-Clause-Clear.json',\n      referenceNumber: '84',\n      name: 'BSD 3-Clause Clear License',\n      licenseId: 'BSD-3-Clause-Clear',\n      seeAlso: ['http://labs.metacarta.com/license-explanation.html#license'],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-3-Clause-LBNL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-3-Clause-LBNL.json',\n      referenceNumber: '142',\n      name: 'Lawrence Berkeley National Labs BSD variant license',\n      licenseId: 'BSD-3-Clause-LBNL',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/LBNLBSD'],\n      isOsiApproved: true\n    },\n    {\n      reference: './BSD-3-Clause-No-Nuclear-License.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl:\n        'http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.json',\n      referenceNumber: '59',\n      name: 'BSD 3-Clause No Nuclear License',\n      licenseId: 'BSD-3-Clause-No-Nuclear-License',\n      seeAlso: [\n        'http://download.oracle.com/otn-pub/java/licenses/bsd.txt?AuthParam=1467140197_43d516ce1776bd08a58235a7785be1cc'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-3-Clause-No-Nuclear-License-2014.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl:\n        'http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License-2014.json',\n      referenceNumber: '331',\n      name: 'BSD 3-Clause No Nuclear License 2014',\n      licenseId: 'BSD-3-Clause-No-Nuclear-License-2014',\n      seeAlso: [\n        'https://java.net/projects/javaeetutorial/pages/BerkeleyLicense'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-3-Clause-No-Nuclear-Warranty.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl:\n        'http://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.json',\n      referenceNumber: '113',\n      name: 'BSD 3-Clause No Nuclear Warranty',\n      licenseId: 'BSD-3-Clause-No-Nuclear-Warranty',\n      seeAlso: [\n        'https://jogamp.org/git/?p=gluegen.git;a=blob_plain;f=LICENSE.txt'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-3-Clause-Open-MPI.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-3-Clause-Open-MPI.json',\n      referenceNumber: '207',\n      name: 'BSD 3-Clause Open MPI variant',\n      licenseId: 'BSD-3-Clause-Open-MPI',\n      seeAlso: [\n        'https://www.open-mpi.org/community/license.php',\n        'http://www.netlib.org/lapack/LICENSE.txt'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-4-Clause.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/BSD-4-Clause.json',\n      referenceNumber: '66',\n      name: 'BSD 4-Clause \"Original\" or \"Old\" License',\n      licenseId: 'BSD-4-Clause',\n      seeAlso: ['http://directory.fsf.org/wiki/License:BSD_4Clause'],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-4-Clause-UC.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-4-Clause-UC.json',\n      referenceNumber: '361',\n      name: 'BSD-4-Clause (University of California-Specific)',\n      licenseId: 'BSD-4-Clause-UC',\n      seeAlso: ['http://www.freebsd.org/copyright/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-Protection.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-Protection.json',\n      referenceNumber: '388',\n      name: 'BSD Protection License',\n      licenseId: 'BSD-Protection',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/BSD_Protection_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSD-Source-Code.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BSD-Source-Code.json',\n      referenceNumber: '163',\n      name: 'BSD Source Code Attribution',\n      licenseId: 'BSD-Source-Code',\n      seeAlso: [\n        'https://github.com/robbiehanson/CocoaHTTPServer/blob/master/LICENSE.txt'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BSL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/BSL-1.0.json',\n      referenceNumber: '284',\n      name: 'Boost Software License 1.0',\n      licenseId: 'BSL-1.0',\n      seeAlso: [\n        'http://www.boost.org/LICENSE_1_0.txt',\n        'https://opensource.org/licenses/BSL-1.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Bahyph.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Bahyph.json',\n      referenceNumber: '146',\n      name: 'Bahyph License',\n      licenseId: 'Bahyph',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Bahyph'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Barr.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Barr.json',\n      referenceNumber: '123',\n      name: 'Barr License',\n      licenseId: 'Barr',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Barr'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Beerware.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Beerware.json',\n      referenceNumber: '243',\n      name: 'Beerware License',\n      licenseId: 'Beerware',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/Beerware',\n        'https://people.freebsd.org/~phk/'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BitTorrent-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BitTorrent-1.0.json',\n      referenceNumber: '200',\n      name: 'BitTorrent Open Source License v1.0',\n      licenseId: 'BitTorrent-1.0',\n      seeAlso: [\n        'http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/licenses/BitTorrent?r1=1.1&r2=1.1.1.1&diff_format=s'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './BitTorrent-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/BitTorrent-1.1.json',\n      referenceNumber: '181',\n      name: 'BitTorrent Open Source License v1.1',\n      licenseId: 'BitTorrent-1.1',\n      seeAlso: ['http://directory.fsf.org/wiki/License:BitTorrentOSL1.1'],\n      isOsiApproved: false\n    },\n    {\n      reference: './BlueOak-1.0.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/BlueOak-1.0.0.json',\n      referenceNumber: '204',\n      name: 'Blue Oak Model License 1.0.0',\n      licenseId: 'BlueOak-1.0.0',\n      seeAlso: ['https://blueoakcouncil.org/license/1.0.0'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Borceux.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Borceux.json',\n      referenceNumber: '294',\n      name: 'Borceux license',\n      licenseId: 'Borceux',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Borceux'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CATOSL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CATOSL-1.1.json',\n      referenceNumber: '226',\n      name: 'Computer Associates Trusted Open Source License 1.1',\n      licenseId: 'CATOSL-1.1',\n      seeAlso: ['https://opensource.org/licenses/CATOSL-1.1'],\n      isOsiApproved: true\n    },\n    {\n      reference: './CC-BY-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-1.0.json',\n      referenceNumber: '23',\n      name: 'Creative Commons Attribution 1.0 Generic',\n      licenseId: 'CC-BY-1.0',\n      seeAlso: ['https://creativecommons.org/licenses/by/1.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-2.0.json',\n      referenceNumber: '58',\n      name: 'Creative Commons Attribution 2.0 Generic',\n      licenseId: 'CC-BY-2.0',\n      seeAlso: ['https://creativecommons.org/licenses/by/2.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-2.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-2.5.json',\n      referenceNumber: '180',\n      name: 'Creative Commons Attribution 2.5 Generic',\n      licenseId: 'CC-BY-2.5',\n      seeAlso: ['https://creativecommons.org/licenses/by/2.5/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-3.0.json',\n      referenceNumber: '333',\n      name: 'Creative Commons Attribution 3.0 Unported',\n      licenseId: 'CC-BY-3.0',\n      seeAlso: ['https://creativecommons.org/licenses/by/3.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-4.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-4.0.json',\n      referenceNumber: '211',\n      name: 'Creative Commons Attribution 4.0 International',\n      licenseId: 'CC-BY-4.0',\n      seeAlso: ['https://creativecommons.org/licenses/by/4.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-1.0.json',\n      referenceNumber: '223',\n      name: 'Creative Commons Attribution Non Commercial 1.0 Generic',\n      licenseId: 'CC-BY-NC-1.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc/1.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-2.0.json',\n      referenceNumber: '315',\n      name: 'Creative Commons Attribution Non Commercial 2.0 Generic',\n      licenseId: 'CC-BY-NC-2.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc/2.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-2.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-2.5.json',\n      referenceNumber: '386',\n      name: 'Creative Commons Attribution Non Commercial 2.5 Generic',\n      licenseId: 'CC-BY-NC-2.5',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc/2.5/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-3.0.json',\n      referenceNumber: '325',\n      name: 'Creative Commons Attribution Non Commercial 3.0 Unported',\n      licenseId: 'CC-BY-NC-3.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc/3.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-4.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-4.0.json',\n      referenceNumber: '262',\n      name: 'Creative Commons Attribution Non Commercial 4.0 International',\n      licenseId: 'CC-BY-NC-4.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc/4.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-ND-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-ND-1.0.json',\n      referenceNumber: '98',\n      name: 'Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic',\n      licenseId: 'CC-BY-NC-ND-1.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nd-nc/1.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-ND-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-ND-2.0.json',\n      referenceNumber: '133',\n      name: 'Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic',\n      licenseId: 'CC-BY-NC-ND-2.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-nd/2.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-ND-2.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-ND-2.5.json',\n      referenceNumber: '30',\n      name: 'Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic',\n      licenseId: 'CC-BY-NC-ND-2.5',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-nd/2.5/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-ND-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-ND-3.0.json',\n      referenceNumber: '41',\n      name: 'Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported',\n      licenseId: 'CC-BY-NC-ND-3.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-nd/3.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-ND-4.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-ND-4.0.json',\n      referenceNumber: '166',\n      name: 'Creative Commons Attribution Non Commercial No Derivatives 4.0 International',\n      licenseId: 'CC-BY-NC-ND-4.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-SA-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-SA-1.0.json',\n      referenceNumber: '116',\n      name: 'Creative Commons Attribution Non Commercial Share Alike 1.0 Generic',\n      licenseId: 'CC-BY-NC-SA-1.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-sa/1.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-SA-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-SA-2.0.json',\n      referenceNumber: '398',\n      name: 'Creative Commons Attribution Non Commercial Share Alike 2.0 Generic',\n      licenseId: 'CC-BY-NC-SA-2.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-sa/2.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-SA-2.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-SA-2.5.json',\n      referenceNumber: '208',\n      name: 'Creative Commons Attribution Non Commercial Share Alike 2.5 Generic',\n      licenseId: 'CC-BY-NC-SA-2.5',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-sa/2.5/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-SA-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-SA-3.0.json',\n      referenceNumber: '349',\n      name: 'Creative Commons Attribution Non Commercial Share Alike 3.0 Unported',\n      licenseId: 'CC-BY-NC-SA-3.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-NC-SA-4.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-NC-SA-4.0.json',\n      referenceNumber: '320',\n      name: 'Creative Commons Attribution Non Commercial Share Alike 4.0 International',\n      licenseId: 'CC-BY-NC-SA-4.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-ND-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-ND-1.0.json',\n      referenceNumber: '90',\n      name: 'Creative Commons Attribution No Derivatives 1.0 Generic',\n      licenseId: 'CC-BY-ND-1.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nd/1.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-ND-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-ND-2.0.json',\n      referenceNumber: '46',\n      name: 'Creative Commons Attribution No Derivatives 2.0 Generic',\n      licenseId: 'CC-BY-ND-2.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nd/2.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-ND-2.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-ND-2.5.json',\n      referenceNumber: '27',\n      name: 'Creative Commons Attribution No Derivatives 2.5 Generic',\n      licenseId: 'CC-BY-ND-2.5',\n      seeAlso: ['https://creativecommons.org/licenses/by-nd/2.5/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-ND-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-ND-3.0.json',\n      referenceNumber: '274',\n      name: 'Creative Commons Attribution No Derivatives 3.0 Unported',\n      licenseId: 'CC-BY-ND-3.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nd/3.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-ND-4.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-ND-4.0.json',\n      referenceNumber: '307',\n      name: 'Creative Commons Attribution No Derivatives 4.0 International',\n      licenseId: 'CC-BY-ND-4.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-nd/4.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-SA-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-SA-1.0.json',\n      referenceNumber: '391',\n      name: 'Creative Commons Attribution Share Alike 1.0 Generic',\n      licenseId: 'CC-BY-SA-1.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-sa/1.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-SA-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-SA-2.0.json',\n      referenceNumber: '356',\n      name: 'Creative Commons Attribution Share Alike 2.0 Generic',\n      licenseId: 'CC-BY-SA-2.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-sa/2.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-SA-2.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-SA-2.5.json',\n      referenceNumber: '196',\n      name: 'Creative Commons Attribution Share Alike 2.5 Generic',\n      licenseId: 'CC-BY-SA-2.5',\n      seeAlso: ['https://creativecommons.org/licenses/by-sa/2.5/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-SA-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-SA-3.0.json',\n      referenceNumber: '225',\n      name: 'Creative Commons Attribution Share Alike 3.0 Unported',\n      licenseId: 'CC-BY-SA-3.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-sa/3.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-BY-SA-4.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CC-BY-SA-4.0.json',\n      referenceNumber: '286',\n      name: 'Creative Commons Attribution Share Alike 4.0 International',\n      licenseId: 'CC-BY-SA-4.0',\n      seeAlso: ['https://creativecommons.org/licenses/by-sa/4.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC-PDDC.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CC-PDDC.json',\n      referenceNumber: '88',\n      name: 'Creative Commons Public Domain Dedication and Certification',\n      licenseId: 'CC-PDDC',\n      seeAlso: ['https://creativecommons.org/licenses/publicdomain/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CC0-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CC0-1.0.json',\n      referenceNumber: '63',\n      name: 'Creative Commons Zero v1.0 Universal',\n      licenseId: 'CC0-1.0',\n      seeAlso: ['https://creativecommons.org/publicdomain/zero/1.0/legalcode'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CDDL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CDDL-1.0.json',\n      referenceNumber: '324',\n      name: 'Common Development and Distribution License 1.0',\n      licenseId: 'CDDL-1.0',\n      seeAlso: ['https://opensource.org/licenses/cddl1'],\n      isOsiApproved: true\n    },\n    {\n      reference: './CDDL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CDDL-1.1.json',\n      referenceNumber: '273',\n      name: 'Common Development and Distribution License 1.1',\n      licenseId: 'CDDL-1.1',\n      seeAlso: [\n        'http://glassfish.java.net/public/CDDL+GPL_1_1.html',\n        'https://javaee.github.io/glassfish/LICENSE'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './CDLA-Permissive-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CDLA-Permissive-1.0.json',\n      referenceNumber: '104',\n      name: 'Community Data License Agreement Permissive 1.0',\n      licenseId: 'CDLA-Permissive-1.0',\n      seeAlso: ['https://cdla.io/permissive-1-0'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CDLA-Sharing-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CDLA-Sharing-1.0.json',\n      referenceNumber: '172',\n      name: 'Community Data License Agreement Sharing 1.0',\n      licenseId: 'CDLA-Sharing-1.0',\n      seeAlso: ['https://cdla.io/sharing-1-0'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CECILL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CECILL-1.0.json',\n      referenceNumber: '10',\n      name: 'CeCILL Free Software License Agreement v1.0',\n      licenseId: 'CECILL-1.0',\n      seeAlso: ['http://www.cecill.info/licences/Licence_CeCILL_V1-fr.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CECILL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CECILL-1.1.json',\n      referenceNumber: '130',\n      name: 'CeCILL Free Software License Agreement v1.1',\n      licenseId: 'CECILL-1.1',\n      seeAlso: ['http://www.cecill.info/licences/Licence_CeCILL_V1.1-US.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CECILL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CECILL-2.0.json',\n      referenceNumber: '5',\n      name: 'CeCILL Free Software License Agreement v2.0',\n      licenseId: 'CECILL-2.0',\n      seeAlso: ['http://www.cecill.info/licences/Licence_CeCILL_V2-en.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CECILL-2.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CECILL-2.1.json',\n      referenceNumber: '140',\n      name: 'CeCILL Free Software License Agreement v2.1',\n      licenseId: 'CECILL-2.1',\n      seeAlso: ['http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html'],\n      isOsiApproved: true\n    },\n    {\n      reference: './CECILL-B.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CECILL-B.json',\n      referenceNumber: '89',\n      name: 'CeCILL-B Free Software License Agreement',\n      licenseId: 'CECILL-B',\n      seeAlso: ['http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CECILL-C.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CECILL-C.json',\n      referenceNumber: '232',\n      name: 'CeCILL-C Free Software License Agreement',\n      licenseId: 'CECILL-C',\n      seeAlso: ['http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CERN-OHL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CERN-OHL-1.1.json',\n      referenceNumber: '118',\n      name: 'CERN Open Hardware Licence v1.1',\n      licenseId: 'CERN-OHL-1.1',\n      seeAlso: ['https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.1'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CERN-OHL-1.2.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CERN-OHL-1.2.json',\n      referenceNumber: '161',\n      name: 'CERN Open Hardware Licence v1.2',\n      licenseId: 'CERN-OHL-1.2',\n      seeAlso: ['https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.2'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CNRI-Jython.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CNRI-Jython.json',\n      referenceNumber: '74',\n      name: 'CNRI Jython License',\n      licenseId: 'CNRI-Jython',\n      seeAlso: ['http://www.jython.org/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CNRI-Python.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CNRI-Python.json',\n      referenceNumber: '92',\n      name: 'CNRI Python License',\n      licenseId: 'CNRI-Python',\n      seeAlso: ['https://opensource.org/licenses/CNRI-Python'],\n      isOsiApproved: true\n    },\n    {\n      reference: './CNRI-Python-GPL-Compatible.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CNRI-Python-GPL-Compatible.json',\n      referenceNumber: '337',\n      name: 'CNRI Python Open Source GPL Compatible License Agreement',\n      licenseId: 'CNRI-Python-GPL-Compatible',\n      seeAlso: ['http://www.python.org/download/releases/1.6.1/download_win/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CPAL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CPAL-1.0.json',\n      referenceNumber: '275',\n      name: 'Common Public Attribution License 1.0',\n      licenseId: 'CPAL-1.0',\n      seeAlso: ['https://opensource.org/licenses/CPAL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './CPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/CPL-1.0.json',\n      referenceNumber: '228',\n      name: 'Common Public License 1.0',\n      licenseId: 'CPL-1.0',\n      seeAlso: ['https://opensource.org/licenses/CPL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './CPOL-1.02.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CPOL-1.02.json',\n      referenceNumber: '222',\n      name: 'Code Project Open License 1.02',\n      licenseId: 'CPOL-1.02',\n      seeAlso: ['http://www.codeproject.com/info/cpol10.aspx'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CUA-OPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CUA-OPL-1.0.json',\n      referenceNumber: '159',\n      name: 'CUA Office Public License v1.0',\n      licenseId: 'CUA-OPL-1.0',\n      seeAlso: ['https://opensource.org/licenses/CUA-OPL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Caldera.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Caldera.json',\n      referenceNumber: '242',\n      name: 'Caldera License',\n      licenseId: 'Caldera',\n      seeAlso: ['http://www.lemis.com/grog/UNIX/ancient-source-all.pdf'],\n      isOsiApproved: false\n    },\n    {\n      reference: './ClArtistic.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/ClArtistic.json',\n      referenceNumber: '237',\n      name: 'Clarified Artistic License',\n      licenseId: 'ClArtistic',\n      seeAlso: [\n        'http://gianluca.dellavedova.org/2011/01/03/clarified-artistic-license/',\n        'http://www.ncftp.com/ncftp/doc/LICENSE.txt'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Condor-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Condor-1.1.json',\n      referenceNumber: '145',\n      name: 'Condor Public License v1.1',\n      licenseId: 'Condor-1.1',\n      seeAlso: [\n        'http://research.cs.wisc.edu/condor/license.html#condor',\n        'http://web.archive.org/web/20111123062036/http://research.cs.wisc.edu/condor/license.html#condor'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Crossword.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Crossword.json',\n      referenceNumber: '97',\n      name: 'Crossword License',\n      licenseId: 'Crossword',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Crossword'],\n      isOsiApproved: false\n    },\n    {\n      reference: './CrystalStacker.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/CrystalStacker.json',\n      referenceNumber: '38',\n      name: 'CrystalStacker License',\n      licenseId: 'CrystalStacker',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing:CrystalStacker?rd=Licensing/CrystalStacker'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Cube.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Cube.json',\n      referenceNumber: '379',\n      name: 'Cube License',\n      licenseId: 'Cube',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Cube'],\n      isOsiApproved: false\n    },\n    {\n      reference: './D-FSL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/D-FSL-1.0.json',\n      referenceNumber: '347',\n      name: 'Deutsche Freie Software Lizenz',\n      licenseId: 'D-FSL-1.0',\n      seeAlso: [\n        'http://www.dipp.nrw.de/d-fsl/lizenzen/',\n        'http://www.dipp.nrw.de/d-fsl/index_html/lizenzen/de/D-FSL-1_0_de.txt',\n        'http://www.dipp.nrw.de/d-fsl/index_html/lizenzen/en/D-FSL-1_0_en.txt',\n        'https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl',\n        'https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/deutsche-freie-software-lizenz',\n        'https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/german-free-software-license',\n        'https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/D-FSL-1_0_de.txt/at_download/file',\n        'https://www.hbz-nrw.de/produkte/open-access/lizenzen/dfsl/D-FSL-1_0_en.txt/at_download/file'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './DOC.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/DOC.json',\n      referenceNumber: '265',\n      name: 'DOC License',\n      licenseId: 'DOC',\n      seeAlso: ['http://www.cs.wustl.edu/~schmidt/ACE-copying.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './DSDP.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/DSDP.json',\n      referenceNumber: '257',\n      name: 'DSDP License',\n      licenseId: 'DSDP',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/DSDP'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Dotseqn.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Dotseqn.json',\n      referenceNumber: '33',\n      name: 'Dotseqn License',\n      licenseId: 'Dotseqn',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Dotseqn'],\n      isOsiApproved: false\n    },\n    {\n      reference: './ECL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/ECL-1.0.json',\n      referenceNumber: '405',\n      name: 'Educational Community License v1.0',\n      licenseId: 'ECL-1.0',\n      seeAlso: ['https://opensource.org/licenses/ECL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './ECL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/ECL-2.0.json',\n      referenceNumber: '1',\n      name: 'Educational Community License v2.0',\n      licenseId: 'ECL-2.0',\n      seeAlso: ['https://opensource.org/licenses/ECL-2.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './EFL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/EFL-1.0.json',\n      referenceNumber: '73',\n      name: 'Eiffel Forum License v1.0',\n      licenseId: 'EFL-1.0',\n      seeAlso: [\n        'http://www.eiffel-nice.org/license/forum.txt',\n        'https://opensource.org/licenses/EFL-1.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './EFL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/EFL-2.0.json',\n      referenceNumber: '7',\n      name: 'Eiffel Forum License v2.0',\n      licenseId: 'EFL-2.0',\n      seeAlso: [\n        'http://www.eiffel-nice.org/license/eiffel-forum-license-2.html',\n        'https://opensource.org/licenses/EFL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './EPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/EPL-1.0.json',\n      referenceNumber: '267',\n      name: 'Eclipse Public License 1.0',\n      licenseId: 'EPL-1.0',\n      seeAlso: [\n        'http://www.eclipse.org/legal/epl-v10.html',\n        'https://opensource.org/licenses/EPL-1.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './EPL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/EPL-2.0.json',\n      referenceNumber: '403',\n      name: 'Eclipse Public License 2.0',\n      licenseId: 'EPL-2.0',\n      seeAlso: [\n        'https://www.eclipse.org/legal/epl-2.0',\n        'https://www.opensource.org/licenses/EPL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './EUDatagrid.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/EUDatagrid.json',\n      referenceNumber: '254',\n      name: 'EU DataGrid Software License',\n      licenseId: 'EUDatagrid',\n      seeAlso: [\n        'http://eu-datagrid.web.cern.ch/eu-datagrid/license.html',\n        'https://opensource.org/licenses/EUDatagrid'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './EUPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/EUPL-1.0.json',\n      referenceNumber: '94',\n      name: 'European Union Public License 1.0',\n      licenseId: 'EUPL-1.0',\n      seeAlso: [\n        'http://ec.europa.eu/idabc/en/document/7330.html',\n        'http://ec.europa.eu/idabc/servlets/Doc027f.pdf?id=31096'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './EUPL-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/EUPL-1.1.json',\n      referenceNumber: '396',\n      name: 'European Union Public License 1.1',\n      licenseId: 'EUPL-1.1',\n      seeAlso: [\n        'https://joinup.ec.europa.eu/software/page/eupl/licence-eupl',\n        'https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/eupl1.1.-licence-en_0.pdf',\n        'https://opensource.org/licenses/EUPL-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './EUPL-1.2.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/EUPL-1.2.json',\n      referenceNumber: '261',\n      name: 'European Union Public License 1.2',\n      licenseId: 'EUPL-1.2',\n      seeAlso: [\n        'https://joinup.ec.europa.eu/page/eupl-text-11-12',\n        'https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/eupl_v1.2_en.pdf',\n        'https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%20v1_2%20EN(1).txt',\n        'http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32017D0863',\n        'https://opensource.org/licenses/EUPL-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Entessa.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Entessa.json',\n      referenceNumber: '374',\n      name: 'Entessa Public License v1.0',\n      licenseId: 'Entessa',\n      seeAlso: ['https://opensource.org/licenses/Entessa'],\n      isOsiApproved: true\n    },\n    {\n      reference: './ErlPL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/ErlPL-1.1.json',\n      referenceNumber: '395',\n      name: 'Erlang Public License v1.1',\n      licenseId: 'ErlPL-1.1',\n      seeAlso: ['http://www.erlang.org/EPLICENSE'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Eurosym.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Eurosym.json',\n      referenceNumber: '165',\n      name: 'Eurosym License',\n      licenseId: 'Eurosym',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Eurosym'],\n      isOsiApproved: false\n    },\n    {\n      reference: './FSFAP.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/FSFAP.json',\n      referenceNumber: '382',\n      name: 'FSF All Permissive License',\n      licenseId: 'FSFAP',\n      seeAlso: [\n        'https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './FSFUL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/FSFUL.json',\n      referenceNumber: '2',\n      name: 'FSF Unlimited License',\n      licenseId: 'FSFUL',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './FSFULLR.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/FSFULLR.json',\n      referenceNumber: '297',\n      name: 'FSF Unlimited License (with License Retention)',\n      licenseId: 'FSFULLR',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License#License_Retention_Variant'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './FTL.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/FTL.json',\n      referenceNumber: '363',\n      name: 'Freetype Project License',\n      licenseId: 'FTL',\n      seeAlso: [\n        'http://freetype.fis.uniroma2.it/FTL.TXT',\n        'http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Fair.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Fair.json',\n      referenceNumber: '253',\n      name: 'Fair License',\n      licenseId: 'Fair',\n      seeAlso: [\n        'http://fairlicense.org/',\n        'https://opensource.org/licenses/Fair'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Frameworx-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Frameworx-1.0.json',\n      referenceNumber: '362',\n      name: 'Frameworx Open License 1.0',\n      licenseId: 'Frameworx-1.0',\n      seeAlso: ['https://opensource.org/licenses/Frameworx-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './FreeImage.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/FreeImage.json',\n      referenceNumber: '359',\n      name: 'FreeImage Public License v1.0',\n      licenseId: 'FreeImage',\n      seeAlso: ['http://freeimage.sourceforge.net/freeimage-license.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.1.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.1.json',\n      referenceNumber: '248',\n      name: 'GNU Free Documentation License v1.1',\n      licenseId: 'GFDL-1.1',\n      seeAlso: ['https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.1-only.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.1-only.json',\n      referenceNumber: '100',\n      name: 'GNU Free Documentation License v1.1 only',\n      licenseId: 'GFDL-1.1-only',\n      seeAlso: ['https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.1-or-later.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.1-or-later.json',\n      referenceNumber: '119',\n      name: 'GNU Free Documentation License v1.1 or later',\n      licenseId: 'GFDL-1.1-or-later',\n      seeAlso: ['https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.2.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.2.json',\n      referenceNumber: '190',\n      name: 'GNU Free Documentation License v1.2',\n      licenseId: 'GFDL-1.2',\n      seeAlso: ['https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.2-only.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.2-only.json',\n      referenceNumber: '86',\n      name: 'GNU Free Documentation License v1.2 only',\n      licenseId: 'GFDL-1.2-only',\n      seeAlso: ['https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.2-or-later.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.2-or-later.json',\n      referenceNumber: '127',\n      name: 'GNU Free Documentation License v1.2 or later',\n      licenseId: 'GFDL-1.2-or-later',\n      seeAlso: ['https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.3.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.3.json',\n      referenceNumber: '354',\n      name: 'GNU Free Documentation License v1.3',\n      licenseId: 'GFDL-1.3',\n      seeAlso: ['https://www.gnu.org/licenses/fdl-1.3.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.3-only.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.3-only.json',\n      referenceNumber: '193',\n      name: 'GNU Free Documentation License v1.3 only',\n      licenseId: 'GFDL-1.3-only',\n      seeAlso: ['https://www.gnu.org/licenses/fdl-1.3.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GFDL-1.3-or-later.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GFDL-1.3-or-later.json',\n      referenceNumber: '51',\n      name: 'GNU Free Documentation License v1.3 or later',\n      licenseId: 'GFDL-1.3-or-later',\n      seeAlso: ['https://www.gnu.org/licenses/fdl-1.3.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GL2PS.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/GL2PS.json',\n      referenceNumber: '303',\n      name: 'GL2PS License',\n      licenseId: 'GL2PS',\n      seeAlso: ['http://www.geuz.org/gl2ps/COPYING.GL2PS'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-1.0.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-1.0.json',\n      referenceNumber: '319',\n      name: 'GNU General Public License v1.0 only',\n      licenseId: 'GPL-1.0',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-1.0+.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-1.0+.json',\n      referenceNumber: '198',\n      name: 'GNU General Public License v1.0 or later',\n      licenseId: 'GPL-1.0+',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-1.0-only.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/GPL-1.0-only.json',\n      referenceNumber: '15',\n      name: 'GNU General Public License v1.0 only',\n      licenseId: 'GPL-1.0-only',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-1.0-or-later.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/GPL-1.0-or-later.json',\n      referenceNumber: '129',\n      name: 'GNU General Public License v1.0 or later',\n      licenseId: 'GPL-1.0-or-later',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-2.0.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-2.0.json',\n      referenceNumber: '345',\n      name: 'GNU General Public License v2.0 only',\n      licenseId: 'GPL-2.0',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html',\n        'https://opensource.org/licenses/GPL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-2.0+.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-2.0+.json',\n      referenceNumber: '389',\n      name: 'GNU General Public License v2.0 or later',\n      licenseId: 'GPL-2.0+',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html',\n        'https://opensource.org/licenses/GPL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-2.0-only.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-2.0-only.json',\n      referenceNumber: '227',\n      name: 'GNU General Public License v2.0 only',\n      licenseId: 'GPL-2.0-only',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html',\n        'https://opensource.org/licenses/GPL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-2.0-or-later.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-2.0-or-later.json',\n      referenceNumber: '249',\n      name: 'GNU General Public License v2.0 or later',\n      licenseId: 'GPL-2.0-or-later',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html',\n        'https://opensource.org/licenses/GPL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-2.0-with-GCC-exception.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-2.0-with-GCC-exception.json',\n      referenceNumber: '329',\n      name: 'GNU General Public License v2.0 w/GCC Runtime Library exception',\n      licenseId: 'GPL-2.0-with-GCC-exception',\n      seeAlso: [\n        'https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/libgcc1.c;h=762f5143fc6eed57b6797c82710f3538aa52b40b;hb=cb143a3ce4fb417c68f5fa2691a1b1b1053dfba9#l10'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-2.0-with-autoconf-exception.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl:\n        'http://spdx.org/licenses/GPL-2.0-with-autoconf-exception.json',\n      referenceNumber: '36',\n      name: 'GNU General Public License v2.0 w/Autoconf exception',\n      licenseId: 'GPL-2.0-with-autoconf-exception',\n      seeAlso: ['http://ac-archive.sourceforge.net/doc/copyright.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-2.0-with-bison-exception.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-2.0-with-bison-exception.json',\n      referenceNumber: '360',\n      name: 'GNU General Public License v2.0 w/Bison exception',\n      licenseId: 'GPL-2.0-with-bison-exception',\n      seeAlso: [\n        'http://git.savannah.gnu.org/cgit/bison.git/tree/data/yacc.c?id=193d7c7054ba7197b0789e14965b739162319b5e#n141'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-2.0-with-classpath-exception.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl:\n        'http://spdx.org/licenses/GPL-2.0-with-classpath-exception.json',\n      referenceNumber: '219',\n      name: 'GNU General Public License v2.0 w/Classpath exception',\n      licenseId: 'GPL-2.0-with-classpath-exception',\n      seeAlso: ['https://www.gnu.org/software/classpath/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-2.0-with-font-exception.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-2.0-with-font-exception.json',\n      referenceNumber: '24',\n      name: 'GNU General Public License v2.0 w/Font exception',\n      licenseId: 'GPL-2.0-with-font-exception',\n      seeAlso: ['https://www.gnu.org/licenses/gpl-faq.html#FontException'],\n      isOsiApproved: false\n    },\n    {\n      reference: './GPL-3.0.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-3.0.json',\n      referenceNumber: '401',\n      name: 'GNU General Public License v3.0 only',\n      licenseId: 'GPL-3.0',\n      seeAlso: [\n        'https://www.gnu.org/licenses/gpl-3.0-standalone.html',\n        'https://opensource.org/licenses/GPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-3.0+.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-3.0+.json',\n      referenceNumber: '147',\n      name: 'GNU General Public License v3.0 or later',\n      licenseId: 'GPL-3.0+',\n      seeAlso: [\n        'https://www.gnu.org/licenses/gpl-3.0-standalone.html',\n        'https://opensource.org/licenses/GPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-3.0-only.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-3.0-only.json',\n      referenceNumber: '122',\n      name: 'GNU General Public License v3.0 only',\n      licenseId: 'GPL-3.0-only',\n      seeAlso: [\n        'https://www.gnu.org/licenses/gpl-3.0-standalone.html',\n        'https://opensource.org/licenses/GPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-3.0-or-later.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-3.0-or-later.json',\n      referenceNumber: '387',\n      name: 'GNU General Public License v3.0 or later',\n      licenseId: 'GPL-3.0-or-later',\n      seeAlso: [\n        'https://www.gnu.org/licenses/gpl-3.0-standalone.html',\n        'https://opensource.org/licenses/GPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-3.0-with-GCC-exception.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/GPL-3.0-with-GCC-exception.json',\n      referenceNumber: '6',\n      name: 'GNU General Public License v3.0 w/GCC Runtime Library exception',\n      licenseId: 'GPL-3.0-with-GCC-exception',\n      seeAlso: ['https://www.gnu.org/licenses/gcc-exception-3.1.html'],\n      isOsiApproved: true\n    },\n    {\n      reference: './GPL-3.0-with-autoconf-exception.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl:\n        'http://spdx.org/licenses/GPL-3.0-with-autoconf-exception.json',\n      referenceNumber: '8',\n      name: 'GNU General Public License v3.0 w/Autoconf exception',\n      licenseId: 'GPL-3.0-with-autoconf-exception',\n      seeAlso: ['https://www.gnu.org/licenses/autoconf-exception-3.0.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Giftware.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Giftware.json',\n      referenceNumber: '367',\n      name: 'Giftware License',\n      licenseId: 'Giftware',\n      seeAlso: [\n        'http://liballeg.org/license.html#allegro-4-the-giftware-license'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Glide.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Glide.json',\n      referenceNumber: '117',\n      name: '3dfx Glide License',\n      licenseId: 'Glide',\n      seeAlso: ['http://www.users.on.net/~triforce/glidexp/COPYING.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Glulxe.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Glulxe.json',\n      referenceNumber: '199',\n      name: 'Glulxe License',\n      licenseId: 'Glulxe',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Glulxe'],\n      isOsiApproved: false\n    },\n    {\n      reference: './HPND.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/HPND.json',\n      referenceNumber: '148',\n      name: 'Historical Permission Notice and Disclaimer',\n      licenseId: 'HPND',\n      seeAlso: ['https://opensource.org/licenses/HPND'],\n      isOsiApproved: true\n    },\n    {\n      reference: './HPND-sell-variant.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/HPND-sell-variant.json',\n      referenceNumber: '158',\n      name: 'Historical Permission Notice and Disclaimer - sell variant',\n      licenseId: 'HPND-sell-variant',\n      seeAlso: [\n        'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/sunrpc/auth_gss/gss_generic_token.c?h=v4.19'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './HaskellReport.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/HaskellReport.json',\n      referenceNumber: '205',\n      name: 'Haskell Language Report License',\n      licenseId: 'HaskellReport',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/Haskell_Language_Report_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './IBM-pibs.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/IBM-pibs.json',\n      referenceNumber: '233',\n      name: 'IBM PowerPC Initialization and Boot Software',\n      licenseId: 'IBM-pibs',\n      seeAlso: [\n        'http://git.denx.de/?p=u-boot.git;a=blob;f=arch/powerpc/cpu/ppc4xx/miiphy.c;h=297155fdafa064b955e53e9832de93bfb0cfb85b;hb=9fab4bf4cc077c21e43941866f3f2c196f28670d'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './ICU.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/ICU.json',\n      referenceNumber: '174',\n      name: 'ICU License',\n      licenseId: 'ICU',\n      seeAlso: [\n        'http://source.icu-project.org/repos/icu/icu/trunk/license.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './IJG.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/IJG.json',\n      referenceNumber: '236',\n      name: 'Independent JPEG Group License',\n      licenseId: 'IJG',\n      seeAlso: ['http://dev.w3.org/cvsweb/Amaya/libjpeg/Attic/README?rev=1.2'],\n      isOsiApproved: false\n    },\n    {\n      reference: './IPA.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/IPA.json',\n      referenceNumber: '310',\n      name: 'IPA Font License',\n      licenseId: 'IPA',\n      seeAlso: ['https://opensource.org/licenses/IPA'],\n      isOsiApproved: true\n    },\n    {\n      reference: './IPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/IPL-1.0.json',\n      referenceNumber: '309',\n      name: 'IBM Public License v1.0',\n      licenseId: 'IPL-1.0',\n      seeAlso: ['https://opensource.org/licenses/IPL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './ISC.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/ISC.json',\n      referenceNumber: '353',\n      name: 'ISC License',\n      licenseId: 'ISC',\n      seeAlso: [\n        'https://www.isc.org/downloads/software-support-policy/isc-license/',\n        'https://opensource.org/licenses/ISC'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './ImageMagick.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/ImageMagick.json',\n      referenceNumber: '326',\n      name: 'ImageMagick License',\n      licenseId: 'ImageMagick',\n      seeAlso: ['http://www.imagemagick.org/script/license.php'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Imlib2.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Imlib2.json',\n      referenceNumber: '135',\n      name: 'Imlib2 License',\n      licenseId: 'Imlib2',\n      seeAlso: [\n        'http://trac.enlightenment.org/e/browser/trunk/imlib2/COPYING',\n        'https://git.enlightenment.org/legacy/imlib2.git/tree/COPYING'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Info-ZIP.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Info-ZIP.json',\n      referenceNumber: '283',\n      name: 'Info-ZIP License',\n      licenseId: 'Info-ZIP',\n      seeAlso: ['http://www.info-zip.org/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Intel.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Intel.json',\n      referenceNumber: '29',\n      name: 'Intel Open Source License',\n      licenseId: 'Intel',\n      seeAlso: ['https://opensource.org/licenses/Intel'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Intel-ACPI.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Intel-ACPI.json',\n      referenceNumber: '235',\n      name: 'Intel ACPI Software License Agreement',\n      licenseId: 'Intel-ACPI',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/Intel_ACPI_Software_License_Agreement'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Interbase-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Interbase-1.0.json',\n      referenceNumber: '323',\n      name: 'Interbase Public License v1.0',\n      licenseId: 'Interbase-1.0',\n      seeAlso: [\n        'https://web.archive.org/web/20060319014854/http://info.borland.com/devsupport/interbase/opensource/IPL.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './JPNIC.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/JPNIC.json',\n      referenceNumber: '316',\n      name: 'Japan Network Information Center License',\n      licenseId: 'JPNIC',\n      seeAlso: [\n        'https://gitlab.isc.org/isc-projects/bind9/blob/master/COPYRIGHT#L366'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './JSON.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/JSON.json',\n      referenceNumber: '197',\n      name: 'JSON License',\n      licenseId: 'JSON',\n      seeAlso: ['http://www.json.org/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './JasPer-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/JasPer-2.0.json',\n      referenceNumber: '77',\n      name: 'JasPer License',\n      licenseId: 'JasPer-2.0',\n      seeAlso: ['http://www.ece.uvic.ca/~mdadams/jasper/LICENSE'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LAL-1.2.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LAL-1.2.json',\n      referenceNumber: '153',\n      name: 'Licence Art Libre 1.2',\n      licenseId: 'LAL-1.2',\n      seeAlso: ['http://artlibre.org/licence/lal/licence-art-libre-12/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LAL-1.3.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LAL-1.3.json',\n      referenceNumber: '357',\n      name: 'Licence Art Libre 1.3',\n      licenseId: 'LAL-1.3',\n      seeAlso: ['https://artlibre.org/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LGPL-2.0.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-2.0.json',\n      referenceNumber: '276',\n      name: 'GNU Library General Public License v2 only',\n      licenseId: 'LGPL-2.0',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-2.0+.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-2.0+.json',\n      referenceNumber: '139',\n      name: 'GNU Library General Public License v2 or later',\n      licenseId: 'LGPL-2.0+',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-2.0-only.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-2.0-only.json',\n      referenceNumber: '328',\n      name: 'GNU Library General Public License v2 only',\n      licenseId: 'LGPL-2.0-only',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-2.0-or-later.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-2.0-or-later.json',\n      referenceNumber: '35',\n      name: 'GNU Library General Public License v2 or later',\n      licenseId: 'LGPL-2.0-or-later',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-2.1.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-2.1.json',\n      referenceNumber: '182',\n      name: 'GNU Lesser General Public License v2.1 only',\n      licenseId: 'LGPL-2.1',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html',\n        'https://opensource.org/licenses/LGPL-2.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-2.1+.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-2.1+.json',\n      referenceNumber: '202',\n      name: 'GNU Library General Public License v2.1 or later',\n      licenseId: 'LGPL-2.1+',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html',\n        'https://opensource.org/licenses/LGPL-2.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-2.1-only.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-2.1-only.json',\n      referenceNumber: '138',\n      name: 'GNU Lesser General Public License v2.1 only',\n      licenseId: 'LGPL-2.1-only',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html',\n        'https://opensource.org/licenses/LGPL-2.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-2.1-or-later.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-2.1-or-later.json',\n      referenceNumber: '269',\n      name: 'GNU Lesser General Public License v2.1 or later',\n      licenseId: 'LGPL-2.1-or-later',\n      seeAlso: [\n        'https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html',\n        'https://opensource.org/licenses/LGPL-2.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-3.0.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-3.0.json',\n      referenceNumber: '209',\n      name: 'GNU Lesser General Public License v3.0 only',\n      licenseId: 'LGPL-3.0',\n      seeAlso: [\n        'https://www.gnu.org/licenses/lgpl-3.0-standalone.html',\n        'https://opensource.org/licenses/LGPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-3.0+.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-3.0+.json',\n      referenceNumber: '220',\n      name: 'GNU Lesser General Public License v3.0 or later',\n      licenseId: 'LGPL-3.0+',\n      seeAlso: [\n        'https://www.gnu.org/licenses/lgpl-3.0-standalone.html',\n        'https://opensource.org/licenses/LGPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-3.0-only.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-3.0-only.json',\n      referenceNumber: '47',\n      name: 'GNU Lesser General Public License v3.0 only',\n      licenseId: 'LGPL-3.0-only',\n      seeAlso: [\n        'https://www.gnu.org/licenses/lgpl-3.0-standalone.html',\n        'https://opensource.org/licenses/LGPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPL-3.0-or-later.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LGPL-3.0-or-later.json',\n      referenceNumber: '317',\n      name: 'GNU Lesser General Public License v3.0 or later',\n      licenseId: 'LGPL-3.0-or-later',\n      seeAlso: [\n        'https://www.gnu.org/licenses/lgpl-3.0-standalone.html',\n        'https://opensource.org/licenses/LGPL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LGPLLR.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LGPLLR.json',\n      referenceNumber: '404',\n      name: 'Lesser General Public License For Linguistic Resources',\n      licenseId: 'LGPLLR',\n      seeAlso: ['http://www-igm.univ-mlv.fr/~unitex/lgpllr.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LPL-1.0.json',\n      referenceNumber: '371',\n      name: 'Lucent Public License Version 1.0',\n      licenseId: 'LPL-1.0',\n      seeAlso: ['https://opensource.org/licenses/LPL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './LPL-1.02.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LPL-1.02.json',\n      referenceNumber: '120',\n      name: 'Lucent Public License v1.02',\n      licenseId: 'LPL-1.02',\n      seeAlso: [\n        'http://plan9.bell-labs.com/plan9/license.html',\n        'https://opensource.org/licenses/LPL-1.02'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LPPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LPPL-1.0.json',\n      referenceNumber: '82',\n      name: 'LaTeX Project Public License v1.0',\n      licenseId: 'LPPL-1.0',\n      seeAlso: ['http://www.latex-project.org/lppl/lppl-1-0.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LPPL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LPPL-1.1.json',\n      referenceNumber: '168',\n      name: 'LaTeX Project Public License v1.1',\n      licenseId: 'LPPL-1.1',\n      seeAlso: ['http://www.latex-project.org/lppl/lppl-1-1.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LPPL-1.2.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LPPL-1.2.json',\n      referenceNumber: '160',\n      name: 'LaTeX Project Public License v1.2',\n      licenseId: 'LPPL-1.2',\n      seeAlso: ['http://www.latex-project.org/lppl/lppl-1-2.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LPPL-1.3a.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/LPPL-1.3a.json',\n      referenceNumber: '270',\n      name: 'LaTeX Project Public License v1.3a',\n      licenseId: 'LPPL-1.3a',\n      seeAlso: ['http://www.latex-project.org/lppl/lppl-1-3a.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LPPL-1.3c.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LPPL-1.3c.json',\n      referenceNumber: '126',\n      name: 'LaTeX Project Public License v1.3c',\n      licenseId: 'LPPL-1.3c',\n      seeAlso: [\n        'http://www.latex-project.org/lppl/lppl-1-3c.txt',\n        'https://opensource.org/licenses/LPPL-1.3c'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Latex2e.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Latex2e.json',\n      referenceNumber: '37',\n      name: 'Latex2e License',\n      licenseId: 'Latex2e',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Latex2e'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Leptonica.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Leptonica.json',\n      referenceNumber: '300',\n      name: 'Leptonica License',\n      licenseId: 'Leptonica',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Leptonica'],\n      isOsiApproved: false\n    },\n    {\n      reference: './LiLiQ-P-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LiLiQ-P-1.1.json',\n      referenceNumber: '79',\n      name: 'Licence Libre du Québec – Permissive version 1.1',\n      licenseId: 'LiLiQ-P-1.1',\n      seeAlso: [\n        'https://forge.gouv.qc.ca/licence/fr/liliq-v1-1/',\n        'http://opensource.org/licenses/LiLiQ-P-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LiLiQ-R-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LiLiQ-R-1.1.json',\n      referenceNumber: '290',\n      name: 'Licence Libre du Québec – Réciprocité version 1.1',\n      licenseId: 'LiLiQ-R-1.1',\n      seeAlso: [\n        'https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-liliq-r-v1-1/',\n        'http://opensource.org/licenses/LiLiQ-R-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './LiLiQ-Rplus-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/LiLiQ-Rplus-1.1.json',\n      referenceNumber: '335',\n      name: 'Licence Libre du Québec – Réciprocité forte version 1.1',\n      licenseId: 'LiLiQ-Rplus-1.1',\n      seeAlso: [\n        'https://www.forge.gouv.qc.ca/participez/licence-logicielle/licence-libre-du-quebec-liliq-en-francais/licence-libre-du-quebec-reciprocite-forte-liliq-r-v1-1/',\n        'http://opensource.org/licenses/LiLiQ-Rplus-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Libpng.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Libpng.json',\n      referenceNumber: '376',\n      name: 'libpng License',\n      licenseId: 'Libpng',\n      seeAlso: ['http://www.libpng.org/pub/png/src/libpng-LICENSE.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Linux-OpenIB.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Linux-OpenIB.json',\n      referenceNumber: '217',\n      name: 'Linux Kernel Variant of OpenIB.org license',\n      licenseId: 'Linux-OpenIB',\n      seeAlso: [\n        'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/infiniband/core/sa.h'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './MIT.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/MIT.json',\n      referenceNumber: '256',\n      name: 'MIT License',\n      licenseId: 'MIT',\n      seeAlso: ['https://opensource.org/licenses/MIT'],\n      isOsiApproved: true\n    },\n    {\n      reference: './MIT-0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MIT-0.json',\n      referenceNumber: '76',\n      name: 'MIT No Attribution',\n      licenseId: 'MIT-0',\n      seeAlso: [\n        'https://github.com/aws/mit-0',\n        'https://romanrm.net/mit-zero',\n        'https://github.com/awsdocs/aws-cloud9-user-guide/blob/master/LICENSE-SAMPLECODE'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './MIT-CMU.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MIT-CMU.json',\n      referenceNumber: '344',\n      name: 'CMU License',\n      licenseId: 'MIT-CMU',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT#CMU_Style',\n        'https://github.com/python-pillow/Pillow/blob/fffb426092c8db24a5f4b6df243a8a3c01fb63cd/LICENSE'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './MIT-advertising.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MIT-advertising.json',\n      referenceNumber: '192',\n      name: 'Enlightenment License (e16)',\n      licenseId: 'MIT-advertising',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/MIT_With_Advertising'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './MIT-enna.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MIT-enna.json',\n      referenceNumber: '52',\n      name: 'enna License',\n      licenseId: 'MIT-enna',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/MIT#enna'],\n      isOsiApproved: false\n    },\n    {\n      reference: './MIT-feh.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MIT-feh.json',\n      referenceNumber: '365',\n      name: 'feh License',\n      licenseId: 'MIT-feh',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/MIT#feh'],\n      isOsiApproved: false\n    },\n    {\n      reference: './MITNFA.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MITNFA.json',\n      referenceNumber: '336',\n      name: 'MIT +no-false-attribs license',\n      licenseId: 'MITNFA',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/MITNFA'],\n      isOsiApproved: false\n    },\n    {\n      reference: './MPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MPL-1.0.json',\n      referenceNumber: '239',\n      name: 'Mozilla Public License 1.0',\n      licenseId: 'MPL-1.0',\n      seeAlso: [\n        'http://www.mozilla.org/MPL/MPL-1.0.html',\n        'https://opensource.org/licenses/MPL-1.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './MPL-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/MPL-1.1.json',\n      referenceNumber: '394',\n      name: 'Mozilla Public License 1.1',\n      licenseId: 'MPL-1.1',\n      seeAlso: [\n        'http://www.mozilla.org/MPL/MPL-1.1.html',\n        'https://opensource.org/licenses/MPL-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './MPL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/MPL-2.0.json',\n      referenceNumber: '121',\n      name: 'Mozilla Public License 2.0',\n      licenseId: 'MPL-2.0',\n      seeAlso: [\n        'http://www.mozilla.org/MPL/2.0/',\n        'https://opensource.org/licenses/MPL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './MPL-2.0-no-copyleft-exception.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MPL-2.0-no-copyleft-exception.json',\n      referenceNumber: '183',\n      name: 'Mozilla Public License 2.0 (no copyleft exception)',\n      licenseId: 'MPL-2.0-no-copyleft-exception',\n      seeAlso: [\n        'http://www.mozilla.org/MPL/2.0/',\n        'https://opensource.org/licenses/MPL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './MS-PL.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/MS-PL.json',\n      referenceNumber: '366',\n      name: 'Microsoft Public License',\n      licenseId: 'MS-PL',\n      seeAlso: [\n        'http://www.microsoft.com/opensource/licenses.mspx',\n        'https://opensource.org/licenses/MS-PL'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './MS-RL.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/MS-RL.json',\n      referenceNumber: '4',\n      name: 'Microsoft Reciprocal License',\n      licenseId: 'MS-RL',\n      seeAlso: [\n        'http://www.microsoft.com/opensource/licenses.mspx',\n        'https://opensource.org/licenses/MS-RL'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './MTLL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MTLL.json',\n      referenceNumber: '102',\n      name: 'Matrix Template Library License',\n      licenseId: 'MTLL',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/Matrix_Template_Library_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './MakeIndex.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MakeIndex.json',\n      referenceNumber: '343',\n      name: 'MakeIndex License',\n      licenseId: 'MakeIndex',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/MakeIndex'],\n      isOsiApproved: false\n    },\n    {\n      reference: './MirOS.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MirOS.json',\n      referenceNumber: '369',\n      name: 'The MirOS Licence',\n      licenseId: 'MirOS',\n      seeAlso: ['https://opensource.org/licenses/MirOS'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Motosoto.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Motosoto.json',\n      referenceNumber: '12',\n      name: 'Motosoto License',\n      licenseId: 'Motosoto',\n      seeAlso: ['https://opensource.org/licenses/Motosoto'],\n      isOsiApproved: true\n    },\n    {\n      reference: './MulanPSL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/MulanPSL-1.0.json',\n      referenceNumber: '201',\n      name: 'Mulan Permissive Software License, Version 1',\n      licenseId: 'MulanPSL-1.0',\n      seeAlso: [\n        'https://license.coscl.org.cn/MulanPSL/',\n        'https://github.com/yuwenlong/longphp/blob/25dfb70cc2a466dc4bb55ba30901cbce08d164b5/LICENSE'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Multics.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Multics.json',\n      referenceNumber: '164',\n      name: 'Multics License',\n      licenseId: 'Multics',\n      seeAlso: ['https://opensource.org/licenses/Multics'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Mup.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Mup.json',\n      referenceNumber: '305',\n      name: 'Mup License',\n      licenseId: 'Mup',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Mup'],\n      isOsiApproved: false\n    },\n    {\n      reference: './NASA-1.3.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NASA-1.3.json',\n      referenceNumber: '110',\n      name: 'NASA Open Source Agreement 1.3',\n      licenseId: 'NASA-1.3',\n      seeAlso: [\n        'http://ti.arc.nasa.gov/opensource/nosa/',\n        'https://opensource.org/licenses/NASA-1.3'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './NBPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NBPL-1.0.json',\n      referenceNumber: '17',\n      name: 'Net Boolean Public License v1',\n      licenseId: 'NBPL-1.0',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=37b4b3f6cc4bf34e1d3dec61e69914b9819d8894'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './NCSA.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/NCSA.json',\n      referenceNumber: '187',\n      name: 'University of Illinois/NCSA Open Source License',\n      licenseId: 'NCSA',\n      seeAlso: [\n        'http://otm.illinois.edu/uiuc_openSource',\n        'https://opensource.org/licenses/NCSA'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './NGPL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NGPL.json',\n      referenceNumber: '308',\n      name: 'Nethack General Public License',\n      licenseId: 'NGPL',\n      seeAlso: ['https://opensource.org/licenses/NGPL'],\n      isOsiApproved: true\n    },\n    {\n      reference: './NLOD-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NLOD-1.0.json',\n      referenceNumber: '134',\n      name: 'Norwegian Licence for Open Government Data',\n      licenseId: 'NLOD-1.0',\n      seeAlso: ['http://data.norge.no/nlod/en/1.0'],\n      isOsiApproved: false\n    },\n    {\n      reference: './NLPL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NLPL.json',\n      referenceNumber: '306',\n      name: 'No Limit Public License',\n      licenseId: 'NLPL',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/NLPL'],\n      isOsiApproved: false\n    },\n    {\n      reference: './NOSL.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/NOSL.json',\n      referenceNumber: '380',\n      name: 'Netizen Open Source License',\n      licenseId: 'NOSL',\n      seeAlso: ['http://bits.netizen.com.au/licenses/NOSL/nosl.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './NPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/NPL-1.0.json',\n      referenceNumber: '245',\n      name: 'Netscape Public License v1.0',\n      licenseId: 'NPL-1.0',\n      seeAlso: ['http://www.mozilla.org/MPL/NPL/1.0/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './NPL-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/NPL-1.1.json',\n      referenceNumber: '409',\n      name: 'Netscape Public License v1.1',\n      licenseId: 'NPL-1.1',\n      seeAlso: ['http://www.mozilla.org/MPL/NPL/1.1/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './NPOSL-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NPOSL-3.0.json',\n      referenceNumber: '150',\n      name: 'Non-Profit Open Software License 3.0',\n      licenseId: 'NPOSL-3.0',\n      seeAlso: ['https://opensource.org/licenses/NOSL3.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './NRL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NRL.json',\n      referenceNumber: '101',\n      name: 'NRL License',\n      licenseId: 'NRL',\n      seeAlso: ['http://web.mit.edu/network/isakmp/nrllicense.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './NTP.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NTP.json',\n      referenceNumber: '258',\n      name: 'NTP License',\n      licenseId: 'NTP',\n      seeAlso: ['https://opensource.org/licenses/NTP'],\n      isOsiApproved: true\n    },\n    {\n      reference: './NTP-0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NTP-0.json',\n      referenceNumber: '185',\n      name: 'NTP No Attribution',\n      licenseId: 'NTP-0',\n      seeAlso: [\n        'https://github.com/tytso/e2fsprogs/blob/master/lib/et/et_name.c'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Naumen.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Naumen.json',\n      referenceNumber: '282',\n      name: 'Naumen Public License',\n      licenseId: 'Naumen',\n      seeAlso: ['https://opensource.org/licenses/Naumen'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Net-SNMP.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Net-SNMP.json',\n      referenceNumber: '278',\n      name: 'Net-SNMP License',\n      licenseId: 'Net-SNMP',\n      seeAlso: ['http://net-snmp.sourceforge.net/about/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './NetCDF.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/NetCDF.json',\n      referenceNumber: '212',\n      name: 'NetCDF license',\n      licenseId: 'NetCDF',\n      seeAlso: ['http://www.unidata.ucar.edu/software/netcdf/copyright.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Newsletr.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Newsletr.json',\n      referenceNumber: '358',\n      name: 'Newsletr License',\n      licenseId: 'Newsletr',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Newsletr'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Nokia.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Nokia.json',\n      referenceNumber: '125',\n      name: 'Nokia Open Source License',\n      licenseId: 'Nokia',\n      seeAlso: ['https://opensource.org/licenses/nokia'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Noweb.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Noweb.json',\n      referenceNumber: '70',\n      name: 'Noweb License',\n      licenseId: 'Noweb',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Noweb'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Nunit.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Nunit.json',\n      referenceNumber: '87',\n      name: 'Nunit License',\n      licenseId: 'Nunit',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Nunit'],\n      isOsiApproved: false\n    },\n    {\n      reference: './OCCT-PL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OCCT-PL.json',\n      referenceNumber: '65',\n      name: 'Open CASCADE Technology Public License',\n      licenseId: 'OCCT-PL',\n      seeAlso: ['http://www.opencascade.com/content/occt-public-license'],\n      isOsiApproved: false\n    },\n    {\n      reference: './OCLC-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OCLC-2.0.json',\n      referenceNumber: '341',\n      name: 'OCLC Research Public License 2.0',\n      licenseId: 'OCLC-2.0',\n      seeAlso: [\n        'http://www.oclc.org/research/activities/software/license/v2final.htm',\n        'https://opensource.org/licenses/OCLC-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './ODC-By-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/ODC-By-1.0.json',\n      referenceNumber: '381',\n      name: 'Open Data Commons Attribution License v1.0',\n      licenseId: 'ODC-By-1.0',\n      seeAlso: ['https://opendatacommons.org/licenses/by/1.0/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './ODbL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/ODbL-1.0.json',\n      referenceNumber: '340',\n      name: 'ODC Open Database License v1.0',\n      licenseId: 'ODbL-1.0',\n      seeAlso: ['http://www.opendatacommons.org/licenses/odbl/1.0/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './OFL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OFL-1.0.json',\n      referenceNumber: '80',\n      name: 'SIL Open Font License 1.0',\n      licenseId: 'OFL-1.0',\n      seeAlso: [\n        'http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OFL-1.0-RFN.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OFL-1.0-RFN.json',\n      referenceNumber: '298',\n      name: 'SIL Open Font License 1.0 with Reserved Font Name',\n      licenseId: 'OFL-1.0-RFN',\n      seeAlso: [\n        'http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OFL-1.0-no-RFN.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OFL-1.0-no-RFN.json',\n      referenceNumber: '71',\n      name: 'SIL Open Font License 1.0 with no Reserved Font Name',\n      licenseId: 'OFL-1.0-no-RFN',\n      seeAlso: [\n        'http://scripts.sil.org/cms/scripts/page.php?item_id=OFL10_web'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OFL-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OFL-1.1.json',\n      referenceNumber: '311',\n      name: 'SIL Open Font License 1.1',\n      licenseId: 'OFL-1.1',\n      seeAlso: [\n        'http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web',\n        'https://opensource.org/licenses/OFL-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './OFL-1.1-RFN.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OFL-1.1-RFN.json',\n      referenceNumber: '43',\n      name: 'SIL Open Font License 1.1 with Reserved Font Name',\n      licenseId: 'OFL-1.1-RFN',\n      seeAlso: [\n        'http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web',\n        'https://opensource.org/licenses/OFL-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './OFL-1.1-no-RFN.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OFL-1.1-no-RFN.json',\n      referenceNumber: '238',\n      name: 'SIL Open Font License 1.1 with no Reserved Font Name',\n      licenseId: 'OFL-1.1-no-RFN',\n      seeAlso: [\n        'http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web',\n        'https://opensource.org/licenses/OFL-1.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './OGL-Canada-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OGL-Canada-2.0.json',\n      referenceNumber: '346',\n      name: 'Open Government Licence - Canada',\n      licenseId: 'OGL-Canada-2.0',\n      seeAlso: ['https://open.canada.ca/en/open-government-licence-canada'],\n      isOsiApproved: false\n    },\n    {\n      reference: './OGL-UK-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OGL-UK-1.0.json',\n      referenceNumber: '348',\n      name: 'Open Government Licence v1.0',\n      licenseId: 'OGL-UK-1.0',\n      seeAlso: [\n        'http://www.nationalarchives.gov.uk/doc/open-government-licence/version/1/'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OGL-UK-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OGL-UK-2.0.json',\n      referenceNumber: '13',\n      name: 'Open Government Licence v2.0',\n      licenseId: 'OGL-UK-2.0',\n      seeAlso: [\n        'http://www.nationalarchives.gov.uk/doc/open-government-licence/version/2/'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OGL-UK-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OGL-UK-3.0.json',\n      referenceNumber: '21',\n      name: 'Open Government Licence v3.0',\n      licenseId: 'OGL-UK-3.0',\n      seeAlso: [\n        'http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OGTSL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OGTSL.json',\n      referenceNumber: '26',\n      name: 'Open Group Test Suite License',\n      licenseId: 'OGTSL',\n      seeAlso: [\n        'http://www.opengroup.org/testing/downloads/The_Open_Group_TSL.txt',\n        'https://opensource.org/licenses/OGTSL'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './OLDAP-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-1.1.json',\n      referenceNumber: '55',\n      name: 'Open LDAP Public License v1.1',\n      licenseId: 'OLDAP-1.1',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=806557a5ad59804ef3a44d5abfbe91d706b0791f'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-1.2.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-1.2.json',\n      referenceNumber: '48',\n      name: 'Open LDAP Public License v1.2',\n      licenseId: 'OLDAP-1.2',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=42b0383c50c299977b5893ee695cf4e486fb0dc7'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-1.3.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-1.3.json',\n      referenceNumber: '42',\n      name: 'Open LDAP Public License v1.3',\n      licenseId: 'OLDAP-1.3',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=e5f8117f0ce088d0bd7a8e18ddf37eaa40eb09b1'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-1.4.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-1.4.json',\n      referenceNumber: '50',\n      name: 'Open LDAP Public License v1.4',\n      licenseId: 'OLDAP-1.4',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=c9f95c2f3f2ffb5e0ae55fe7388af75547660941'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.0.json',\n      referenceNumber: '25',\n      name: 'Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)',\n      licenseId: 'OLDAP-2.0',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=cbf50f4e1185a21abd4c0a54d3f4341fe28f36ea'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.0.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.0.1.json',\n      referenceNumber: '280',\n      name: 'Open LDAP Public License v2.0.1',\n      licenseId: 'OLDAP-2.0.1',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=b6d68acd14e51ca3aab4428bf26522aa74873f0e'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.1.json',\n      referenceNumber: '400',\n      name: 'Open LDAP Public License v2.1',\n      licenseId: 'OLDAP-2.1',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=b0d176738e96a0d3b9f85cb51e140a86f21be715'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.2.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.2.json',\n      referenceNumber: '318',\n      name: 'Open LDAP Public License v2.2',\n      licenseId: 'OLDAP-2.2',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=470b0c18ec67621c85881b2733057fecf4a1acc3'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.2.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.2.1.json',\n      referenceNumber: '384',\n      name: 'Open LDAP Public License v2.2.1',\n      licenseId: 'OLDAP-2.2.1',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=4bc786f34b50aa301be6f5600f58a980070f481e'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.2.2.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.2.2.json',\n      referenceNumber: '170',\n      name: 'Open LDAP Public License 2.2.2',\n      licenseId: 'OLDAP-2.2.2',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=df2cc1e21eb7c160695f5b7cffd6296c151ba188'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.3.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.3.json',\n      referenceNumber: '230',\n      name: 'Open LDAP Public License v2.3',\n      licenseId: 'OLDAP-2.3',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=d32cf54a32d581ab475d23c810b0a7fbaf8d63c3'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.4.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.4.json',\n      referenceNumber: '115',\n      name: 'Open LDAP Public License v2.4',\n      licenseId: 'OLDAP-2.4',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=cd1284c4a91a8a380d904eee68d1583f989ed386'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.5.json',\n      referenceNumber: '108',\n      name: 'Open LDAP Public License v2.5',\n      licenseId: 'OLDAP-2.5',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=6852b9d90022e8593c98205413380536b1b5a7cf'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.6.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.6.json',\n      referenceNumber: '109',\n      name: 'Open LDAP Public License v2.6',\n      licenseId: 'OLDAP-2.6',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=1cae062821881f41b73012ba816434897abf4205'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.7.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.7.json',\n      referenceNumber: '229',\n      name: 'Open LDAP Public License v2.7',\n      licenseId: 'OLDAP-2.7',\n      seeAlso: [\n        'http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=LICENSE;hb=47c2415c1df81556eeb39be6cad458ef87c534a2'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OLDAP-2.8.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OLDAP-2.8.json',\n      referenceNumber: '252',\n      name: 'Open LDAP Public License v2.8',\n      licenseId: 'OLDAP-2.8',\n      seeAlso: ['http://www.openldap.org/software/release/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './OML.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OML.json',\n      referenceNumber: '171',\n      name: 'Open Market License',\n      licenseId: 'OML',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Open_Market_License'],\n      isOsiApproved: false\n    },\n    {\n      reference: './OPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OPL-1.0.json',\n      referenceNumber: '338',\n      name: 'Open Public License v1.0',\n      licenseId: 'OPL-1.0',\n      seeAlso: [\n        'http://old.koalateam.com/jackaroo/OPL_1_0.TXT',\n        'https://fedoraproject.org/wiki/Licensing/Open_Public_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './OSET-PL-2.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/OSET-PL-2.1.json',\n      referenceNumber: '203',\n      name: 'OSET Public License version 2.1',\n      licenseId: 'OSET-PL-2.1',\n      seeAlso: [\n        'http://www.osetfoundation.org/public-license',\n        'https://opensource.org/licenses/OPL-2.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './OSL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OSL-1.0.json',\n      referenceNumber: '95',\n      name: 'Open Software License 1.0',\n      licenseId: 'OSL-1.0',\n      seeAlso: ['https://opensource.org/licenses/OSL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './OSL-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OSL-1.1.json',\n      referenceNumber: '178',\n      name: 'Open Software License 1.1',\n      licenseId: 'OSL-1.1',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/OSL1.1'],\n      isOsiApproved: false\n    },\n    {\n      reference: './OSL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OSL-2.0.json',\n      referenceNumber: '364',\n      name: 'Open Software License 2.0',\n      licenseId: 'OSL-2.0',\n      seeAlso: [\n        'http://web.archive.org/web/20041020171434/http://www.rosenlaw.com/osl2.0.html'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './OSL-2.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OSL-2.1.json',\n      referenceNumber: '157',\n      name: 'Open Software License 2.1',\n      licenseId: 'OSL-2.1',\n      seeAlso: [\n        'http://web.archive.org/web/20050212003940/http://www.rosenlaw.com/osl21.htm',\n        'https://opensource.org/licenses/OSL-2.1'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './OSL-3.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OSL-3.0.json',\n      referenceNumber: '149',\n      name: 'Open Software License 3.0',\n      licenseId: 'OSL-3.0',\n      seeAlso: [\n        'https://web.archive.org/web/20120101081418/http://rosenlaw.com:80/OSL3.0.htm',\n        'https://opensource.org/licenses/OSL-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './OpenSSL.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/OpenSSL.json',\n      referenceNumber: '83',\n      name: 'OpenSSL License',\n      licenseId: 'OpenSSL',\n      seeAlso: ['http://www.openssl.org/source/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './PDDL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/PDDL-1.0.json',\n      referenceNumber: '132',\n      name: 'ODC Public Domain Dedication & License 1.0',\n      licenseId: 'PDDL-1.0',\n      seeAlso: ['http://opendatacommons.org/licenses/pddl/1.0/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './PHP-3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/PHP-3.0.json',\n      referenceNumber: '191',\n      name: 'PHP License v3.0',\n      licenseId: 'PHP-3.0',\n      seeAlso: [\n        'http://www.php.net/license/3_0.txt',\n        'https://opensource.org/licenses/PHP-3.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './PHP-3.01.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/PHP-3.01.json',\n      referenceNumber: '3',\n      name: 'PHP License v3.01',\n      licenseId: 'PHP-3.01',\n      seeAlso: ['http://www.php.net/license/3_01.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './PSF-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/PSF-2.0.json',\n      referenceNumber: '91',\n      name: 'Python Software Foundation License 2.0',\n      licenseId: 'PSF-2.0',\n      seeAlso: ['https://opensource.org/licenses/Python-2.0'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Parity-6.0.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Parity-6.0.0.json',\n      referenceNumber: '406',\n      name: 'The Parity Public License 6.0.0',\n      licenseId: 'Parity-6.0.0',\n      seeAlso: ['https://paritylicense.com/versions/6.0.0.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Plexus.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Plexus.json',\n      referenceNumber: '156',\n      name: 'Plexus Classworlds License',\n      licenseId: 'Plexus',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/Plexus_Classworlds_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './PostgreSQL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/PostgreSQL.json',\n      referenceNumber: '11',\n      name: 'PostgreSQL License',\n      licenseId: 'PostgreSQL',\n      seeAlso: [\n        'http://www.postgresql.org/about/licence',\n        'https://opensource.org/licenses/PostgreSQL'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Python-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Python-2.0.json',\n      referenceNumber: '393',\n      name: 'Python License 2.0',\n      licenseId: 'Python-2.0',\n      seeAlso: ['https://opensource.org/licenses/Python-2.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './QPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/QPL-1.0.json',\n      referenceNumber: '289',\n      name: 'Q Public License 1.0',\n      licenseId: 'QPL-1.0',\n      seeAlso: [\n        'http://doc.qt.nokia.com/3.3/license.html',\n        'https://opensource.org/licenses/QPL-1.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Qhull.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Qhull.json',\n      referenceNumber: '124',\n      name: 'Qhull License',\n      licenseId: 'Qhull',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Qhull'],\n      isOsiApproved: false\n    },\n    {\n      reference: './RHeCos-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/RHeCos-1.1.json',\n      referenceNumber: '61',\n      name: 'Red Hat eCos Public License v1.1',\n      licenseId: 'RHeCos-1.1',\n      seeAlso: ['http://ecos.sourceware.org/old-license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './RPL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/RPL-1.1.json',\n      referenceNumber: '216',\n      name: 'Reciprocal Public License 1.1',\n      licenseId: 'RPL-1.1',\n      seeAlso: ['https://opensource.org/licenses/RPL-1.1'],\n      isOsiApproved: true\n    },\n    {\n      reference: './RPL-1.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/RPL-1.5.json',\n      referenceNumber: '105',\n      name: 'Reciprocal Public License 1.5',\n      licenseId: 'RPL-1.5',\n      seeAlso: ['https://opensource.org/licenses/RPL-1.5'],\n      isOsiApproved: true\n    },\n    {\n      reference: './RPSL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/RPSL-1.0.json',\n      referenceNumber: '53',\n      name: 'RealNetworks Public Source License v1.0',\n      licenseId: 'RPSL-1.0',\n      seeAlso: [\n        'https://helixcommunity.org/content/rpsl',\n        'https://opensource.org/licenses/RPSL-1.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './RSA-MD.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/RSA-MD.json',\n      referenceNumber: '279',\n      name: 'RSA Message-Digest License ',\n      licenseId: 'RSA-MD',\n      seeAlso: ['http://www.faqs.org/rfcs/rfc1321.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './RSCPL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/RSCPL.json',\n      referenceNumber: '339',\n      name: 'Ricoh Source Code Public License',\n      licenseId: 'RSCPL',\n      seeAlso: [\n        'http://wayback.archive.org/web/20060715140826/http://www.risource.org/RPL/RPL-1.0A.shtml',\n        'https://opensource.org/licenses/RSCPL'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './Rdisc.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Rdisc.json',\n      referenceNumber: '322',\n      name: 'Rdisc License',\n      licenseId: 'Rdisc',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Rdisc_License'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Ruby.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Ruby.json',\n      referenceNumber: '14',\n      name: 'Ruby License',\n      licenseId: 'Ruby',\n      seeAlso: ['http://www.ruby-lang.org/en/LICENSE.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SAX-PD.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SAX-PD.json',\n      referenceNumber: '152',\n      name: 'Sax Public Domain Notice',\n      licenseId: 'SAX-PD',\n      seeAlso: ['http://www.saxproject.org/copying.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SCEA.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SCEA.json',\n      referenceNumber: '137',\n      name: 'SCEA Shared Source License',\n      licenseId: 'SCEA',\n      seeAlso: ['http://research.scea.com/scea_shared_source_license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SGI-B-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SGI-B-1.0.json',\n      referenceNumber: '189',\n      name: 'SGI Free Software License B v1.0',\n      licenseId: 'SGI-B-1.0',\n      seeAlso: ['http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.1.0.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SGI-B-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SGI-B-1.1.json',\n      referenceNumber: '288',\n      name: 'SGI Free Software License B v1.1',\n      licenseId: 'SGI-B-1.1',\n      seeAlso: ['http://oss.sgi.com/projects/FreeB/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SGI-B-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/SGI-B-2.0.json',\n      referenceNumber: '31',\n      name: 'SGI Free Software License B v2.0',\n      licenseId: 'SGI-B-2.0',\n      seeAlso: ['http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SHL-0.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SHL-0.5.json',\n      referenceNumber: '49',\n      name: 'Solderpad Hardware License v0.5',\n      licenseId: 'SHL-0.5',\n      seeAlso: ['https://solderpad.org/licenses/SHL-0.5/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SHL-0.51.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SHL-0.51.json',\n      referenceNumber: '281',\n      name: 'Solderpad Hardware License, Version 0.51',\n      licenseId: 'SHL-0.51',\n      seeAlso: ['https://solderpad.org/licenses/SHL-0.51/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SISSL.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/SISSL.json',\n      referenceNumber: '78',\n      name: 'Sun Industry Standards Source License v1.1',\n      licenseId: 'SISSL',\n      seeAlso: [\n        'http://www.openoffice.org/licenses/sissl_license.html',\n        'https://opensource.org/licenses/SISSL'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './SISSL-1.2.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SISSL-1.2.json',\n      referenceNumber: '62',\n      name: 'Sun Industry Standards Source License v1.2',\n      licenseId: 'SISSL-1.2',\n      seeAlso: [\n        'http://gridscheduler.sourceforge.net/Gridengine_SISSL_license.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './SMLNJ.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/SMLNJ.json',\n      referenceNumber: '218',\n      name: 'Standard ML of New Jersey License',\n      licenseId: 'SMLNJ',\n      seeAlso: ['https://www.smlnj.org/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SMPPL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SMPPL.json',\n      referenceNumber: '106',\n      name: 'Secure Messaging Protocol Public License',\n      licenseId: 'SMPPL',\n      seeAlso: [\n        'https://github.com/dcblake/SMP/blob/master/Documentation/License.txt'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './SNIA.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SNIA.json',\n      referenceNumber: '302',\n      name: 'SNIA Public License 1.1',\n      licenseId: 'SNIA',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/SNIA_Public_License'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/SPL-1.0.json',\n      referenceNumber: '247',\n      name: 'Sun Public License v1.0',\n      licenseId: 'SPL-1.0',\n      seeAlso: ['https://opensource.org/licenses/SPL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './SSH-OpenSSH.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SSH-OpenSSH.json',\n      referenceNumber: '22',\n      name: 'SSH OpenSSH license',\n      licenseId: 'SSH-OpenSSH',\n      seeAlso: [\n        'https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/LICENCE#L10'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './SSH-short.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SSH-short.json',\n      referenceNumber: '67',\n      name: 'SSH short notice',\n      licenseId: 'SSH-short',\n      seeAlso: [\n        'https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/pathnames.h',\n        'http://web.mit.edu/kolya/.f/root/athena.mit.edu/sipb.mit.edu/project/openssh/OldFiles/src/openssh-2.9.9p2/ssh-add.1',\n        'https://joinup.ec.europa.eu/svn/lesoll/trunk/italc/lib/src/dsa_key.cpp'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './SSPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SSPL-1.0.json',\n      referenceNumber: '334',\n      name: 'Server Side Public License, v 1',\n      licenseId: 'SSPL-1.0',\n      seeAlso: ['https://www.mongodb.com/licensing/server-side-public-license'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SWL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SWL.json',\n      referenceNumber: '93',\n      name: 'Scheme Widget Library (SWL) Software License Agreement',\n      licenseId: 'SWL',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/SWL'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Saxpath.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Saxpath.json',\n      referenceNumber: '34',\n      name: 'Saxpath License',\n      licenseId: 'Saxpath',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Saxpath_License'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Sendmail.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Sendmail.json',\n      referenceNumber: '293',\n      name: 'Sendmail License',\n      licenseId: 'Sendmail',\n      seeAlso: [\n        'http://www.sendmail.com/pdfs/open_source/sendmail_license.pdf',\n        'https://web.archive.org/web/20160322142305/https://www.sendmail.com/pdfs/open_source/sendmail_license.pdf'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Sendmail-8.23.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Sendmail-8.23.json',\n      referenceNumber: '176',\n      name: 'Sendmail License 8.23',\n      licenseId: 'Sendmail-8.23',\n      seeAlso: [\n        'https://www.proofpoint.com/sites/default/files/sendmail-license.pdf',\n        'https://web.archive.org/web/20181003101040/https://www.proofpoint.com/sites/default/files/sendmail-license.pdf'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './SimPL-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SimPL-2.0.json',\n      referenceNumber: '250',\n      name: 'Simple Public License 2.0',\n      licenseId: 'SimPL-2.0',\n      seeAlso: ['https://opensource.org/licenses/SimPL-2.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Sleepycat.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Sleepycat.json',\n      referenceNumber: '56',\n      name: 'Sleepycat License',\n      licenseId: 'Sleepycat',\n      seeAlso: ['https://opensource.org/licenses/Sleepycat'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Spencer-86.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Spencer-86.json',\n      referenceNumber: '184',\n      name: 'Spencer License 86',\n      licenseId: 'Spencer-86',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Spencer-94.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Spencer-94.json',\n      referenceNumber: '213',\n      name: 'Spencer License 94',\n      licenseId: 'Spencer-94',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/Henry_Spencer_Reg-Ex_Library_License'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Spencer-99.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Spencer-99.json',\n      referenceNumber: '64',\n      name: 'Spencer License 99',\n      licenseId: 'Spencer-99',\n      seeAlso: [\n        'http://www.opensource.apple.com/source/tcl/tcl-5/tcl/generic/regfronts.c'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './StandardML-NJ.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/StandardML-NJ.json',\n      referenceNumber: '285',\n      name: 'Standard ML of New Jersey License',\n      licenseId: 'StandardML-NJ',\n      seeAlso: ['http://www.smlnj.org//license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './SugarCRM-1.1.3.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/SugarCRM-1.1.3.json',\n      referenceNumber: '342',\n      name: 'SugarCRM Public License v1.1.3',\n      licenseId: 'SugarCRM-1.1.3',\n      seeAlso: ['http://www.sugarcrm.com/crm/SPL'],\n      isOsiApproved: false\n    },\n    {\n      reference: './TAPR-OHL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/TAPR-OHL-1.0.json',\n      referenceNumber: '9',\n      name: 'TAPR Open Hardware License v1.0',\n      licenseId: 'TAPR-OHL-1.0',\n      seeAlso: ['https://www.tapr.org/OHL'],\n      isOsiApproved: false\n    },\n    {\n      reference: './TCL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/TCL.json',\n      referenceNumber: '54',\n      name: 'TCL/TK License',\n      licenseId: 'TCL',\n      seeAlso: [\n        'http://www.tcl.tk/software/tcltk/license.html',\n        'https://fedoraproject.org/wiki/Licensing/TCL'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './TCP-wrappers.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/TCP-wrappers.json',\n      referenceNumber: '234',\n      name: 'TCP Wrappers License',\n      licenseId: 'TCP-wrappers',\n      seeAlso: ['http://rc.quest.com/topics/openssh/license.php#tcpwrappers'],\n      isOsiApproved: false\n    },\n    {\n      reference: './TMate.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/TMate.json',\n      referenceNumber: '402',\n      name: 'TMate Open Source License',\n      licenseId: 'TMate',\n      seeAlso: ['http://svnkit.com/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './TORQUE-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/TORQUE-1.1.json',\n      referenceNumber: '188',\n      name: 'TORQUE v2.5+ Software License v1.1',\n      licenseId: 'TORQUE-1.1',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/TORQUEv1.1'],\n      isOsiApproved: false\n    },\n    {\n      reference: './TOSL.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/TOSL.json',\n      referenceNumber: '251',\n      name: 'Trusster Open Source License',\n      licenseId: 'TOSL',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/TOSL'],\n      isOsiApproved: false\n    },\n    {\n      reference: './TU-Berlin-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/TU-Berlin-1.0.json',\n      referenceNumber: '372',\n      name: 'Technische Universitaet Berlin License 1.0',\n      licenseId: 'TU-Berlin-1.0',\n      seeAlso: [\n        'https://github.com/swh/ladspa/blob/7bf6f3799fdba70fda297c2d8fd9f526803d9680/gsm/COPYRIGHT'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './TU-Berlin-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/TU-Berlin-2.0.json',\n      referenceNumber: '392',\n      name: 'Technische Universitaet Berlin License 2.0',\n      licenseId: 'TU-Berlin-2.0',\n      seeAlso: [\n        'https://github.com/CorsixTH/deps/blob/fd339a9f526d1d9c9f01ccf39e438a015da50035/licences/libgsm.txt'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './UCL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/UCL-1.0.json',\n      referenceNumber: '291',\n      name: 'Upstream Compatibility License v1.0',\n      licenseId: 'UCL-1.0',\n      seeAlso: ['https://opensource.org/licenses/UCL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './UPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/UPL-1.0.json',\n      referenceNumber: '144',\n      name: 'Universal Permissive License v1.0',\n      licenseId: 'UPL-1.0',\n      seeAlso: ['https://opensource.org/licenses/UPL'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Unicode-DFS-2015.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Unicode-DFS-2015.json',\n      referenceNumber: '260',\n      name: 'Unicode License Agreement - Data Files and Software (2015)',\n      licenseId: 'Unicode-DFS-2015',\n      seeAlso: [\n        'https://web.archive.org/web/20151224134844/http://unicode.org/copyright.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Unicode-DFS-2016.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Unicode-DFS-2016.json',\n      referenceNumber: '370',\n      name: 'Unicode License Agreement - Data Files and Software (2016)',\n      licenseId: 'Unicode-DFS-2016',\n      seeAlso: ['http://www.unicode.org/copyright.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Unicode-TOU.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Unicode-TOU.json',\n      referenceNumber: '16',\n      name: 'Unicode Terms of Use',\n      licenseId: 'Unicode-TOU',\n      seeAlso: ['http://www.unicode.org/copyright.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Unlicense.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Unlicense.json',\n      referenceNumber: '173',\n      name: 'The Unlicense',\n      licenseId: 'Unlicense',\n      seeAlso: ['https://unlicense.org/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './VOSTROM.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/VOSTROM.json',\n      referenceNumber: '352',\n      name: 'VOSTROM Public License for Open Source',\n      licenseId: 'VOSTROM',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/VOSTROM'],\n      isOsiApproved: false\n    },\n    {\n      reference: './VSL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/VSL-1.0.json',\n      referenceNumber: '390',\n      name: 'Vovida Software License v1.0',\n      licenseId: 'VSL-1.0',\n      seeAlso: ['https://opensource.org/licenses/VSL-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Vim.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Vim.json',\n      referenceNumber: '206',\n      name: 'Vim License',\n      licenseId: 'Vim',\n      seeAlso: ['http://vimdoc.sourceforge.net/htmldoc/uganda.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './W3C.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/W3C.json',\n      referenceNumber: '107',\n      name: 'W3C Software Notice and License (2002-12-31)',\n      licenseId: 'W3C',\n      seeAlso: [\n        'http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html',\n        'https://opensource.org/licenses/W3C'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './W3C-19980720.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/W3C-19980720.json',\n      referenceNumber: '266',\n      name: 'W3C Software Notice and License (1998-07-20)',\n      licenseId: 'W3C-19980720',\n      seeAlso: [\n        'http://www.w3.org/Consortium/Legal/copyright-software-19980720.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './W3C-20150513.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/W3C-20150513.json',\n      referenceNumber: '111',\n      name: 'W3C Software Notice and Document License (2015-05-13)',\n      licenseId: 'W3C-20150513',\n      seeAlso: [\n        'https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './WTFPL.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/WTFPL.json',\n      referenceNumber: '20',\n      name: 'Do What The F*ck You Want To Public License',\n      licenseId: 'WTFPL',\n      seeAlso: ['http://sam.zoy.org/wtfpl/COPYING'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Watcom-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Watcom-1.0.json',\n      referenceNumber: '141',\n      name: 'Sybase Open Watcom Public License 1.0',\n      licenseId: 'Watcom-1.0',\n      seeAlso: ['https://opensource.org/licenses/Watcom-1.0'],\n      isOsiApproved: true\n    },\n    {\n      reference: './Wsuipa.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Wsuipa.json',\n      referenceNumber: '255',\n      name: 'Wsuipa License',\n      licenseId: 'Wsuipa',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Wsuipa'],\n      isOsiApproved: false\n    },\n    {\n      reference: './X11.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/X11.json',\n      referenceNumber: '99',\n      name: 'X11 License',\n      licenseId: 'X11',\n      seeAlso: ['http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3'],\n      isOsiApproved: false\n    },\n    {\n      reference: './XFree86-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/XFree86-1.1.json',\n      referenceNumber: '155',\n      name: 'XFree86 License 1.1',\n      licenseId: 'XFree86-1.1',\n      seeAlso: ['http://www.xfree86.org/current/LICENSE4.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './XSkat.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/XSkat.json',\n      referenceNumber: '81',\n      name: 'XSkat License',\n      licenseId: 'XSkat',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/XSkat_License'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Xerox.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Xerox.json',\n      referenceNumber: '224',\n      name: 'Xerox License',\n      licenseId: 'Xerox',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Xerox'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Xnet.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Xnet.json',\n      referenceNumber: '313',\n      name: 'X.Net License',\n      licenseId: 'Xnet',\n      seeAlso: ['https://opensource.org/licenses/Xnet'],\n      isOsiApproved: true\n    },\n    {\n      reference: './YPL-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/YPL-1.0.json',\n      referenceNumber: '292',\n      name: 'Yahoo! Public License v1.0',\n      licenseId: 'YPL-1.0',\n      seeAlso: ['http://www.zimbra.com/license/yahoo_public_license_1.0.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './YPL-1.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/YPL-1.1.json',\n      referenceNumber: '40',\n      name: 'Yahoo! Public License v1.1',\n      licenseId: 'YPL-1.1',\n      seeAlso: ['http://www.zimbra.com/license/yahoo_public_license_1.1.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './ZPL-1.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/ZPL-1.1.json',\n      referenceNumber: '85',\n      name: 'Zope Public License 1.1',\n      licenseId: 'ZPL-1.1',\n      seeAlso: ['http://old.zope.org/Resources/License/ZPL-1.1'],\n      isOsiApproved: false\n    },\n    {\n      reference: './ZPL-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/ZPL-2.0.json',\n      referenceNumber: '112',\n      name: 'Zope Public License 2.0',\n      licenseId: 'ZPL-2.0',\n      seeAlso: [\n        'http://old.zope.org/Resources/License/ZPL-2.0',\n        'https://opensource.org/licenses/ZPL-2.0'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './ZPL-2.1.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/ZPL-2.1.json',\n      referenceNumber: '368',\n      name: 'Zope Public License 2.1',\n      licenseId: 'ZPL-2.1',\n      seeAlso: ['http://old.zope.org/Resources/ZPL/'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Zed.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Zed.json',\n      referenceNumber: '114',\n      name: 'Zed License',\n      licenseId: 'Zed',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Zed'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Zend-2.0.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Zend-2.0.json',\n      referenceNumber: '373',\n      name: 'Zend License v2.0',\n      licenseId: 'Zend-2.0',\n      seeAlso: [\n        'https://web.archive.org/web/20130517195954/http://www.zend.com/license/2_00.txt'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Zimbra-1.3.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Zimbra-1.3.json',\n      referenceNumber: '175',\n      name: 'Zimbra Public License v1.3',\n      licenseId: 'Zimbra-1.3',\n      seeAlso: [\n        'http://web.archive.org/web/20100302225219/http://www.zimbra.com/license/zimbra-public-license-1-3.html'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './Zimbra-1.4.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/Zimbra-1.4.json',\n      referenceNumber: '385',\n      name: 'Zimbra Public License v1.4',\n      licenseId: 'Zimbra-1.4',\n      seeAlso: ['http://www.zimbra.com/legal/zimbra-public-license-1-4'],\n      isOsiApproved: false\n    },\n    {\n      reference: './Zlib.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/Zlib.json',\n      referenceNumber: '45',\n      name: 'zlib License',\n      licenseId: 'Zlib',\n      seeAlso: [\n        'http://www.zlib.net/zlib_license.html',\n        'https://opensource.org/licenses/Zlib'\n      ],\n      isOsiApproved: true\n    },\n    {\n      reference: './blessing.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/blessing.json',\n      referenceNumber: '301',\n      name: 'SQLite Blessing',\n      licenseId: 'blessing',\n      seeAlso: [\n        'https://www.sqlite.org/src/artifact/e33a4df7e32d742a?ln=4-9',\n        'https://sqlite.org/src/artifact/df5091916dbb40e6'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './bzip2-1.0.5.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/bzip2-1.0.5.json',\n      referenceNumber: '186',\n      name: 'bzip2 and libbzip2 License v1.0.5',\n      licenseId: 'bzip2-1.0.5',\n      seeAlso: ['http://bzip.org/1.0.5/bzip2-manual-1.0.5.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './bzip2-1.0.6.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/bzip2-1.0.6.json',\n      referenceNumber: '69',\n      name: 'bzip2 and libbzip2 License v1.0.6',\n      licenseId: 'bzip2-1.0.6',\n      seeAlso: ['https://github.com/asimonov-im/bzip2/blob/master/LICENSE'],\n      isOsiApproved: false\n    },\n    {\n      reference: './copyleft-next-0.3.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/copyleft-next-0.3.0.json',\n      referenceNumber: '312',\n      name: 'copyleft-next 0.3.0',\n      licenseId: 'copyleft-next-0.3.0',\n      seeAlso: [\n        'https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.0'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './copyleft-next-0.3.1.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/copyleft-next-0.3.1.json',\n      referenceNumber: '378',\n      name: 'copyleft-next 0.3.1',\n      licenseId: 'copyleft-next-0.3.1',\n      seeAlso: [\n        'https://github.com/copyleft-next/copyleft-next/blob/master/Releases/copyleft-next-0.3.1'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './curl.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/curl.json',\n      referenceNumber: '314',\n      name: 'curl License',\n      licenseId: 'curl',\n      seeAlso: ['https://github.com/bagder/curl/blob/master/COPYING'],\n      isOsiApproved: false\n    },\n    {\n      reference: './diffmark.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/diffmark.json',\n      referenceNumber: '397',\n      name: 'diffmark license',\n      licenseId: 'diffmark',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/diffmark'],\n      isOsiApproved: false\n    },\n    {\n      reference: './dvipdfm.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/dvipdfm.json',\n      referenceNumber: '19',\n      name: 'dvipdfm License',\n      licenseId: 'dvipdfm',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/dvipdfm'],\n      isOsiApproved: false\n    },\n    {\n      reference: './eCos-2.0.html',\n      isDeprecatedLicenseId: true,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/eCos-2.0.json',\n      referenceNumber: '272',\n      name: 'eCos license version 2.0',\n      licenseId: 'eCos-2.0',\n      seeAlso: ['https://www.gnu.org/licenses/ecos-license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './eGenix.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/eGenix.json',\n      referenceNumber: '214',\n      name: 'eGenix.com Public License 1.1.0',\n      licenseId: 'eGenix',\n      seeAlso: [\n        'http://www.egenix.com/products/eGenix.com-Public-License-1.1.0.pdf',\n        'https://fedoraproject.org/wiki/Licensing/eGenix.com_Public_License_1.1.0'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './etalab-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/etalab-2.0.json',\n      referenceNumber: '259',\n      name: 'Etalab Open License 2.0',\n      licenseId: 'etalab-2.0',\n      seeAlso: [\n        'https://github.com/DISIC/politique-de-contribution-open-source/blob/master/LICENSE.pdf',\n        'https://raw.githubusercontent.com/DISIC/politique-de-contribution-open-source/master/LICENSE'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './gSOAP-1.3b.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/gSOAP-1.3b.json',\n      referenceNumber: '167',\n      name: 'gSOAP Public License v1.3b',\n      licenseId: 'gSOAP-1.3b',\n      seeAlso: ['http://www.cs.fsu.edu/~engelen/license.html'],\n      isOsiApproved: false\n    },\n    {\n      reference: './gnuplot.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/gnuplot.json',\n      referenceNumber: '383',\n      name: 'gnuplot License',\n      licenseId: 'gnuplot',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Gnuplot'],\n      isOsiApproved: false\n    },\n    {\n      reference: './iMatix.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/iMatix.json',\n      referenceNumber: '177',\n      name: 'iMatix Standard Function Library Agreement',\n      licenseId: 'iMatix',\n      seeAlso: ['http://legacy.imatix.com/html/sfl/sfl4.htm#license'],\n      isOsiApproved: false\n    },\n    {\n      reference: './libpng-2.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/libpng-2.0.json',\n      referenceNumber: '103',\n      name: 'PNG Reference Library version 2',\n      licenseId: 'libpng-2.0',\n      seeAlso: ['http://www.libpng.org/pub/png/src/libpng-LICENSE.txt'],\n      isOsiApproved: false\n    },\n    {\n      reference: './libselinux-1.0.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/libselinux-1.0.json',\n      referenceNumber: '18',\n      name: 'libselinux public domain notice',\n      licenseId: 'libselinux-1.0',\n      seeAlso: [\n        'https://github.com/SELinuxProject/selinux/blob/master/libselinux/LICENSE'\n      ],\n      isOsiApproved: false\n    },\n    {\n      reference: './libtiff.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/libtiff.json',\n      referenceNumber: '407',\n      name: 'libtiff License',\n      licenseId: 'libtiff',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/libtiff'],\n      isOsiApproved: false\n    },\n    {\n      reference: './mpich2.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/mpich2.json',\n      referenceNumber: '60',\n      name: 'mpich2 License',\n      licenseId: 'mpich2',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/MIT'],\n      isOsiApproved: false\n    },\n    {\n      reference: './psfrag.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/psfrag.json',\n      referenceNumber: '408',\n      name: 'psfrag License',\n      licenseId: 'psfrag',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/psfrag'],\n      isOsiApproved: false\n    },\n    {\n      reference: './psutils.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/psutils.json',\n      referenceNumber: '277',\n      name: 'psutils License',\n      licenseId: 'psutils',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/psutils'],\n      isOsiApproved: false\n    },\n    {\n      reference: './wxWindows.html',\n      isDeprecatedLicenseId: true,\n      detailsUrl: 'http://spdx.org/licenses/wxWindows.json',\n      referenceNumber: '244',\n      name: 'wxWindows Library License',\n      licenseId: 'wxWindows',\n      seeAlso: ['https://opensource.org/licenses/WXwindows'],\n      isOsiApproved: false\n    },\n    {\n      reference: './xinetd.html',\n      isDeprecatedLicenseId: false,\n      isFsfLibre: true,\n      detailsUrl: 'http://spdx.org/licenses/xinetd.json',\n      referenceNumber: '399',\n      name: 'xinetd License',\n      licenseId: 'xinetd',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/Xinetd_License'],\n      isOsiApproved: false\n    },\n    {\n      reference: './xpp.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/xpp.json',\n      referenceNumber: '96',\n      name: 'XPP License',\n      licenseId: 'xpp',\n      seeAlso: ['https://fedoraproject.org/wiki/Licensing/xpp'],\n      isOsiApproved: false\n    },\n    {\n      reference: './zlib-acknowledgement.html',\n      isDeprecatedLicenseId: false,\n      detailsUrl: 'http://spdx.org/licenses/zlib-acknowledgement.json',\n      referenceNumber: '246',\n      name: 'zlib/libpng License with Acknowledgement',\n      licenseId: 'zlib-acknowledgement',\n      seeAlso: [\n        'https://fedoraproject.org/wiki/Licensing/ZlibWithAcknowledgement'\n      ],\n      isOsiApproved: false\n    }\n  ]\n};\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ApplicationHeader />\\n\\n<div class=\\\"wrapper\\\">\\n  <div class=\\\"landing-header\\\" style={{html-safe (concat \\'background-image: url(\\' (cdn-url) \\'/images/404.png);\\')}}/>\\n\\n  <div class=\\\"section section-white\\\">\\n    <div class=\\\"row row-section\\\">\\n      <div class=\\\"container-fluid\\\">\\n        <div class=\\\"col-md-8 col-sm-offset-2\\\">\\n          <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n            The page was not found.\\n          </BsAlert>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/404.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ApplicationHeader @default={{true}} />\\n<div class=\\\"wrapper\\\">\\n  <div class=\\\"section section-white\\\">\\n    <div class=\\\"row row-section\\\">\\n      <div class=\\\"container-fluid\\\">\\n        <div class=\\\"col-md-6\\\">\\n         <h1 class=\\\"about-title\\\">About</h1>\\n          <p>\\n            Fabrica is DataCite\\'s web interface where you can create, find, connect and track all of your DOIs and metadata. Fabrica also includes all of the functionalities needed to manage repository accounts, prefixes and contacts.\\n          </p>\\n          <p>\\n            To access this service you need to sign in with one of the following accounts: Member, Consortium, Consortium Organization, Repository. More information about how to use Fabrica is available\\n            <a href={{get (links) \\\"FABRICA_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              here.\\n            </a>\\n          </p>\\n          <p>\\n            Fabrica complements the\\n            <a href={{get (links) \\\"API_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              REST\\n            </a>\\n            ,\\n            <a href={{get (links) \\\"MDS_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              MDS\\n            </a>\\n            ,\\n            <a href={{get (links) \\\"OAI_DOC_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              OAI-PMH\\n            </a>\\n            , and\\n            <a href={{get (links) \\\"GRAPHQL_TOOL_URL\\\" }} class=\\\"a11y-inline-link\\\">\\n              GraphQL\\n            </a>\\n            APIs.\\n          </p>\\n          <h2 class=\\\"about-title\\\">\\n            Version\\n          </h2>\\n          {{app-version versionOnly=true}}\\n          {{#if\\n            (not-eq (app-version versionOnly=true) (app-version shaOnly=true))\\n          }}\\n            -{{\\' \\'}}{{app-version shaOnly=true}}\\n          {{/if}}\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/about.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"ember-view\\\">\\n  <WhileLoading>\\n    <BsProgress as |pg|>\\n      <pg.bar @value={{random-number 90}} @type=\\\"info\\\" />\\n    </BsProgress>\\n  </WhileLoading>\\n\\n  <HeadLayout />\\n  <main id=\\\"main-content\\\">\\n    {{outlet}}\\n  </main>\\n\\n  <ApplicationFooter @model={{this.model}} />\\n</div>\\n\\n{{!-- For ember-bootstrap modals and tooltips --}}\\n <div id=\\\"ember-bootstrap-wormhole\\\"></div>\\n\\n {{!-- For ember-power-select dropdowns(v8) --}}\\n <BasicDropdownWormhole />\\n', { moduleName: 'bracco/templates/application.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ApplicationHeader @sign-in={{true}} />\\n<div class=\\\"wrapper\\\">\\n  <div class=\\\"register-background\\\" style={{html-safe (concat \\'background-image: url(\\' (cdn-url) \\'/images/fabrica/header.png);\\')}} >\\n    <div class=\\\"container\\\">\\n      <div class=\\\"row\\\" style=\\\"height:300px;vertical-align:middle;\\\">\\n        {{!-- <EmberSpinner @lines={{11}} @length={{16}} @radius={{27}} @width={{8}} @rotate={{10}} @speed=\\\"1.1\\\" @color=\\\"#ffffff\\\" /> --}}\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/authorize.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"write index\\\")}}\\n  <ApplicationHeader @default={{true}} />\\n\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n\\n    <div class=\\\"content\\\">\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Set Password</h3></div>\\n          \\n          <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\" this.model}} @submitOnEnter={{true}} as |form|>\\n            <form.element @controlType=\\\"password\\\" id=\\\"password-input\\\" class=\\\"form-group\\\" @property=\\\"passwordInput\\\" @label=\\\"New Password\\\" as |el|> <el.control id=\\\"password-input-field\\\" /><i class=\\\"bi bi-eye-slash\\\" id=\\\"togglePassword\\\" {{action \\'togglePassword\\'}}></i></form.element>\\n            <form.element @controlType=\\\"password\\\" id=\\\"confirm-password-input\\\" class=\\\"form-group\\\" @property=\\\"confirmPasswordInput\\\" @label=\\\"Confirm Password\\\" as |el|> <el.control id=\\\"confirm-password-input-field\\\" /><i class=\\\"bi bi-eye-slash\\\" id=\\\"toggleConfirmPassword\\\" {{action \\'toggleConfirmPassword\\'}}></i></form.element>\\n            <div class=\\\"col-md-9 col-md-offset-3\\\">\\n              <div class=\\\"btn-toolbar\\\">\\n                <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{v-get this.model \\'confirmPasswordInput\\' \\'isInvalid\\'}}>Set Password</button>\\n                <button class=\\\"btn btn-sm\\\" id=\\\"cancel\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\n              </div>\\n            </div>\\n          </BsForm>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/change.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 'bracco/templates/contacts.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\'read index\\')}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n    {{!-- {{#if (can \\\"read messages\\\" model)}} --}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\" style=\\\"margin-left: 10px; margin-right: 10px;\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n    {{!-- {{/if}} --}}\\n    <div class=\\\"col-md-3\\\">\\n      {{#if this.model.contacts.meta.roles}}\\n        <div class=\\\"panel facets add\\\">\\n          <div class=\\\"panel-body\\\">\\n            <h4>\\n              Role\\n              <span class=\\\"small\\\">\\n                <i class=\\\"fas fa-question-circle\\\"></i>\\n                <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\">\\n                  Filter contacts by their role.\\n                </BsTooltip>\\n              </span>\\n            </h4>\\n            <ul>\\n              {{#each this.model.contacts.meta.roles as |role|}}\\n                <li>\\n                  {{#if (eq this.model.contacts.query.role-name role.id)}}\\n                    <LinkTo @route=\\\"contacts\\\" @query={{hash role-name=null}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"contacts\\\"\\n                      @query={{hash role-name=role.id}}\\n                      id=\\\"role-name-{{role.id}}\\\"\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{role.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{role.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            </ul>\\n          </div>\\n        </div>\\n      {{/if}}\\n    </div>\\n    <div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n      <ModelSearch\\n        @model={{this.model.contacts}}\\n        @name=\\\"Contact\\\"\\n        @sortable={{true}}\\n        @link=\\\"contacts\\\"\\n      />\\n      {{#if (gt this.model.contacts.length 0)}}\\n        {{#each this.model.contacts as |contact|}}\\n          <div class=\\\"panel panel-transparent\\\" data-test-contact>\\n            <div class=\\\"panel-body\\\">\\n              <h3 class=\\\"work\\\">\\n                <LinkTo @route=\\\"contacts.show\\\" @model={{contact.id}}>\\n                  {{contact.displayName}}\\n                </LinkTo>\\n              </h3>\\n              <h5>\\n                {{if\\n                  (eq contact.provider.memberType \\'consortium_organization\\')\\n                  \\'Consortium Organization\\'\\n                  \\'Member\\'\\n                }}\\n              </h5>\\n              <LinkTo\\n                @route=\\\"providers.show.contacts\\\"\\n                @model={{contact.provider.id}}\\n              >\\n                {{contact.provider.name}}\\n              </LinkTo>\\n              <h5>\\n                Email\\n              </h5>\\n              <a href=\\\"mailto:{{contact.email}}\\\">\\n                {{contact.email}}\\n              </a>\\n              <h5>\\n                Roles\\n              </h5>\\n              {{#if (gt contact.roleName.length 0)}}\\n                {{contact.roleNameString}}\\n              {{else}}\\n                <span class=\\\"icon-warning\\\">\\n                  No roles found. Please assign roles in the <LinkTo\\n                  @route=\\\"providers.show.edit\\\"\\n                  @model={{this.model.provider.id}}\\n                  id=\\\"edit-provider\\\"\\n                >\\n                    {{if (eq this.model.provider.memberType \\'consortium_organization\\')\\n                \\'Consortium Organization\\'\\n                \\'Member\\'}} Settings\\n                  </LinkTo>.\\n                </span>\\n              {{/if}}\\n              <h5>\\n                Created\\n              </h5>\\n              {{format-time\\n                contact.created\\n                year=\\'numeric\\'\\n                month=\\'long\\'\\n                day=\\'numeric\\'\\n                hour=\\'numeric\\'\\n                minute=\\'numeric\\'\\n                second=\\'numeric\\'\\n                timeZone=\\'UTC\\'\\n                timeZoneName=\\'short\\'\\n                hour12=false\\n              }}\\n            </div>\\n          </div>\\n        {{/each}}\\n        <div class=\\\"text-center\\\">\\n          {{#if (gt this.model.contacts.meta.totalPages 1)}}\\n            <PageNumbers @model={{this.model.contacts}} @link=\\\"contacts\\\" />\\n          {{/if}}\\n        </div>\\n      {{else}}\\n        <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n          No contacts found.\\n        </BsAlert>\\n      {{/if}}\\n    </div>\\n  </div>\\n{{else}}\\n  <ApplicationHeader /><LandingPage />\\n{{/if}}', { moduleName: 'bracco/templates/contacts/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\'read contact\\' this.model provider=this.model.provider)}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\">\\n    {{#if (can \\'read provider\\' this.model.provider)}}\\n      <ol class=\\\"breadcrumb\\\">\\n        {{#if (can \\'read index\\')}}\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo @route=\\\"index\\\">\\n              DataCite\\n            </LinkTo>\\n          </li>\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo @route=\\\"providers\\\">\\n              Members\\n            </LinkTo>\\n          </li>\\n        {{/if}}\\n        {{#if\\n          (and\\n            (can \\'read provider\\' this.model.provider.consortium)\\n            (eq this.model.provider.memberType \\'consortium_organization\\')\\n          )\\n        }}\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo\\n              @route=\\\"providers.show.index\\\"\\n              @model={{this.model.provider.consortium.id}}\\n            >\\n              {{this.model.provider.consortium.name}}\\n            </LinkTo>\\n          </li>\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo\\n              @route=\\\"providers.show.organizations\\\"\\n              @model={{this.model.provider.consortium.id}}\\n            >\\n              Consortium Organizations\\n            </LinkTo>\\n          </li>\\n        {{/if}}\\n        <li class=\\\"breadcrumb-item\\\">\\n          <LinkTo @route=\\\"providers.show\\\" @model={{this.model.provider.id}}>\\n            {{this.model.provider.name}}\\n          </LinkTo>\\n        </li>\\n        <li class=\\\"breadcrumb-item\\\">\\n          <LinkTo @route=\\\"providers.show.contacts\\\" @model={{this.model.provider.id}}>\\n            Contacts\\n          </LinkTo>\\n        </li>\\n      </ol>\\n    {{/if}}\\n    <div id=\\\"show\\\">\\n      <h2 class=\\\"work\\\">\\n        {{this.model.displayName}}\\n      </h2>\\n      {{outlet}}\\n    </div>\\n  </div>\\n{{else}}\\n  <ApplicationHeader /><LandingPage />\\n{{/if}}', { moduleName: 'bracco/templates/contacts/show.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <BsForm\\n        @formLayout=\\\"vertical\\\"\\n        @model={{this.model}}\\n        @onSubmit={{action \\'submitAction\\'}}\\n        @submitOnEnter={{true}} as |form|\\n      >\\n        <div class=\\\"form-group\\\">\\n          <label class=\\\"control-label\\\">\\n            Are you sure you want to delete this contact? This action cannot be undone.\\n          </label>\\n          <form.element\\n            @controlType=\\\"text\\\"\\n            id=\\\"confirm-delete\\\"\\n            @property=\\\"confirmDelete\\\"\\n            @showValidationOn=\\\"input\\\"\\n            @helpText=\\\"Please type \\'Delete\\' to confirm.\\\" as |el|\\n          >\\n            <el.control id=\\\"confirm-delete-field\\\" autofocus={{true}} />\\n          </form.element>\\n        </div>\\n        <div class=\\\"pseudo-footer\\\">\\n          <div class=\\\"btn-toolbar pull-right\\\">\\n            <button id=\\\"cancel\\\" class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\'cancelAction\\'}}>\\n              Cancel\\n            </button>\\n            <button\\n              disabled={{v-get this.model \\'confirmDelete\\' \\'isInvalid\\'}}\\n              id=\\\"delete\\\"\\n              class=\\\"btn btn-sm btn-fill\\\" type=\\\"button\\\" {{action \\'submitAction\\'}}\\n            >\\n              Delete\\n            </button>\\n          </div>\\n          <div class=\\\"clearfix\\\"></div>\\n        </div>\\n      </BsForm>\\n    </div>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/contacts/show/delete.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\" id=\\\"contact-member\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <h3 class=\\\"edit\\\">\\n        Update Contact\\n      </h3>\\n      {{#each this.flashMessages.queue as |flash|}}\\n        <FlashMessage @flash={{flash}} />\\n      {{/each}}\\n    </div>\\n    <BsForm\\n      @formLayout=\\\"horizontal\\\"\\n      class=\\\"form-horizontal\\\"\\n      @horizontalLabelGridClass=\\\"col-md-3\\\"\\n      @model={{this.model}}\\n      @onSubmit={{action \\'submitAction\\' this.model}}\\n      @submitOnEnter={{true}} as |form|\\n    >\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"givenName\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Given Name\\\"\\n        @property=\\\"givenName\\\" as |el|\\n      >\\n        <el.control id=\\\"givenName-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"familyName\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Family Name\\\"\\n        @property=\\\"familyName\\\"as |el|\\n      >\\n        <el.control id=\\\"familyName-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"email\\\"\\n        id=\\\"email\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Email\\\"\\n        @property=\\\"email\\\"\\n        @helpText=\\\"Please enter a valid email address.\\\" as |el|\\n      >\\n        <el.control id=\\\"email-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"roles\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Roles\\\"\\n        @property=\\\"roleNameString\\\"\\n        @helpText=\\\"Please assign roles in the\\n          {{if\\n            (eq this.model.provider.memberType \\'consortium_organization\\')\\n            \\'Consortium Organization\\'\\n            \\'Member\\'\\n          }}\\n           Settings.\\\"\\n        readonly as |el|\\n      >\\n        <el.control id=\\\"roles-field\\\" />\\n      </form.element>\\n      <div class=\\\"col-md-offset-3\\\">\\n        <BsAlert @dismissible={{false}} class=\\\"opt-in\\\" @type=\\\"warning\\\">\\n          The contact may receive notifications about administration, webinars, product testing, \\n          or news that will impact the use of DataCite services and/or membership. Individuals may remove \\n          themselves from mailings by following the unsubscribe link provided in every DataCite email. \\n          For information about our privacy practices and commitment to protecting your privacy, please \\n          review our\\n          <a\\n            target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"PRIVACY_POLICY_URL\\\" }}\\n          >\\n            Privacy Policy \\n          </a>\\n          .\\n        </BsAlert>\\n      </div>\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#if (is-empty (contact-form-errors this.model))}}\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"update-contact\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{false}}\\n          >\\n            Update Contact\\n          </button>\\n        {{else}}\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n            To save this contact, first resolve the errors with these fields:\\n            {{contact-form-errors this.model}}\\n            .\\n          </BsAlert>\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"update-contact\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{true}}\\n          >\\n            Update Contact\\n          </button>\\n        {{/if}}\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\'cancelAction\\' this.model}}>\\n          Cancel\\n        </button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/contacts/show/edit.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"row\\\">\\n  <div class=\\\"col-md-3\\\">\\n    {{#if (can \\'update contact\\' this.model)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"btn-toolbar\\\">\\n            <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n              <LinkTo\\n                @route=\\\"contacts.show.edit\\\"\\n                @model={{this.model.id}}\\n                class=\\\"btn btn-warning\\\"\\n                id=\\\"edit-contact\\\"\\n              >\\n                <i class=\\\"fas fa-pencil-alt\\\"></i>\\n                Update Contact\\n              </LinkTo>\\n              {{#if (can \\'delete contact\\' this.model)}}\\n                <LinkTo\\n                  @route=\\\"contacts.show.delete\\\"\\n                  @model={{this.model.id}}\\n                  class=\\\"btn btn-warning\\\"\\n                  id=\\\"delete-contact\\\"\\n                >\\n                  <i class=\\\"fas fa-trash\\\"></i>\\n                  Delete Contact\\n                </LinkTo>\\n              {{/if}}\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    {{/if}}\\n    <RepositorySidebar @model={{this.model}} />\\n  </div>\\n  <div class=\\\"col-md-9\\\">\\n    <h3 class=\\\"member-results\\\">\\n      Contact Information\\n    </h3>\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <h5>\\n          Email\\n        </h5>\\n        <a href=\\\"mailto:{{this.model.email}}\\\">\\n          {{this.model.email}}\\n        </a>\\n        <h5>\\n          Roles\\n        </h5>\\n        {{#if (gt this.model.roleName.length 0)}}\\n          {{this.model.roleNameString}}\\n        {{else}}\\n          <span class=\\\"icon-warning\\\">\\n            No roles found. Please assign roles in the <LinkTo\\n              @route=\\\"providers.show.edit\\\"\\n              @model={{this.model.provider.id}}\\n              id=\\\"edit-provider\\\"\\n            >\\n              {{if (eq this.model.provider.memberType \\'consortium_organization\\')\\n          \\'Consortium Organization\\'\\n          \\'Member\\'}} Settings\\n            </LinkTo>.\\n          </span>\\n        {{/if}}\\n      </div>\\n    </div>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/contacts/show/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}\\n', { moduleName: 'bracco/templates/dois.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\'read index\\')}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n    {{!-- {{#if (can \\\"read messages\\\" model)}} --}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\" style=\\\"margin-left: 10px; margin-right: 10px;\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n    {{!-- {{/if}} --}}\\n    {{#if this.model}}\\n      <DoiList @model={{this.model}} @link=\\\"dois\\\" @searchable={{true}} />\\n    {{else}}\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n          An error occured fetching DOIs. Please contact DataCite Support.\\n        </BsAlert>\\n      </div>\\n    {{/if}}\\n  </div>\\n{{else}}\\n  <ApplicationHeader /><LandingPage />\\n{{/if}}', { moduleName: 'bracco/templates/dois/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ApplicationHeader @default={{true}} />\\n\\n<div class=\\\"container-fluid\\\">\\n  <ol class=\\\"breadcrumb\\\">\\n    {{#if (can \\\"read index\\\")}}\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"index\\\">DataCite</LinkTo></li>\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers\\\">Members</LinkTo></li>\\n      {{#if (eq this.model.repository.provider.memberType \\\"consortium_organization\\\")}}\\n        <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers.show.index\\\" @model={{this.model.repository.provider.consortium.id}}>{{this.model.repository.provider.consortium.name}}</LinkTo></li>\\n        <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers.show.organizations\\\" @model={{this.model.repository.provider.consortium.id}}>Consortium Organizations</LinkTo></li>\\n      {{/if}}\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers.show\\\" @model={{this.model.repository.provider.id}}>{{this.model.repository.provider.name}}</LinkTo></li>\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers.show.repositories\\\" @model={{this.model.repository.provider.id}}>Repositories</LinkTo></li>\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"repositories.show\\\" @model={{this.model.repository.id}}>{{this.model.repository.name}}</LinkTo></li>\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"repositories.show.dois\\\" @model={{this.model.repository.id}}>DOIs</LinkTo></li>\\n    {{else if (can \\\"read provider\\\" this.model.repository.provider)}}\\n      {{#if (eq this.model.repository.provider.memberType \\\"consortium_organization\\\")}}\\n        <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers.show.index\\\" @model={{this.model.repository.provider.consortium.id}}>{{this.model.repository.provider.consortium.name}}</LinkTo></li>\\n        <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers.show.organizations\\\" @model={{this.model.repository.provider.consortium.id}}>Consortium Organizations</LinkTo></li>\\n      {{/if}}\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers.show\\\" @model={{this.model.repository.provider.id}}>{{this.model.repository.provider.name}}</LinkTo></li>\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"providers.show.repositories\\\" @model={{this.model.repository.provider.id}}>Repositories</LinkTo></li>\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"repositories.show\\\" @model={{this.model.repository.id}}>{{this.model.repository.name}}</LinkTo></li>\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"repositories.show.dois\\\" @model={{this.model.repository.id}}>DOIs</LinkTo></li> \\n    {{else if (can \\\"read repository\\\" this.model.repository)}}\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"repositories.show\\\" @model={{this.model.repository.id}}>{{this.model.repository.name}}</LinkTo></li>\\n      <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"repositories.show.dois\\\" @model={{this.model.repository.id}}>DOIs</LinkTo></li>\\n    {{/if}}\\n  </ol>\\n  \\n  <div id=\\\"show\\\">\\n    <h2 class=\\\"work\\\">{{this.model.id}}</h2>\\n  </div>\\n\\n  {{outlet}}\\n</div>\\n', { moduleName: 'bracco/templates/dois/show.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <BsForm @formLayout=\\\"vertical\\\" @model={{this.model}} @onSubmit={{action \\\"destroyAction\\\"}} @submitOnEnter={{true}} as |form|>\\n        <div class=\\\"form-group\\\">\\n          <label class=\\\"control-label\\\">Are you sure you want to delete the DOI {{this.model.doi}}? This action cannot be undone.</label>\\n          <form.element @controlType=\\\"text\\\" @property=\\\"confirmDoi\\\" id=\\\"confirm-doi\\\" @helpText=\\\"Please add the DOI to confirm.\\\" @showValidationOn=\\\"input\\\" as |el|>\\n            <el.control id=\\\"confirm-doi-field\\\" autofocus={{true}} />\\n          </form.element>\\n        </div>\\n\\n        <div class=\\\"pseudo-footer\\\">\\n          <div class=\\\"btn-toolbar pull-right\\\">\\n            <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n            <button disabled={{v-get this.model \\'confirmDoi\\' \\'isInvalid\\'}} id=\\\"delete-doi\\\" class=\\\"btn btn-sm btn-fill\\\" type=\\\"button\\\" {{action \\\"destroyAction\\\"}}>Delete</button>\\n          </div>\\n          <div class=\\\"clearfix\\\"/>\\n        </div>\\n      </BsForm>\\n    </div>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/dois/show/delete.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\" id=\\\"doi-edit-form\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3 form-help-header\\\">\\n      {{#each this.flashMessages.queue as |flash|}}\\n        <FlashMessage @flash={{flash}} />\\n      {{/each}}\\n\\n      <h3 class=\\\"help-header\\\">Update DOI (Form)</h3>\\n      <div class=\\\"label-vertical\\\">\\n        More information about DOI registration via form can be found on our <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/fabrica-create-doi-form\\\">Support\\n          Website</a>. Required properties are marked with a red asterisk.\\n      </div>\\n    </div>\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\" this.model}} as |form|>\\n      <h3 class=\\\"member-results\\\">Required Properties</h3>\\n\\n      <div class=\\\"form-group required-nested-label\\\">\\n        <label class=\\\"control-label col-md-3\\\">DOI</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The globally unique string that identifies the resource and can\\'t be changed.</div>\\n          <form.element @controlType=\\\"text\\\" id=\\\"doi\\\" @property=\\\"doi\\\" as |el|>\\n            <el.control disabled={{true}} />\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiState @class=\\\"required-nested-label\\\" @model={{this.model}} @form={{form}} />\\n\\n      <div class=\\\"form-group required-nested-label {{if (v-get this.model \\'url\\' \\'isInvalid\\') \\'has-error\\' \\'has-feedback\\'}}\\\" data-test-doi-url>\\n        <label class=\\\"control-label col-md-3\\\">URL</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The location of the landing page with more information about the resource.</div>\\n          <form.element id=\\\"url\\\" class=\\\"form-group\\\" @controlType=\\\"text\\\" @property=\\\"url\\\" as |el| >\\n            <el.control placeholder=\\\"URL\\\" />\\n            <div class=\\\"{{el.validation}} help-block\\\">Should be a https URL — within the allowed domain(s) of your repository if domain restrictions are enabled in the repository settings. Http and ftp are also supported. For example http://example.org</div>\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiCreators @model={{this.model}} @form={{form}} />\\n      <DoiTitles @model={{this.model}} @form={{form}} />\\n      <DoiPublisher @model={{this.model}} @form={{form}} @fragment={{this.model.publisher}} />\\n\\n      <div class=\\\"form-group required-nested-label {{if (v-get this.model \\'publicationYear\\' \\'isInvalid\\') \\'has-error\\' \\'has-feedback\\'}}\\\">\\n        <label class=\\\"control-label col-md-3\\\">Publication Year</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The year when the resource was or will be made publicly available.</div>\\n          <form.element id=\\\"publication-year\\\" class=\\\"form-group\\\" @controlType=\\\"text\\\" @property=\\\"publicationYear\\\" as |el| >\\n            <el.control />\\n            <div class=\\\"{{el.validation}} help-block\\\">Must be a year between 1000 and {{current-year this.model.maxMintFutureOffset}}.</div>\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiTypes @class=\\\"required-nested-label\\\" @model={{this.model}} @form={{form}} />\\n\\n      <h3 class=\\\"member-results\\\">Recommended Properties</h3>\\n\\n      <DoiSubjects @model={{this.model}} @form={{form}} />\\n      <DoiContributors @model={{this.model}} @form={{form}} />\\n      <DoiDates @model={{this.model}} @form={{form}} />\\n      <DoiRelatedIdentifiers @model={{this.model}} @form={{form}} />\\n\\n      <DoiDescriptions @model={{this.model}} @form={{form}} />\\n\\n      <DoiGeoLocations @model={{this.model}} @form={{form}} />\\n\\n      <h3 class=\\\"member-results\\\">Optional Properties</h3>\\n\\n      <DoiLanguage @model={{this.model}} @form={{form}} />\\n      <DoiAlternateIdentifiers @model={{this.model}} @form={{form}} />\\n      <DoiRightsList @model={{this.model}} @form={{form}} @spdx={{this.spdx}} />\\n      <DoiSizes @model={{this.model}} @form={{form}} />\\n      <DoiFormats @model={{this.model}} @form={{form}} />\\n\\n      <div class=\\\"form-group\\\">\\n        <label class=\\\"control-label col-md-3\\\">Version</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The version number of the resource.</div>\\n          <form.element id=\\\"version\\\" @controlType=\\\"text\\\" @property=\\\"version\\\" data-test-version as |el| >\\n            <el.control placeholder=\\\"Version\\\" id=\\\"version-field\\\" />\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiFundingReferences @model={{this.model}} @form={{form}} />\\n\\n      <DoiRelatedItems @model={{this.model}} @form={{form}} />\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#if (is-empty (doi-form-errors this.model))}}\\n          <button type=\\\"submit\\\" id=\\\"doi-update\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{false}}>Update DOI</button>\\n        {{else}}\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n            To save this DOI, first resolve the errors with these properties: {{doi-form-errors this.model}}.\\n          </BsAlert>\\n\\n          <button type=\\\"submit\\\" id=\\\"doi-update\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{true}}>Update DOI</button>\\n        {{/if}}\\n\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/dois/show/edit.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"row\\\">\\n  <div class=\\\"col-md-3\\\">\\n    {{#if this.model}}\\n      <div class=\\\"panel facets add\\\">\\n        <div class=\\\"panel-body\\\">\\n          {{#if this.model.repository.isActive}}\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n                {{#if (can \\'edit doi\\' this.model)}}\\n                  <LinkTo\\n                    @route=\\\"dois.show.edit\\\"\\n                    @model={{this.model.id}}\\n                    class=\\\"btn btn-warning\\\"\\n                    id=\\\"edit-doi\\\"\\n                  >\\n                    <i class=\\\"fab fa-wpforms\\\" aria-hidden=\\\"true\\\"></i>\\n                    Update DOI (Form)\\n                  </LinkTo>\\n                {{/if}}\\n                {{#if (can \\'modify doi\\' this.model)}}\\n                  <LinkTo\\n                    @route=\\\"dois.show.modify\\\"\\n                    @model={{this.model.id}}\\n                    class=\\\"btn btn-warning\\\"\\n                    id=\\\"modify-doi\\\"\\n                  >\\n                    <i class=\\\"fas fa-upload\\\" aria-hidden=\\\"true\\\"></i>\\n                    Update DOI (File Upload)\\n                  </LinkTo>\\n                {{/if}}\\n                {{#if (can \\'transfer doi\\' this.model)}}\\n                  <LinkTo\\n                    @route=\\\"dois.show.transfer\\\"\\n                    @model={{this.model.id}}\\n                    class=\\\"btn btn-warning\\\"\\n                    id=\\\"transfer-doi\\\"\\n                  >\\n                    <i class=\\\"fas fa-arrow-circle-right\\\" aria-hidden=\\\"true\\\"></i>\\n                    Transfer DOI\\n                  </LinkTo>\\n                {{/if}}\\n                {{#if (and (can \\'delete doi\\' this.model) this.model.isDraft)}}\\n                  <LinkTo\\n                    @route=\\\"dois.show.delete\\\"\\n                    @model={{this.model.id}}\\n                    class=\\\"btn btn-warning\\\"\\n                    id=\\\"delete-doi\\\"\\n                  >\\n                    <i class=\\\"fas fa-trash\\\" aria-hidden=\\\"true\\\"></i>\\n                    Delete DOI\\n                  </LinkTo>\\n                {{/if}}\\n              </div>\\n            </div>\\n          {{/if}}\\n        </div>\\n      </div>\\n      <RepositorySidebar @model={{this.model}} />\\n    {{/if}}\\n  </div>\\n  <div class=\\\"col-md-9\\\">\\n    {{#if this.model}}\\n      {{#if this.model.url}}\\n        <h3 class=\\\"member-results\\\">\\n          URL\\n        </h3>\\n        <div class=\\\"panel panel-transparent url\\\">\\n          <div class=\\\"panel-body\\\">\\n            <a href=\\\"{{this.model.url}}\\\">\\n              {{this.model.url}}\\n            </a>\\n          </div>\\n        </div>\\n      {{/if}}\\n      <DoiMetadata @model={{this.model}} />\\n      {{#if this.model.showCitation}}\\n        <DoiCitation @model={{this.model}} />\\n      {{/if}}\\n      {{#if (and this.model.landingPage.checked (can \\'viewHealth doi\\' this.model))}}\\n        <DoiHealth @model={{this.model}} />\\n      {{/if}}\\n    {{else}}\\n      <div class=\\\"col-md-9\\\">\\n        <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n          An error occured fetching the DOI metadata. Please contact DataCite Support.\\n        </BsAlert>\\n      </div>\\n    {{/if}}\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/dois/show/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\" id=\\\"doi-modify-form-file-upload\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3 form-help-header\\\">\\n      <h3 class=\\\"help-header\\\">Update DOI (File Upload)</h3>\\n      <div class=\\\"label-vertical\\\">\\n        More information about DOI registration via file upload can be found on our <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/fabrica-create-doi-form\\\">Support Website</a>.\\n      </div>\\n    </div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\" this.model}} as |form|>\\n      <div class=\\\"form-group required-nested-label\\\">\\n        <label class=\\\"control-label col-md-3\\\">DOI</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The globally unique string that identifies the resource and can\\'t be changed.</div>\\n          <form.element @controlType=\\\"text\\\" id=\\\"doi\\\" @property=\\\"doi\\\" as |el| >\\n            <el.control disabled={{true}} />\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiState @class=\\\"required-nested-label\\\" @model={{this.model}} @form={{form}} />\\n\\n      <div class=\\\"form-group required-nested-label {{if (v-get this.model \\'url\\' \\'isInvalid\\') \\'has-error\\' \\'has-feedback\\'}}\\\" data-test-doi-url>\\n        <label class=\\\"control-label col-md-3\\\">URL</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The location of the landing page with more information about the resource.</div>\\n          <form.element id=\\\"url\\\" class=\\\"form-group\\\" @controlType=\\\"text\\\" @property=\\\"url\\\" @helpText=\\\"Should be a https URL — within the allowed domain(s) of your repository if domain restrictions are enabled in the repository settings. Http and ftp are also supported. For example http://example.org\\\"  as |el| >\\n            <el.control id=\\\"url-field\\\" placeholder=\\\"URL\\\" />\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiUpload @model={{this.model}} @form={{form}} data-test-doi-metadata />\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#if (is-empty (doi-form-errors this.model))}}\\n          <button type=\\\"submit\\\" id=\\\"doi-modify\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{false}}>Update DOI</button>\\n        {{else}}\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n            To save this DOI, first resolve the errors with these properties: {{doi-form-errors this.model}}.\\n          </BsAlert>\\n\\n          <button type=\\\"submit\\\" id=\\\"doi-modify\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{true}}>Update DOI</button>          \\n        {{/if}}\\n\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/dois/show/modify.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<DoiTransfer @model={{this.model}} />', { moduleName: 'bracco/templates/dois/show/transfer.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"write index\\\")}}\\n  <ApplicationHeader @default={{true}} />\\n\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n\\n    <div class=\\\"content\\\" id=\\\"update-account-form\\\">\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"col-md-offset-3 form-help-header\\\"><h3 class=\\\"edit\\\">Update Account</h3></div>\\n\\n          <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\" this.model}} as |form|>\\n            <form.element @controlType=\\\"text\\\" id=\\\"member-id\\\" class=\\\"form-group\\\" @label=\\\"Member ID\\\" @property=\\\"symbol\\\" @helpText=\\\"The Member ID is the unique identifier for each member and can\\'t be changed.\\\" as |el|> <el.control disabled={{true}} required={{true}} id=\\\"member-id-field\\\" /> </form.element>\\n            \\n            <form.element @controlType=\\\"power-select\\\" id=\\\"ror-id\\\" class=\\\"form-group\\\" @label=\\\"Organization identifier (optional)\\\" @property=\\\"rorId\\\" @optionLabelPath=\\\"name\\\" @options={{this.organizations}} @destination={{this.rorId}} @helpText=\\\"Organization identifiers are provided by the Research Organization Registry (ROR).\\\" as |el|>\\n              <el.control @onChange={{action \\\"selectRor\\\"}} @search={{action \\\"searchRor\\\"}} @placeholder=\\\"Select Organization\\\" @searchPlaceholder=\\\"Type to search...\\\" @searchEnabled={{true}} @allowClear={{true}} id=\\\"ror-id-field\\\" as |item|>\\n                {{if item.name item.name this.model.rorId}}\\n              </el.control>\\n            </form.element>\\n\\n            <form.element @controlType=\\\"text\\\" id=\\\"system-email\\\" class=\\\"form-group\\\" @label=\\\"System Email\\\" @property=\\\"systemEmail\\\" @helpText=\\\"This is the email used for sending password reset requests and similar system notifications.\\\" as |el|> <el.control id=\\\"system-email-field\\\" /> </form.element>\\n            <form.element @controlType=\\\"text\\\" id=\\\"website\\\" class=\\\"form-group\\\" @label=\\\"Website\\\" @property=\\\"website\\\" @helpText=\\\"Website of the member.\\\" as |el|> <el.control id=\\\"website-field\\\" /> </form.element>\\n            <form.element @controlType=\\\"textarea\\\" id=\\\"description\\\" class=\\\"form-group\\\" @label=\\\"Description (optional)\\\" @property=\\\"description\\\" rows=\\\"10\\\" @helpText=\\\"Description of the provider. Please use markdown for formatting.\\\" as |el|>  <el.control id=\\\"description-field\\\" /> </form.element>\\n   \\n            <form.element @controlType=\\\"power-select\\\" id=\\\"country\\\" class=\\\"form-group\\\" @label=\\\"Country (optional)\\\" @property=\\\"country\\\" @optionLabelPath=\\\"name\\\" @options={{this.countries}} @destination={{this.country}} @helpText=\\\"Country where the member is located.\\\" as |el|>\\n              <el.control @onChange={{action \\\"selectCountryAction\\\"}} @search={{action \\\"searchCountryAction\\\"}} @searchField=\\\"name\\\" @placeholder=\\\"Select Country\\\" @searchPlaceholder=\\\"Type to search...\\\" @searchEnabled={{true}} @allowClear={{true}} id=\\\"country-field\\\" as |item|>\\n                {{item.name}}\\n              </el.control>\\n            </form.element>\\n\\n            <div class=\\\"col-md-9 col-md-offset-3\\\">\\n              {{#if (is-empty (provider-form-errors this.model))}}\\n                <button type=\\\"submit\\\" id=\\\"update-provider\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{false}}>Update Account</button>\\n              {{else}}\\n                <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n                  To save this member, first resolve the errors with these fields: {{provider-form-errors this.model}}.\\n                </BsAlert>\\n\\n                <button type=\\\"submit\\\" id=\\\"update-provider\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{true}}>Update Account</button>          \\n              {{/if}}\\n\\n              <button class=\\\"btn btn-sm\\\" id=\\\"cancel\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button> \\n            </div>\\n          </BsForm>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/edit.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<meta property=\\\"og:site_name\\\" content=\\\"{{this.model.siteName}}\\\"/>\\n{{#if this.model.title}}\\n  <meta property=\\\"og:title\\\" content=\\\"{{this.model.title}}\\\" />\\n{{/if}}\\n{{#if this.model.description}}\\n  <meta property=\\\"og:description\\\" content=\\\"{{this.model.description}}\\\" />\\n{{/if}}\\n{{#if this.model.image}}\\n  <meta property=\\\"og:image\\\" content=\\\"{{this.model.image}}\\\" />\\n{{/if}}\\n{{#if this.model.schemaOrg}}\\n  <script type=\\\"application/ld+json\\\">\\n\\n  </script>\\n{{/if}}\\n', { moduleName: 'bracco/templates/head.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"read index\\\")}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-3\\\">\\n      </div>\\n      <div class=\\\"col-md-9\\\">\\n        <IndexInfo @model={{this.model}} />\\n      </div>\\n    </div>\\n  </div>  \\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ApplicationHeader @sign-in={{true}} />\\n<div class=\\\"wrapper\\\">\\n  <div\\n    class=\\\"register-background\\\"\\n    style={{html-safe (concat \\'background-image: url(\\' (cdn-url) \\'/images/fabrica/header.png);\\')}}\\n  >\\n    <div class=\\\"container\\\">\\n      <div class=\\\"row\\\">\\n        <div\\n          class=\\\"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1\\\"\\n        >\\n          <div class=\\\"register-card\\\">\\n            <h3 class=\\\"title\\\">\\n              Set Password\\n            </h3>\\n            <BsForm\\n              @formLayout=\\\"vertical\\\"\\n              @model={{this.model}}\\n              @onSubmit={{action \\'doSubmit\\' this.model}}\\n              @submitOnEnter={{true}} as |form|\\n            >\\n              <form.element\\n                @controlType=\\\"text\\\"\\n                @property=\\\"symbol\\\"\\n                @label=\\\"Account ID\\\" as |el|\\n              >\\n                <el.control @disabled={{true}} />\\n              </form.element>\\n              <form.element\\n                @controlType=\\\"hidden\\\"\\n                @property=\\\"confirmSymbol\\\"\\n              />\\n              <form.element\\n                @controlType=\\\"password\\\"\\n                id=\\\"password-input\\\" \\n                @property=\\\"passwordInput\\\"\\n                @label=\\\"New Password\\\" as |el|\\n              >\\n                <div class=\\\"password-container-fp\\\">\\n                  <el.control id=\\\"password-input-field\\\" placeholder=\\\"Password\\\" />\\n                  <i class=\\\"bi bi-eye-slash\\\" id=\\\"togglePassword\\\" {{action \\'togglePassword\\'}}></i>\\n                </div>\\n              </form.element>\\n              <form.element\\n                @controlType=\\\"password\\\"\\n                id=\\\"confirm-password-input\\\" \\n                @property=\\\"confirmPasswordInput\\\"\\n                @label=\\\"Confirm Password\\\" as |el|\\n              >\\n              <div class=\\\"password-container-fp\\\">\\n                <el.control id=\\\"confirm-password-input-field\\\" placeholder=\\\"Confirm Password\\\" />\\n                <i class=\\\"bi bi-eye-slash\\\" id=\\\"toggleConfirmPassword\\\" {{action \\'toggleConfirmPassword\\'}}></i>\\n             </div>\\n              </form.element>\\n              <div class=\\\"pseudo-footer\\\">\\n                <div class=\\\"btn-toolbar pull-right\\\">\\n                  <button class=\\\"btn btn-sm btn-cancel\\\" type=\\\"button\\\" {{action \\'cancel\\'}}>\\n                    Cancel\\n                  </button>\\n                  <button type=\\\"submit\\\" {{action \\'doSubmit\\' this.model}} class=\\\"btn btn-sm btn-fill\\\">\\n                    Submit\\n                  </button>\\n                </div>\\n                <div class=\\\"clearfix\\\"></div>\\n              </div>\\n            </BsForm>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/password.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}\\n', { moduleName: 'bracco/templates/prefixes.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\'read index\\')}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n    {{!-- {{#if (can \\\"read messages\\\" model)}} --}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\" style=\\\"margin-left: 10px; margin-right: 10px;\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n    {{!-- {{/if}} --}}\\n    <div class=\\\"col-md-3\\\">\\n      {{#if (can \\'write prefix\\')}}\\n        <div class=\\\"panel facets\\\">\\n          <div class=\\\"panel-body\\\">\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"btn-group btn-group-sm\\\">\\n                <LinkTo\\n                  @route=\\\"prefixes.new\\\"\\n                  class=\\\"btn btn-warning\\\"\\n                  id=\\\"add-prefixes\\\"\\n                >\\n                  <i class=\\\"fas fa-link\\\"></i>\\n                  Add Prefixes\\n                </LinkTo>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{else}}\\n        <div class=\\\"panel panel-transparent\\\">\\n          <div class=\\\"panel-body\\\">\\n            <div class=\\\"edit\\\"></div>\\n          </div>\\n        </div>\\n      {{/if}}\\n      {{#if this.model.meta.states}}\\n        <div class=\\\"panel facets add\\\">\\n          <div class=\\\"panel-body\\\">\\n            <h4>\\n              State\\n              <span class=\\\"small\\\">\\n                <i class=\\\"fas fa-question-circle\\\"></i>\\n                <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\">\\n                  Filter prefixes by whether they have been assigned to a provider and/or repository.\\n                </BsTooltip>\\n              </span>\\n            </h4>\\n            <ul>\\n              {{#each this.model.meta.states as |state|}}\\n                <li>\\n                  {{#if this.model.query.state}}\\n                    <LinkTo @route=\\\"prefixes\\\" @query={{hash state=null}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      id=\\\"prefix-{{state.id}}\\\"\\n                      @route=\\\"prefixes\\\"\\n                      @query={{hash state=state.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{state.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{state.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            </ul>\\n          </div>\\n        </div>\\n      {{/if}}\\n      {{#if this.model.meta.years}}\\n        <div class=\\\"panel facets add\\\">\\n          <div class=\\\"panel-body\\\">\\n            <h4>\\n              Year created\\n            </h4>\\n            <ul>\\n              {{#each this.model.meta.years as |year|}}\\n                <li>\\n                  {{#if this.model.query.year}}\\n                    <LinkTo @route=\\\"prefixes\\\" @query={{hash year=null}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo @route=\\\"prefixes\\\" @query={{hash year=year.id}}>\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{year.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{year.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            </ul>\\n          </div>\\n        </div>\\n      {{/if}}\\n      {{#if this.model.meta.providers}}\\n        <div class=\\\"panel facets\\\">\\n          <div class=\\\"panel-body\\\">\\n            <h4>\\n              Member\\n            </h4>\\n            <ul>\\n              {{#each this.model.meta.providers as |provider|}}\\n                <li>\\n                  {{#if this.model.query.provider-id}}\\n                    <LinkTo @route=\\\"prefixes\\\" @query={{hash provider-id=null}}>\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"prefixes\\\"\\n                      @query={{hash provider-id=provider.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{provider.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{provider.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            </ul>\\n          </div>\\n        </div>\\n      {{/if}}\\n    </div>\\n    <div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n      <ModelSearch\\n        @model={{this.model}}\\n        @name=\\\"Prefix\\\"\\n        @sortable={{true}}\\n        @link=\\\"prefixes\\\"\\n      />\\n      {{#if this.model}}\\n        {{#each this.model as |prefix|}}\\n          <div class=\\\"panel panel-transparent\\\" data-test-prefix>\\n            <div class=\\\"panel-body\\\">\\n              <h3 class=\\\"member\\\">\\n                {{prefix.id}}\\n              </h3>\\n              <h5>\\n                {{pluralize prefix.providers.length \\'Member\\' without-count=true\\n                }}\\n              </h5>\\n              {{#if prefix.providers}}\\n                {{#each prefix.providers as |provider|}}\\n                  <LinkTo\\n                    @route=\\\"providers.show.prefixes.show\\\"\\n                    @models={{array provider.id prefix.id}}\\n                  >\\n                    {{provider.name}}\\n                  </LinkTo>\\n                  <br />\\n                {{/each}}\\n              {{else}}\\n                <span class=\\\"icon-warning\\\">\\n                  No member found.\\n                </span>\\n              {{/if}}\\n              <h5>\\n                {{pluralize\\n                  prefix.repositories.length\\n                  \\'Repository\\'\\n                  without-count=true\\n                }}\\n              </h5>\\n              {{#if prefix.repositories}}\\n                {{#each prefix.repositories as |repository|}}\\n                  <LinkTo\\n                    @route=\\\"repositories.show.prefixes.show\\\"\\n                    @models={{array repository.id prefix.id}}\\n                  >\\n                    {{repository.name}}\\n                  </LinkTo>\\n                  <br />\\n                {{/each}}\\n                {{#if this.features.useElasticsearch}}\\n                  <h5>\\n                    DOIs\\n                  </h5>\\n                  <LinkTo @route=\\\"dois\\\" @query={{hash prefix=prefix.id}}>\\n                    DOIs for prefix\\n                    {{prefix.id}}\\n                  </LinkTo>\\n                {{/if}}\\n              {{else}}\\n                <span class=\\\"icon-warning\\\">\\n                  No repository found.\\n                </span>\\n              {{/if}}\\n              <h5>\\n                Created\\n              </h5>\\n              {{format-time\\n                prefix.createdAt\\n                year=\\'numeric\\'\\n                month=\\'long\\'\\n                day=\\'numeric\\'\\n                hour=\\'numeric\\'\\n                minute=\\'numeric\\'\\n                second=\\'numeric\\'\\n                timeZone=\\'UTC\\'\\n                timeZoneName=\\'short\\'\\n                hour12=false\\n              }}\\n            </div>\\n          </div>\\n        {{/each}}\\n        <div class=\\\"text-center\\\">\\n          {{#if (gt this.model.meta.totalPages 1)}}\\n            <PageNumbers @model={{this.model}} @link=\\\"prefixes\\\" />\\n          {{/if}}\\n        </div>\\n      {{else}}\\n        <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n          No prefixes found.\\n        </BsAlert>\\n      {{/if}}\\n    </div>\\n  </div>\\n{{else}}\\n  <ApplicationHeader /><LandingPage />\\n{{/if}}', { moduleName: 'bracco/templates/prefixes/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"read index\\\")}}\\n  <ApplicationHeader @default={{true}} />\\n\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n    \\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Add Prefixes</h3></div>\\n\\n        <PrefixNew @model={{this.model}} />\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n\\n\\n\\n', { moduleName: 'bracco/templates/prefixes/new.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}\\n', { moduleName: 'bracco/templates/providers.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"read index\\\")}}\\n  <ApplicationHeader @default={{true}} />\\n\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n    {{!-- {{#if (can \\\"read messages\\\" model)}} --}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\" style=\\\"margin-left: 10px; margin-right: 10px;\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n   {{!-- {{/if}} --}}\\n    <ProviderList @model={{this.model}} @searchable={{true}} />\\n  </div>\\n\\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/providers/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\'read index\\')}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\" id=\\\"add-member-form\\\">\\n    <IndexHeader />\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"col-md-9 col-md-offset-3\\\">\\n          <h3 class=\\\"edit\\\">\\n            Add Member\\n          </h3>\\n          {{#each this.flashMessages.queue as |flash|}}\\n            <FlashMessage @flash={{flash}} />\\n          {{/each}}\\n        </div>\\n        <BsForm\\n          @formLayout=\\\"horizontal\\\"\\n          class=\\\"form-horizontal\\\"\\n          @horizontalLabelGridClass=\\\"col-md-3\\\"\\n          @model={{this.model}}\\n          @onSubmit={{action \\'doSubmit\\' this.model}} as |form|\\n        >\\n          <h3 class=\\\"member-results\\\">\\n            Organization Information\\n          </h3>\\n          <ProviderId @model={{this.model}} @form={{form}} />\\n          <form.element\\n            @controlType=\\\"power-select\\\"\\n            id=\\\"ror-id\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Organization identifier (optional)\\\"\\n            @property=\\\"rorId\\\"\\n            @optionLabelPath=\\\"rorId\\\"\\n            @options={{this.organizations}}\\n            @destination={{this.rorId}}\\n            @helpText=\\\"Organization identifiers are provided by the Research Organization Registry (ROR).\\\" as |el|\\n          >\\n            <el.control\\n              @onChange={{action \\'selectRor\\'}}\\n              @search={{action \\'searchRor\\'}}\\n              @placeholder=\\\"Select Organization\\\"\\n              @searchPlaceholder=\\\"Type to search...\\\"\\n              @allowClear={{true}} \\n              @searchEnabled={{true}} as |item|\\n            >\\n              {{if item.name item.name this.model.rorId}}\\n            </el.control>\\n          </form.element>\\n          <form.element\\n            @controlType=\\\"text\\\"\\n            id=\\\"name\\\" \\n            class=\\\"form-group\\\"  \\n            @label=\\\"Member Name\\\"\\n            @property=\\\"name\\\"\\n            @helpText=\\\"The official name of your organization.\\\" as |el|\\n          >\\n            <el.control id=\\\"name-field\\\" />\\n          </form.element>\\n          <form.element\\n            @controlType=\\\"text\\\"\\n            id=\\\"display-name\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Member Display Name\\\"\\n            @property=\\\"displayName\\\"\\n            @helpText=\\\"Name of your organization as you would like it to appear in Fabrica and on DataCite’s website.\\\" as |el|\\n          >\\n            <el.control id=\\\"display-name-field\\\" />\\n          </form.element>\\n          {{#if (can \\'create provider\\')}}\\n            <form.element\\n              @controlType=\\\"text\\\"\\n              id=\\\"salesforce-id\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Salesforce ID\\\"\\n              @property=\\\"salesforceId\\\"\\n              @helpText=\\\"The 18 digit ID in Salesforce.\\\" as |el|\\n            >\\n              <el.control id=\\\"salesforce-id-field\\\" />\\n            </form.element>\\n          {{/if}}\\n          {{#if (can \\'token provider\\')}}\\n            <form.element\\n              @controlType=\\\"text\\\"\\n              id=\\\"globus-uuid\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Globus UUID (optional)\\\"\\n              @property=\\\"globusUuid\\\"\\n              @helpText=\\\"The Globus UUID used for token authentication.\\\" as |el|\\n            >\\n              <el.control id=\\\"globus-uuid-field\\\" />\\n           </form.element>\\n          {{/if}}\\n          {{#if (can \\'create provider\\')}}\\n            <form.element\\n              @controlType=\\\"power-select\\\"\\n              id=\\\"member-type\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Member Type\\\"\\n              @property=\\\"memberType\\\"\\n              @options={{this.memberTypes}}\\n              @destination={{this.memberType}} as |el|\\n            >\\n              <el.control\\n                @onChange={{action \\'selectMemberType\\'}}\\n                @search={{action \\'searchMemberType\\'}}\\n                @placeholder=\\\"Select Member Type\\\"\\n                @searchPlaceholder=\\\"Type to search...\\\"\\n                @searchEnabled={{true}} as |item|\\n              >\\n                {{titleize (humanize item)}}\\n              </el.control>\\n            </form.element>\\n            <form.element\\n              @controlType=\\\"power-select\\\"\\n              id=\\\"tax-status\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Tax Status\\\"\\n              @property=\\\"nonProfitStatus\\\"\\n              @options={{this.nonProfitStatuses}}\\n              @destination={{this.nonProfitStatus}} as |el|\\n            >\\n              <el.control\\n                @onChange={{action \\'selectNonProfitStatus\\'}}\\n                @search={{action \\'searchNonProfitStatus\\'}}\\n                @placeholder=\\\"Tax Status\\\"\\n                @searchPlaceholder=\\\"Type to search...\\\"\\n                @searchEnabled={{true}} as |item|\\n              >\\n                {{titleize item}}\\n              </el.control>\\n            </form.element>\\n            {{#if (eq this.model.memberType \\'consortium_organization\\')}}\\n              <form.element\\n                @controlType=\\\"power-select\\\"\\n                class=\\\"form-group\\\"\\n                @property=\\\"consortium\\\"\\n                @label=\\\"Consortium\\\"\\n                @helpText=\\\"Consortium for this organization.\\\"\\n                @optionLabelPath=\\\"name\\\"\\n                @options={{this.consortia}}\\n                @destination={{this.consortium.id}} as |el|\\n              >\\n                <el.control\\n                  @onChange={{action \\'selectConsortium\\'}}\\n                  @search={{action \\'searchConsortium\\'}}\\n                  @searchField=\\\"name\\\"\\n                  @searchPlaceholder=\\\"Type to search...\\\"\\n                  @allowClear={{true}}\\n                  @searchEnabled={{true}} as |item|\\n                >\\n                  {{item.name}}\\n                </el.control>\\n              </form.element>\\n            {{/if}}\\n          {{/if}}\\n          <form.element\\n            @controlType=\\\"email\\\"\\n            id=\\\"system-email\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"System Email\\\"\\n            @property=\\\"systemEmail\\\"\\n            @helpText=\\\"This is the email used for sending password reset requests and similar system notifications.\\\" as |el|\\n          >\\n            <el.control id=\\\"system-email-field\\\" />\\n          </form.element>\\n          <form.element\\n            @controlType=\\\"email\\\"\\n            id=\\\"group-email\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Group Email (optional)\\\"\\n            @property=\\\"groupEmail\\\"\\n            @helpText=\\\"A generic shared email address (such as info@datacite.org or similar) where you would like to receive communications from DataCite.\\\" as |el|\\n          >\\n            <el.control id=\\\"group-email-field\\\" />\\n          </form.element>\\n          <form.element\\n            @controlType=\\\"text\\\"\\n            id=\\\"website\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Website (optional)\\\"\\n            @property=\\\"website\\\"\\n            @helpText=\\\"Website of the member.\\\" as |el|\\n          >\\n            <el.control id=\\\"website-field\\\" />\\n          </form.element>\\n          <form.element\\n            @controlType=\\\"power-select\\\"\\n            id=\\\"country\\\"\\n            class=\\\"form-group required-label {{if (and this.isCountryFieldActive (v-get this.model \\'country\\' \\'isInvalid\\')) \\'has-error\\'}}\\\"\\n            @label=\\\"Country\\\"\\n            @property=\\\"country\\\"\\n            @optionLabelPath=\\\"name\\\"\\n            @options={{this.countries}}\\n            @destination={{this.country}}\\n            @helpText=\\\"Country where the member is located.\\\" as |el|\\n          >\\n            <el.control\\n              {{on \\\"click\\\" this.activateCountryField}}\\n              @onChange={{action \\'selectCountryAction\\'}}\\n              @search={{action \\'searchCountryAction\\'}}\\n              @searchField=\\\"name\\\"\\n              @placeholder=\\\"Select Country\\\"\\n              @searchPlaceholder=\\\"Type to search...\\\"\\n              @allowClear={{true}}\\n              @searchEnabled={{true}} as |item|\\n            >\\n              {{item.name}}\\n            </el.control>\\n          </form.element>\\n          <form.element\\n            @controlType=\\\"power-select\\\"\\n            id=\\\"organization-type\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Organization Type (optional)\\\"\\n            @property=\\\"organizationType\\\"\\n            @options={{this.organizationTypes}}\\n            @destination={{this.organizationType}} as |el|\\n          >\\n            <el.control\\n              @onChange={{action \\'selectOrganizationType\\'}}\\n              @search={{action \\'searchOrganizationType\\'}}\\n              @placeholder=\\\"Select Organization Type\\\"\\n              @searchPlaceholder=\\\"Type to search...\\\"\\n              @allowClear={{true}}\\n              @searchEnabled={{true}} as |item|\\n            >\\n              {{titleize (humanize (underscore item))}}\\n            </el.control>\\n          </form.element>\\n          <form.element\\n            @controlType=\\\"power-select\\\"\\n            id=\\\"focus-area\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Focus Area (optional)\\\"\\n            @property=\\\"focusArea\\\"\\n            @options={{this.focusAreas}}\\n            @destination={{this.focusArea}}\\n            @helpText=\\\"Field of research covered by the member.\\\" as |el|\\n          >\\n            <el.control\\n              @onChange={{action \\'selectFocusArea\\'}}\\n              @search={{action \\'searchFocusArea\\'}}\\n              @placeholder=\\\"Select Focus Area\\\"\\n              @searchPlaceholder=\\\"Type to search...\\\"\\n              @allowClear={{true}}\\n              @searchEnabled={{true}} as |item|\\n            >\\n              {{titleize (humanize (underscore item))}}\\n            </el.control>\\n          </form.element>\\n          <form.element\\n            @controlType=\\\"textarea\\\"\\n            id=\\\"description\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Description (optional)\\\"\\n            @property=\\\"description\\\"app/templates/providers/new.hbs\\n            @helpText=\\\"Description of the member. Please use markdown for formatting.\\\" as |el|\\n          >\\n            <el.control rows=\\\"10\\\" id=\\\"description-field\\\" />\\n          </form.element>\\n          {{#if (not-eq this.model.memberType \\'consortium_organization\\')}}\\n            <label class=\\\"control-label col-md-3\\\">\\n              Logo\\n            </label>\\n            <div class=\\\"col-md-9 form-help-header\\\">\\n              <div class=\\\"btn-toolbar btn-sm btn-file\\\">\\n\\n                {{! v5 syntax - ember-file-upload}}\\n                {{#let (file-queue name=\\\"logos\\\" onFileAdded=this.didSelectFiles) as |queue|}}\\n                  <label for=\\\"upload-logo\\\">\\n                    <span class=\\\"btn btn-sm\\\" role=\\\"button\\\" aria-controls=\\\"upload-logo\\\">\\n                      <i class=\\\"fas fa-upload\\\"></i>\\n                      {{if this.model.logo \\'Replace\\' \\'Upload\\'}}\\n                      Logo\\n                    </span>\\n                  </label>\\n                  <input\\n                    type=\\\"file\\\"\\n                    id=\\\"upload-logo\\\"\\n                    accept=\\\"image/png,image/jpeg\\\"\\n                    hidden\\n                    {{queue.selectFile}}\\n                  >\\n                {{/let}}\\n\\n              </div>\\n              <div class=\\\"help-block\\\">\\n                Please upload your horizontal logo in either png or jpeg format. It will be proportionally resized to be no larger than 500 x 200 px.\\n              </div>\\n            </div>\\n          {{/if}}\\n          <h3 class=\\\"member-results\\\">\\n            Contact Information\\n          </h3>\\n          <div class=\\\"col-md-9 col-md-offset-3\\\">\\n            <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n              Please add at least one contact via the member contacts menu after creating this member.\\n            </BsAlert>\\n          </div>\\n          {{#if (not-eq this.model.memberType \\'consortium_organization\\')}}\\n            <h3 class=\\\"member-results\\\">\\n              Billing Information\\n            </h3>\\n            <form.element\\n              @controlType=\\\"text\\\"\\n              id=\\\"billing-information-department\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Billing Department\\\"\\n              @property=\\\"billingInformation.department\\\"\\n              @helpText=\\\"Your organization\\'s specific department that is responsible for payment\\\" as |el|\\n            >\\n              <el.control id=\\\"billing-information-department-field\\\" />\\n            </form.element>\\n            <form.element\\n              @controlType=\\\"text\\\"\\n              id=\\\"billing-information-organization\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Billing Organization\\\"\\n              @property=\\\"billingInformation.organization\\\"\\n              @helpText=\\\"Your organization\\'s name for billing purposes if different from the official name\\\" as |el|\\n            >\\n              <el.control id=\\\"billing-information-organization-field\\\" />\\n            </form.element>\\n            <form.element\\n              @controlType=\\\"text\\\"\\n              id=\\\"billing-information-street\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Billing Street\\\"\\n              @property=\\\"billingInformation.address\\\"\\n              @helpText=\\\"Your organization\\'s street for billing purposes\\\" as |el|\\n            >\\n              <el.control id=\\\"billing-information-street-field\\\" />\\n            </form.element>\\n            <form.element\\n              @controlType=\\\"text\\\"\\n              id=\\\"billing-information-city\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Billing City\\\"\\n              @property=\\\"billingInformation.city\\\"\\n              @helpText=\\\"Your organization\\'s city for billing purposes\\\" as |el|\\n            >\\n              <el.control id=\\\"billing-information-city-field\\\" />\\n            </form.element>\\n            <form.element\\n              @controlType=\\\"text\\\"\\n              id=\\\"billing-information-postcode\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Billing Zip/Post Code\\\"\\n              @property=\\\"billingInformation.postCode\\\"\\n              @helpText=\\\"Your organization\\'s Zip/post code for billing purposes\\\" as |el|\\n            >\\n              <el.control id=\\\"billing-information-postcode-field\\\" />\\n            </form.element>\\n            <form.element\\n              @controlType=\\\"power-select\\\"\\n              id=\\\"billing-information-country\\\"\\n              class=\\\"form-group\\\"\\n              @label=\\\"Billing Country\\\"\\n              @property=\\\"billingInformation.country\\\"\\n              @optionLabelPath=\\\"name\\\"\\n              @options={{this.countries}}\\n              @helpText=\\\"Your organization\\'s country for billing purposes.\\\"\\n              @destination={{this.billingInformation.country}} as |el|\\n            >\\n              <el.control\\n                @onChange={{action \\'selectBillingCountry\\'}}\\n                @search={{action \\'searchCountryAction\\'}}\\n                @searchField=\\\"name\\\"\\n                @placeholder=\\\"Select Country\\\"\\n                @searchPlaceholder=\\\"Type to search...\\\"\\n                @allowClear={{true}}\\n                @searchEnabled={{true}} as |item|\\n              >\\n                {{item.name}}\\n              </el.control>\\n            </form.element>\\n            {{#if this.showStateSearch}}\\n              <form.element\\n                @controlType=\\\"power-select\\\"\\n                id=\\\"billing-information-state\\\"\\n                class=\\\"form-group\\\"\\n                @label=\\\"Billing State/Province\\\"\\n                @property=\\\"billingInformation.state\\\"\\n                @optionLabelPath=\\\"name\\\"\\n                @options={{this.states}}\\n                @helpText=\\\"Your organization\\'s state/province for billing purposes.\\\"\\n                @destination={{this.billingInformation.country}} as |el|\\n              >\\n                <el.control\\n                  @onChange={{action \\'selectBillingState\\'}}\\n                  @search={{action \\'searchState\\'}}\\n                  @searchField=\\\"name\\\"\\n                  @placeholder=\\\"Select State/Province\\\"\\n                  @searchPlaceholder=\\\"Type to search...\\\"\\n                  @allowClear={{true}}\\n                  @searchEnabled={{true}} as |item|\\n                >\\n                  {{item.name}}\\n                </el.control>\\n              </form.element>\\n            {{/if}}\\n          {{/if}}\\n          <form.element\\n            @controlType=\\\"checkbox\\\"\\n            id=\\\"is-active\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Account is active\\\"\\n            @property=\\\"isActive\\\"\\n            @helpText=\\\"This account can manage repositories and prefixes\\\" as |el|\\n          >\\n            <el.control id=\\\"is-active-field\\\" />\\n          </form.element>\\n          <div class=\\\"col-md-9 col-md-offset-3\\\">\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              The contacts entered may receive notifications about administration, webinars, product testing,\\n              or news that will impact the use of DataCite services and/or membership. Individuals may remove\\n              themselves from mailings by following the unsubscribe link provided in every DataCite email.\\n              For information about our privacy practices and commitment to protecting your privacy, please\\n              review our\\n              <a\\n                target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"PRIVACY_POLICY_URL\\\" }}\\n              >\\n                Privacy Policy\\n              </a>\\n              .\\n            </BsAlert>\\n          </div>\\n          <div class=\\\"col-md-9 col-md-offset-3\\\">\\n            {{#if (is-empty (provider-form-errors this.model))}}\\n              <button\\n                type=\\\"submit\\\"\\n                id=\\\"add-provider\\\"\\n                class=\\\"btn btn-sm btn-fill\\\"\\n                disabled={{if (or form.isSubmitting form.isSubmitted) true false }}\\n              >\\n                Add Member\\n              </button>\\n            {{else}}\\n              <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n                To save this member, first resolve the errors with these fields:\\n                {{provider-form-errors this.model}}\\n                .\\n              </BsAlert>\\n              <button\\n                type=\\\"submit\\\"\\n                id=\\\"add-provider\\\"\\n                class=\\\"btn btn-sm btn-fill\\\"\\n                disabled={{true}}\\n              >\\n                Add Member\\n              </button>\\n            {{/if}}\\n            <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\'cancel\\'}}>\\n              Cancel\\n            </button>\\n          </div>\\n        </BsForm>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <ApplicationHeader /><LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/providers/new.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{yield}}', { moduleName: 'bracco/templates/providers/prefixes.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('\\n{{#if (can \\'read provider\\' this.model)}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\">\\n    {{#if (or (can \\'read index\\') (can \\'read provider\\' this.model.consortium))}}\\n      <ol class=\\\"breadcrumb\\\">\\n        {{#if (can \\'read index\\')}}\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo @route=\\\"index\\\">\\n              DataCite\\n            </LinkTo>\\n          </li>\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo @route=\\\"providers\\\">\\n              Members\\n            </LinkTo>\\n          </li>\\n        {{/if}}\\n        {{#if\\n          (and\\n            (can \\'read provider\\' this.model.consortium)\\n            (eq this.model.memberType \\'consortium_organization\\')\\n          )\\n        }}\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo\\n              @route=\\\"providers.show.index\\\"\\n              @model={{this.model.consortium.id}}\\n            >\\n              {{this.model.consortium.name}}\\n            </LinkTo>\\n          </li>\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo\\n              @route=\\\"providers.show.organizations\\\"\\n              @model={{this.model.consortium.id}}\\n            >\\n              Consortium Organizations\\n            </LinkTo>\\n          </li>\\n        {{/if}}\\n      </ol>\\n    {{/if}}\\n    {{#if this.model.logoUrl}}\\n      <div class=\\\"pull-right\\\">\\n        <img class=\\\"img-small\\\" alt=\\\"logo\\\" src={{this.model.logoUrl}} />\\n      </div>\\n    {{/if}}\\n    <h2 class=\\\"work\\\">\\n      {{this.model.displayName}}\\n      {{#unless this.model.isActive}}\\n        <span class=\\\"label label-warning-inv\\\">\\n          Inactive\\n        </span>\\n      {{/unless}}\\n    </h2>\\n    <ShowProviderTabs @model={{this.model}}/>\\n    {{outlet}}\\n  </div>\\n{{else}}\\n  <ApplicationHeader /><LandingPage />\\n{{/if}}', { moduleName: 'bracco/templates/providers/show.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Set Password</h3></div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\"}} @submitOnEnter={{true}} as |form|>\\n      <form.element @controlType=\\\"password\\\" id=\\\"password-input\\\" class=\\\"form-group\\\" @property=\\\"passwordInput\\\" @label=\\\"New Password\\\" as |el| >\\n        <el.control id=\\\"password-input-field\\\" /><i class=\\\"bi bi-eye-slash\\\" id=\\\"togglePassword\\\" {{action \\'togglePassword\\'}}></i>\\n      </form.element>\\n      <form.element @controlType=\\\"password\\\" id=\\\"confirm-password-input\\\" class=\\\"form-group\\\" @property=\\\"confirmPasswordInput\\\" @label=\\\"Confirm Password\\\" as |el| >\\n        <el.control id=\\\"confirm-password-input-field\\\" /><i class=\\\"bi bi-eye-slash\\\" id=\\\"toggleConfirmPassword\\\" {{action \\'toggleConfirmPassword\\'}}></i>\\n      </form.element>\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <div class=\\\"btn-toolbar\\\">\\n          <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{v-get this.model \\'confirmPasswordInput\\' \\'isInvalid\\'}}>Set Password</button>\\n          <button class=\\\"btn btn-sm\\\" id=\\\"cancel\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\n        </div>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/providers/show/change.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\'read provider\\' this.model.provider)}}\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-md-3\\\">\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"btn-toolbar\\\">\\n            <div class=\\\"btn-group btn-group-sm\\\">\\n              <LinkTo\\n                @route=\\\"providers.show.contacts.new\\\"\\n                @model={{this.model.provider.id}}\\n                class=\\\"btn btn-warning\\\"\\n                id=\\\"add-contact\\\"\\n              >\\n                <i class=\\\"fas fa-plus\\\"></i>\\n                Add Contact\\n              </LinkTo>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n      {{#if this.model.contacts.meta.roles}}\\n        <div class=\\\"panel facets add\\\">\\n          <div class=\\\"panel-body\\\">\\n            <h4>\\n              Role\\n              <span class=\\\"small\\\">\\n                <i class=\\\"fas fa-question-circle\\\"></i>\\n                <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\">\\n                  Filter contacts by their role.\\n                </BsTooltip>\\n              </span>\\n            </h4>\\n            <ul>\\n              {{#each this.model.contacts.meta.roles as |role|}}\\n                <li>\\n                  {{#if (eq this.model.contacts.query.role-name role.id)}}\\n                    <LinkTo\\n                      @route=\\\"providers.show.contacts\\\"\\n                      @model={{this.model.provider.id}}\\n                      @query={{hash role-name=null}}\\n                    >\\n                      <i class=\\\"far fa-check-square\\\"></i>\\n                    </LinkTo>\\n                  {{else}}\\n                    <LinkTo\\n                      @route=\\\"providers.show.contacts\\\"\\n                      @model={{this.model.provider.id}}\\n                      id=\\\"role-name-{{role.id}}\\\"\\n                      @query={{hash role-name=role.id}}\\n                    >\\n                      <i class=\\\"far fa-square\\\"></i>\\n                    </LinkTo>\\n                  {{/if}}\\n                  <div class=\\\"facet-title\\\">\\n                    {{role.title}}\\n                  </div>\\n                  <span class=\\\"number pull-right\\\">\\n                    {{role.count}}\\n                  </span>\\n                  <div class=\\\"clearfix\\\"></div>\\n                </li>\\n              {{/each}}\\n            </ul>\\n          </div>\\n        </div>\\n      {{/if}}\\n    </div>\\n    <div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n      <ModelSearch\\n        @model={{this.model.contacts}}\\n        @name=\\\"Contact\\\"\\n        @sortable={{true}}\\n        @link=\\\"providers.show.contacts\\\"\\n      />\\n      {{#if (gt this.model.contacts.length 0)}}\\n        {{#each this.model.contacts as |contact|}}\\n          <div class=\\\"panel panel-transparent\\\" data-test-contact>\\n            <div class=\\\"panel-body\\\">\\n              <h3 class=\\\"work\\\">\\n                <LinkTo @route=\\\"contacts.show\\\" @model={{contact.id}}>\\n                  {{contact.displayName}}\\n                </LinkTo>\\n              </h3>\\n              {{#if (eq this.model.provider.memberType \\'consortium\\')}}\\n                <h5>\\n                  {{if\\n                    (eq contact.provider.memberType \\'consortium_organization\\')\\n                    \\'Consortium Organization\\'\\n                    \\'Member\\'\\n                  }}\\n                </h5>\\n                <LinkTo\\n                  @route=\\\"providers.show.contacts\\\"\\n                  @model={{contact.provider.id}}\\n                >\\n                  {{contact.provider.name}}\\n                </LinkTo>\\n              {{/if}}\\n              <h5>\\n                Email\\n              </h5>\\n              <a href=\\\"mailto:{{contact.email}}\\\">\\n                {{contact.email}}\\n              </a>\\n              <h5>\\n                Roles\\n              </h5>\\n              {{#if (gt contact.roleName.length 0)}}\\n                {{contact.roleNameString}}\\n              {{else}}\\n                <span class=\\\"icon-warning\\\">\\n                  No roles found. Please assign roles in the <LinkTo\\n                  @route=\\\"providers.show.edit\\\"\\n                  @model={{this.model.provider.id}}\\n                >\\n                  {{if (eq this.model.provider.memberType \\'consortium_organization\\')\\n              \\'Consortium Organization\\'\\n              \\'Member\\'}} Settings\\n              </LinkTo>.\\n                </span>\\n              {{/if}}\\n              <h5>\\n                Created\\n              </h5>\\n              {{format-time\\n                contact.created\\n                year=\\'numeric\\'\\n                month=\\'long\\'\\n                day=\\'numeric\\'\\n                hour=\\'numeric\\'\\n                minute=\\'numeric\\'\\n                second=\\'numeric\\'\\n                timeZone=\\'UTC\\'\\n                timeZoneName=\\'short\\'\\n                hour12=false\\n              }}\\n            </div>\\n          </div>\\n        {{/each}}\\n        <div class=\\\"text-center\\\">\\n          {{#if (gt this.model.contacts.meta.totalPages 1)}}\\n            <PageNumbers @model={{this.model.contacts}} @link=\\\"providers.show.contacts\\\" />\\n          {{/if}}\\n        </div>\\n      {{else}}\\n        <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n          No contacts found.\\n        </BsAlert>\\n      {{/if}}\\n    </div>\\n  </div>\\n{{/if}}', { moduleName: 'bracco/templates/providers/show/contacts/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\" id=\\\"add-provider-contact-form\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <h3 class=\\\"edit\\\">\\n        Add Contact\\n      </h3>\\n      {{#each this.flashMessages.queue as |flash|}}\\n        <FlashMessage @flash={{flash}} />\\n      {{/each}}\\n    </div>\\n    <BsForm\\n      @formLayout=\\\"horizontal\\\"\\n      class=\\\"form-horizontal\\\"\\n      @horizontalLabelGridClass=\\\"col-md-3\\\"\\n      @model={{this.model.contact}}\\n      @onSubmit={{action \\'submitAction\\' this.model.contact this.model}}\\n      @submitOnEnter={{false}} as |form|\\n    >\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"givenName\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Given Name\\\"\\n        @property=\\\"givenName\\\" as |el|\\n      >\\n        <el.control id=\\\"givenName-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"familyName\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Family Name\\\"\\n        @property=\\\"familyName\\\" as |el|\\n      >\\n        <el.control id=\\\"familyName-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"email\\\"\\n        class=\\\"form-group\\\"\\n        id=\\\"email\\\"\\n        @label=\\\"Email\\\"\\n        @property=\\\"email\\\"\\n        @helpText=\\\"Please enter a valid email address.\\\" as |el|\\n      >\\n        <el.control id=\\\"email-field\\\" />\\n      </form.element>\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n          The contact entered may receive notifications about administration, webinars, product testing, \\n          or news that will impact the use of DataCite services and/or membership. Individuals may remove \\n          themselves from mailings by following the unsubscribe link provided in every DataCite email. \\n          For information about our privacy practices and commitment to protecting your privacy, please \\n          review our\\n          <a\\n            target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"PRIVACY_POLICY_URL\\\" }}\\n          >\\n            Privacy Policy\\n          </a>\\n          .\\n        </BsAlert>\\n      </div>\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#if (is-empty (contact-form-errors this.model.contact))}}\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"add-contact\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{false}}\\n          >\\n            Add Contact\\n          </button>\\n        {{else}}\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n            To save this contact, first resolve the errors with these fields:\\n            {{contact-form-errors this.model.contact}}\\n            .\\n          </BsAlert>\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"add-contact\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{true}}\\n          >\\n            Add Contact\\n          </button>\\n        {{/if}}\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\'cancelAction\\'}}>\\n          Cancel\\n        </button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/providers/show/contacts/new.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      {{#if (and (eq this.model.memberType \\\"consortium\\\") (gt this.model.meta.consortiumOrganizationCount 0))}}\\n        <div class=\\\"alert alert-danger\\\" role=\\\"alert\\\">\\n          You need to delete all consortium organizations before you can delete the {{uppercase this.model.id}} consortium.\\n        </div>\\n        <div class=\\\"pseudo-footer\\\">\\n          <div class=\\\"btn-toolbar btn-sm pull-right\\\">\\n            <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\n            <LinkTo @route=\\\"providers.show.organizations\\\" @model={{this.model.id}} class=\\\"btn btn-sm\\\">All Consortium Organizations</LinkTo>\\n          </div>\\n          <div class=\\\"clearfix\\\"/>\\n        </div>\\n      {{else if (gt this.model.meta.repositoryCount 0)}}\\n        <div class=\\\"alert alert-danger\\\" role=\\\"alert\\\">\\n          You need to delete all repositories before you can delete the {{uppercase this.model.id}} provider.\\n        </div>\\n        <div class=\\\"pseudo-footer\\\">\\n          <div class=\\\"btn-toolbar btn-sm pull-right\\\">\\n            <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\n            <LinkTo @route=\\\"providers.show.repositories\\\" @model={{this.model.id}} class=\\\"btn btn-sm\\\">All Repositories</LinkTo>\\n          </div>\\n          <div class=\\\"clearfix\\\"/>\\n        </div>\\n      {{else}}\\n        <BsForm @formLayout=\\\"vertical\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\" this.model}} @submitOnEnter={{true}} as |form|>\\n          <div class=\\\"form-group\\\">\\n            <label class=\\\"control-label\\\">Are you sure you want to delete the {{uppercase this.model.id}} {{if (eq this.model.memberType \\\"consortium_organization\\\") \\'organization\\' \\'member\\'}}? This action cannot be undone.</label>\\n            <form.element @controlType=\\\"text\\\" id=\\\"confirm-symbol\\\" @property=\\\"confirmSymbol\\\" @showValidationOn=\\\"input\\\" @helpText=\\\"Please add the {{if (eq this.model.memberType \\\"consortium_organization\\\") \\'Organization\\' \\'Member\\'}} ID to delete.\\\" as |el| >\\n              <el.control id=\\\"confirm-symbol-field\\\" autofocus={{true}}/>\\n            </form.element>\\n          </div>\\n          \\n          <div class=\\\"pseudo-footer\\\">\\n            <div class=\\\"btn-toolbar pull-right\\\">\\n              <button id=\\\"cancel\\\" class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancel\\\" this.model}}>Cancel</button>\\n              <button id=\\\"delete\\\" disabled={{v-get this.model \\'confirmSymbol\\' \\'isInvalid\\'}} class=\\\"btn btn-sm btn-fill\\\" type=\\\"button\\\" {{action \\\"submitAction\\\"}}>Delete</button>\\n            </div>\\n            <div class=\\\"clearfix\\\"/>\\n          </div>\\n        </BsForm>\\n      {{/if}}\\n    </div>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/providers/show/delete.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model}}\\n  <DoiList\\n    @model={{this.model.dois}}\\n    @link=\\\"providers.show.dois\\\"\\n    @searchable={{true}}\\n    @dashboardId={{this.model.provider.uid}}\\n  />\\n{{else}}\\n  <div class=\\\"col-md-9 col-md-offset-3\\\">\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      An error occured fetching DOIs. Please contact DataCite Support.\\n    </BsAlert>\\n  </div>\\n{{/if}}', { moduleName: 'bracco/templates/providers/show/dois.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\" id=\\\"update-member-form\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-offset-3 form-help-header\\\">\\n      <h3 class=\\\"edit\\\">\\n        Update\\n        {{if\\n          (eq this.model.memberType \\'consortium_organization\\')\\n          \\'Organization\\'\\n          \\'Member\\'\\n        }}\\n      </h3>\\n      {{#each this.flashMessages.queue as |flash|}}\\n        <FlashMessage @flash={{flash}} />\\n      {{/each}}\\n    </div>\\n    <BsForm\\n      @formLayout=\\\"horizontal\\\"\\n      class=\\\"form-horizontal\\\"\\n      @horizontalLabelGridClass=\\\"col-md-3\\\"\\n      @model={{this.model}}\\n      @onSubmit={{action \\'doSubmit\\' this.model}} as |form|\\n    >\\n      <h3 class=\\\"member-results\\\">\\n        Organization Information\\n      </h3>\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"member-id\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Member ID\\\"\\n        @property=\\\"symbol\\\"\\n        @helpText=\\\"The Member ID is the unique identifier for each member and can\\'t be changed.\\\" as |el|\\n      >\\n        <el.control  disabled={{true}} />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"power-select\\\"\\n        id=\\\"ror-id\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Organization identifier (optional)\\\"\\n        @property=\\\"rorId\\\"\\n        @optionLabelPath=\\\"rorId\\\"\\n        @options={{this.organizations}}\\n        @destination={{this.rorId}}\\n        @helpText=\\\"Organization identifiers are provided by the Research Organization Registry (ROR).\\\" as |el|\\n      >\\n        <el.control\\n          @onChange={{action \\'selectRor\\'}}\\n          @search={{action \\'searchRor\\'}}\\n          @placeholder=\\\"Select Organization\\\"\\n          @searchPlaceholder=\\\"Type to search...\\\"\\n          @allowClear={{true}}\\n          @searchEnabled={{true}} as |item|\\n        >\\n          {{if item.name item.name this.model.rorId}}\\n        </el.control>\\n      </form.element>\\n      {{#if (can \\'editSalesforceField provider\\')}}\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"salesforce-id\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Salesforce ID\\\"\\n          @property=\\\"salesforceId\\\"\\n          @helpText=\\\"The 18 digit ID in Salesforce.\\\"\\n        />\\n      {{/if}}\\n      {{#if (can \\'token provider\\')}}\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"globus-uuid\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Globus UUID (optional)\\\"\\n          @property=\\\"globusUuid\\\"\\n          @helpText=\\\"The Globus UUID used for token authentication.\\\"\\n        />\\n      {{/if}}\\n      {{#if (can \\'create provider\\')}}\\n        <form.element\\n          @controlType=\\\"power-select\\\"\\n          id=\\\"member-type\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Member Type\\\"\\n          @property=\\\"memberType\\\"\\n          @options={{this.memberTypes}}\\n          @destination={{this.memberType}} as |el|\\n        >\\n          <el.control\\n            @onChange={{action \\'selectMemberType\\'}}\\n            @search={{action \\'searchMemberType\\'}}\\n            @placeholder=\\\"Select Member Type\\\"\\n            @searchPlaceholder=\\\"Type to search...\\\"\\n            @searchEnabled={{true}}\\n            disabled={{eq this.model.memberType \\'developer\\'}} as |item|\\n          >\\n            {{titleize (humanize item)}}\\n          </el.control>\\n        </form.element>\\n      {{/if}}\\n      {{#if (can \\'create provider\\')}}\\n        {{#if (eq this.model.memberType \\'consortium_organization\\')}}\\n          <form.element\\n            @controlType=\\\"power-select\\\"\\n            class=\\\"form-group\\\"\\n            @property=\\\"consortium\\\"\\n            @label=\\\"Consortium\\\"\\n            @helpText=\\\"Consortium for this organization.\\\"\\n            @optionLabelPath=\\\"name\\\"\\n            @options={{this.consortia}}\\n            @destination={{this.consortium.id}} as |el|\\n          >\\n            <el.control\\n              @onChange={{action \\'selectConsortium\\'}}\\n              @search={{action \\'searchConsortium\\'}}\\n              @searchField=\\\"name\\\"\\n              @searchPlaceholder=\\\"Type to search...\\\"\\n              @searchEnabled={{true}} as |item|\\n            >\\n              {{item.name}}\\n            </el.control>\\n          </form.element>\\n        {{/if}}\\n      {{/if}}\\n \\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"name\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"{{if\\n            (eq this.model.memberType \\'consortium_organization\\')\\n            \\'Organization\\'\\n            \\'Member\\'\\n          }}\\n           Name\\\"\\n        @property=\\\"name\\\"\\n        @helpText=\\\"The official name of your organization.\\\"\\n      />\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"display-name\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"{{if\\n            (eq this.model.memberType \\'consortium_organization\\')\\n            \\'Organization\\'\\n            \\'Member\\'\\n          }}\\n           Display Name\\\"\\n        @property=\\\"displayName\\\"\\n        @helpText=\\\"Name of your organization as you would like it to appear in Fabrica and on DataCite’s website.\\\"\\n      />\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"system-email\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"System Email\\\"\\n        @property=\\\"systemEmail\\\"\\n        @helpText=\\\"This is the email used for sending password reset requests and similar system notifications.\\\"\\n      />\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"group-email\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Group Email (optional)\\\"\\n        @property=\\\"groupEmail\\\"\\n        @helpText=\\\"A generic shared email address (such as info@datacite.org or similar) where you would like to receive communications from DataCite.\\\"\\n      />\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"website\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Website (optional)\\\"\\n        @property=\\\"website\\\"\\n        @helpText=\\\"Website of the member.\\\"\\n      />\\n      <form.element\\n        @controlType=\\\"power-select\\\"\\n        id=\\\"country\\\"\\n        class=\\\"form-group required-label {{if (and this.isCountryFieldActive (v-get this.model \\'country\\' \\'isInvalid\\')) \\'has-error\\'}}\\\"\\n        @label=\\\"Country\\\"\\n        @property=\\\"country\\\"\\n        @optionLabelPath=\\\"name\\\"\\n        @options={{this.countries}}\\n        @destination={{this.country}}\\n        @helpText=\\\"Country where the member is located.\\\" as |el|\\n      >\\n        <el.control\\n          {{on \\\"click\\\" this.activateCountryField}}\\n          @onChange={{action \\'selectCountryAction\\'}}\\n          @search={{action \\'searchCountryAction\\'}}\\n          @searchField=\\\"name\\\"\\n          @placeholder=\\\"Select Country\\\"\\n          @searchPlaceholder=\\\"Type to search...\\\"\\n          @allowClear={{true}}\\n          @searchEnabled={{true}} as |item|\\n        >\\n          {{item.name}}\\n        </el.control>\\n      </form.element>\\n      {{#if (or \\n              (can \\'create provider\\')\\n              (and\\n                (or (eq this.model.memberType \\'consortium\\') \\n                    (and\\n                      (eq this.model.memberType \\'consortium_organization\\')\\n                      (eq this.model.consortium_id this.model.consortium.id)\\n                    )\\n                )\\n              )\\n            )\\n      }}\\n        <form.element\\n          @controlType=\\\"power-select\\\"\\n          id=\\\"tax-status\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Tax Status\\\"\\n          @property=\\\"nonProfitStatus\\\"\\n          @options={{this.nonProfitStatuses}}\\n          @destination={{this.nonProfitStatus}} as |el|\\n        >\\n          <el.control\\n            @onChange={{action \\'selectNonProfitStatus\\'}}\\n            @search={{action \\'searchNonProfitStatus\\'}}\\n            @placeholder=\\\"Tax Status\\\"\\n            @searchPlaceholder=\\\"Type to search...\\\"\\n            @searchEnabled={{true}} as |item|\\n          >\\n            {{titleize item}}\\n          </el.control>\\n        </form.element>\\n      {{/if}}\\n      <form.element\\n        @controlType=\\\"power-select\\\"\\n        id=\\\"organization-type\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Organization Type (optional)\\\"\\n        @property=\\\"organizationType\\\"\\n        @options={{this.organizationTypes}}\\n        @destination={{this.organizationType}} as |el|\\n      >\\n        <el.control\\n          @onChange={{action \\'selectOrganizationType\\'}}\\n          @search={{action \\'searchOrganizationType\\'}}\\n          @placeholder=\\\"Select Organization Type\\\"\\n          @searchPlaceholder=\\\"Type to search...\\\"\\n          @allowClear={{true}}\\n          @searchEnabled={{true}} as |item|\\n        >\\n          {{titleize (humanize (underscore item))}}\\n        </el.control>\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"power-select\\\"\\n        id=\\\"focus-area\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Focus Area (optional)\\\"\\n        @property=\\\"focusArea\\\"\\n        @options={{this.focusAreas}}\\n        @destination={{this.focusArea}}\\n        @helpText=\\\"Field of research covered by the member.\\\" as |el|\\n      >\\n        <el.control\\n          @onChange={{action \\'selectFocusArea\\'}}\\n          @search={{action \\'searchFocusArea\\'}}\\n          @placeholder=\\\"Select Focus Area\\\"\\n          @searchPlaceholder=\\\"Type to search...\\\"\\n          @allowClear={{true}}\\n          @searchEnabled={{true}} as |item|\\n        >\\n          {{titleize (humanize (underscore item))}}\\n        </el.control>\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"textarea\\\"\\n        id=\\\"description\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Description (optional)\\\"\\n        @property=\\\"description\\\"\\n        @helpText=\\\"Description of the member. Please use markdown for formatting.\\\" as |el|\\n      >\\n        <el.control rows={{10}} />\\n      </form.element>\\n      {{#if (not-eq this.model.memberType \\'consortium_organization\\')}}\\n        <label class=\\\"control-label col-md-3\\\">\\n          Logo\\n        </label>\\n        <div class=\\\"col-md-9 form-help-header\\\">\\n          <div class=\\\"btn-toolbar btn-sm btn-file\\\">\\n\\n            {{! v5 syntax}}\\n            {{#let (file-queue name=\\\"logos\\\" onFileAdded=this.didSelectFiles) as |queue|}}\\n              <label for=\\\"upload-logo\\\">\\n                <span class=\\\"btn btn-sm\\\" role=\\\"button\\\" aria-controls=\\\"upload-logo\\\">\\n                  <i class=\\\"fas fa-upload\\\"></i>\\n                  {{if this.model.logo \\'Replace\\' \\'Upload\\'}}\\n                  Logo\\n                </span>\\n              </label>\\n              <input\\n                type=\\\"file\\\"\\n                id=\\\"upload-logo\\\"\\n                accept=\\\"image/png,image/jpeg\\\"\\n                hidden\\n                {{queue.selectFile}}\\n              >\\n            {{/let}}\\n\\n          </div>\\n          <div class=\\\"help-block\\\">\\n            Please upload your horizontal logo in either png or jpeg format. It will be proportionally resized to be no larger than 500 x 200 px.\\n          </div>\\n        </div>\\n      {{/if}}\\n      {{#if (not-eq this.model.memberType \\'developer\\')}}\\n        <h3 class=\\\"member-results\\\">\\n          Contact Information\\n        </h3>\\n        {{#if (is-empty this.model.filteredContacts)}}\\n          <div class=\\\"col-md-9 col-md-offset-3\\\">\\n            <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n              There are no contacts in your contacts list. Please\\n              <LinkTo\\n                @route=\\\"providers.show.contacts.new\\\"\\n                @model={{this.model.id}}\\n                id=\\\"add-contact\\\"\\n              >\\n                add at least one contact\\n              </LinkTo>\\n              .\\n            </BsAlert>\\n          </div>\\n        {{else}}\\n          <div class=\\\"col-md-9 col-md-offset-3\\\">\\n            <BsAlert @dismissible={{false}} @type=\\\"info\\\">\\n              Contacts are created\\n              <LinkTo @route=\\\"providers.show.contacts\\\" @model={{this.model.id}}>\\n                in the contacts section\\n              </LinkTo>\\n              and then assigned roles here.\\n            </BsAlert>\\n          </div>\\n          {{#if (not-eq this.model.memberType \\'consortium_organization\\')}}\\n            <form.element \\n              @controlType=\\\"power-select\\\" \\n              id=\\\"voting-contact\\\" \\n              class=\\\"form-group\\\" \\n              @label=\\\"Voting Representative\\\" \\n              @property=\\\"votingContact\\\" \\n              @optionLabelPath=\\\"name\\\" \\n              @options={{this.model.filteredContacts}} \\n              @helpText=\\\"Your organization\\'s voting representative.\\\" \\n              @destination={{this.model.votingContact}} as |el|\\n            >\\n              <el.control\\n                @searchEnabled={{false}}\\n                @search={{action \\'searchContact\\'}}\\n                @searchField=\\\"name\\\"\\n                @searchPlaceholder=\\\"Search contact...\\\"\\n                @onChange={{action \\'selectVotingContact\\'}}\\n                @placeholder=\\\"Select Contact\\\" as |item|\\n              >\\n                {{item.displayName}}\\n              </el.control>\\n            </form.element>\\n          {{/if}}\\n          <form.element \\n            @controlType=\\\"power-select\\\" \\n            id=\\\"service-contact\\\" class=\\\"form-group\\\" \\n            @label=\\\"Service Contact\\\" \\n            @property=\\\"serviceContact\\\" \\n            @optionLabelPath=\\\"displayName\\\" \\n            @options={{this.model.filteredContacts}} \\n            @helpText=\\\"Your organization\\'s service contact.\\\" \\n            @destination={{this.model.serviceContact}} as |el|\\n          >\\n            <el.control\\n              @searchEnabled={{false}}\\n              @search={{action \\'searchContact\\'}}\\n              @searchField=\\\"name\\\"\\n              @searchPlaceholder=\\\"Search contact...\\\"\\n              @onChange={{action \\'selectServiceContact\\'}}\\n              @placeholder=\\\"Select Contact\\\" as |item|\\n            >\\n              {{item.displayName}}\\n            </el.control>\\n          </form.element>\\n          <form.element \\n            @controlType=\\\"power-select\\\" \\n            id=\\\"secondary-service-contact\\\" \\n            class=\\\"form-group\\\" \\n            @label=\\\"Secondary Service Contact\\\" \\n            @property=\\\"secondaryServiceContact\\\" \\n            @optionLabelPath=\\\"name\\\" \\n            @options={{this.model.filteredContacts}} \\n            @helpText=\\\"Your organization\\'s secondary service contact.\\\" \\n            @destination={{this.model.secondaryServiceContact}} as |el|\\n          >\\n            <el.control\\n              @searchEnabled={{false}}\\n              @search={{action \\'searchContact\\'}}\\n              @searchField=\\\"name\\\"\\n              @searchPlaceholder=\\\"Search contact...\\\"\\n              @onChange={{action \\'selectSecondaryServiceContact\\'}}\\n              @placeholder=\\\"Select Contact\\\"\\n              @allowClear={{true}} as |item|\\n            >\\n              {{item.displayName}}\\n            </el.control>\\n          </form.element>\\n          <form.element \\n            @controlType=\\\"power-select\\\" \\n            id=\\\"technical-contact\\\" \\n            class=\\\"form-group\\\" \\n            @label=\\\"Technical Contact\\\" \\n            @property=\\\"technicalContact\\\" \\n            @optionLabelPath=\\\"name\\\" \\n            @options={{this.model.filteredContacts}} \\n            @helpText=\\\"Your organization\\'s technical contact.\\\" \\n            @destination={{this.model.technicalContact}} as |el|\\n          >\\n            <el.control\\n              @searchEnabled={{false}}\\n              @search={{action \\'searchContact\\'}}\\n              @searchField=\\\"name\\\"\\n              @searchPlaceholder=\\\"Search contact...\\\"\\n              @onChange={{action \\'selectTechnicalContact\\'}}\\n              @placeholder=\\\"Select Contact\\\"\\n              @allowClear={{true}} as |item|\\n            >\\n              {{item.displayName}}\\n            </el.control>\\n          </form.element>\\n          <form.element \\n            @controlType=\\\"power-select\\\" \\n            id=\\\"secondary-technical-contact\\\" \\n            class=\\\"form-group\\\" \\n            @label=\\\"Secondary Technical Contact\\\" \\n            @property=\\\"secondaryTechnicalContact\\\" \\n            @optionLabelPath=\\\"name\\\" \\n            @options={{this.model.filteredContacts}} \\n            @helpText=\\\"Your organization\\'s secondary technical contact.\\\" \\n            @destination={{this.model.secondaryTechnicalContact}} as |el|\\n          >\\n            <el.control\\n              @searchEnabled={{false}}\\n              @search={{action \\'searchContact\\'}}\\n              @searchField=\\\"name\\\"\\n              @searchPlaceholder=\\\"Search contact...\\\"\\n              @onChange={{action \\'selectSecondaryTechnicalContact\\'}}\\n              @placeholder=\\\"Select Contact\\\"\\n              @allowClear={{true}} as |item|\\n            >\\n              {{item.displayName}}\\n            </el.control>\\n          </form.element>\\n          {{#if (not-eq this.model.memberType \\'consortium_organization\\')}}\\n            <form.element \\n              @controlType=\\\"power-select\\\" \\n              id=\\\"billing-contact\\\" \\n              class=\\\"form-group\\\" \\n              @label=\\\"Billing Contact\\\"\\n               @property=\\\"billingContact\\\" \\n               @optionLabelPath=\\\"name\\\" \\n               @options={{this.model.filteredContacts}} \\n               @helpText=\\\"Your organization\\'s billing contact.\\\" \\n               @destination={{this.model.billingContact}} as |el|\\n              >\\n              <el.control\\n                @searchEnabled={{false}}\\n                @search={{action \\'searchContact\\'}}\\n                @searchField=\\\"name\\\"\\n                @searchPlaceholder=\\\"Search contact...\\\"\\n                @onChange={{action \\'selectBillingContact\\'}}\\n                @placeholder=\\\"Select Contact\\\" as |item|\\n              >\\n                {{item.displayName}}\\n              </el.control>\\n            </form.element>\\n            <form.element \\n              @controlType=\\\"power-select\\\" \\n              id=\\\"secondary-billing-contact\\\" \\n              class=\\\"form-group\\\" \\n              @label=\\\"Secondary Billing Contact\\\" \\n              @property=\\\"secondaryBillingContact\\\" \\n              @optionLabelPath=\\\"name\\\" \\n              @options={{this.model.filteredContacts}} \\n              @helpText=\\\"Your organization\\'s secondary billing contact.\\\" \\n              @destination={{this.model.secondaryBillingContact}} as |el|\\n            >\\n              <el.control\\n                @searchEnabled={{false}}\\n                @search={{action \\'searchContact\\'}}\\n                @searchField=\\\"name\\\"\\n                @searchPlaceholder=\\\"Search contact...\\\"\\n                @onChange={{action \\'selectSecondaryBillingContact\\'}}\\n                @placeholder=\\\"Select Contact\\\"\\n                @allowClear={{true}} as |item|\\n              >\\n                {{item.displayName}}\\n              </el.control>\\n            </form.element>\\n          {{/if}}\\n        {{/if}}\\n      {{/if}}\\n      {{#if\\n        (and\\n          (not-eq this.model.memberType \\'consortium_organization\\')\\n          (not-eq this.model.memberType \\'developer\\')\\n        )\\n      }}\\n        <h3 class=\\\"member-results\\\">\\n          Billing Information\\n        </h3>\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"billing-information-department\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Billing Department\\\"\\n          @property=\\\"billingInformation.department\\\"\\n          @helpText=\\\"Your organization\\'s specific department that is responsible for payment\\\"\\n        />\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"billing-information-organization\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Billing Organization\\\"\\n          @property=\\\"billingInformation.organization\\\"\\n          @helpText=\\\"Your organization\\'s name for billing purposes if different from the official name\\\"\\n        />\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"billing-information-street\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Billing Street\\\"\\n          @property=\\\"billingInformation.address\\\"\\n          @helpText=\\\"Your organization\\'s street for billing purposes\\\"\\n        />\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"billing-information-city\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Billing City\\\"\\n          @property=\\\"billingInformation.city\\\"\\n          @helpText=\\\"Your organization\\'s city for billing purposes\\\"\\n        />\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"billing-information-postcode\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Billing Zip/Post Code\\\"\\n          @property=\\\"billingInformation.postCode\\\"\\n          @helpText=\\\"Your organization\\'s Zip/post code for billing purposes\\\"\\n        />\\n        <form.element\\n          @controlType=\\\"power-select\\\"\\n          id=\\\"billing-information-country\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Billing Country\\\"\\n          @property=\\\"billingInformation.country\\\"\\n          @optionLabelPath=\\\"name\\\"\\n          @options={{this.countries}}\\n          @helpText=\\\"Your organization\\'s country for billing purposes.\\\"\\n          @destination={{this.billingInformation.country}} as |el|\\n        >\\n          <el.control\\n            @onChange={{action \\'selectBillingCountry\\'}}\\n            @search={{action \\'searchCountryAction\\'}}\\n            @searchField=\\\"name\\\"\\n            @placeholder=\\\"Select Country\\\"\\n            @searchPlaceholder=\\\"Type to search...\\\"\\n            @allowClear={{true}}\\n            @searchEnabled={{true}} as |item|\\n          >\\n            {{item.name}}\\n          </el.control>\\n        </form.element>\\n        {{#if this.showStateSearch}}\\n          <form.element\\n            @controlType=\\\"power-select\\\"\\n            id=\\\"billing-information-state\\\"\\n            class=\\\"form-group\\\"\\n            @label=\\\"Billing State/Province\\\"\\n            @property=\\\"billingInformation.state\\\"\\n            @optionLabelPath=\\\"name\\\"\\n            @options={{this.states}}\\n            @helpText=\\\"Your organization\\'s state/province for billing purposes.\\\"\\n            @destination={{this.billingInformation.country}} as |el|\\n          >\\n            <el.control\\n              @onChange={{action \\'selectBillingState\\'}}\\n              @search={{action \\'searchState\\'}}\\n              @searchField=\\\"name\\\"\\n              @placeholder=\\\"Select State/Province\\\"\\n              @searchPlaceholder=\\\"Type to search...\\\"\\n              @allowClear={{true}}\\n              @searchEnabled={{true}} as |item|\\n            >\\n              {{item.name}}\\n            </el.control>\\n          </form.element>\\n        {{/if}}\\n      {{/if}}\\n      {{#if (can \\'create provider\\')}}\\n        <form.element\\n          @controlType=\\\"checkbox\\\"\\n          id=\\\"is-active\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Account is active\\\"\\n          @property=\\\"isActive\\\"\\n          @helpText=\\\"This account can manage repositories and prefixes\\\" as |el|\\n        >\\n          <el.control id=\\\"is-active-field\\\" />\\n        </form.element>\\n      {{/if}}\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n          The contacts entered may receive notifications about administration, webinars, product testing,\\n          or news that will impact the use of DataCite services and/or membership. Individuals may remove\\n          themselves from mailings by following the unsubscribe link provided in every DataCite email.\\n          For information about our privacy practices and commitment to protecting your privacy, please\\n          review our\\n          <a\\n            target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"PRIVACY_POLICY_URL\\\" }}\\n          >\\n            Privacy Policy\\n          </a>\\n          .\\n        </BsAlert>\\n      </div>\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#if (is-empty (provider-form-errors this.model))}}\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"update-provider\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{false}}\\n          >\\n            Update\\n            {{if\\n              (eq this.model.memberType \\'consortium_organization\\')\\n              \\'Organization\\'\\n              \\'Member\\'\\n            }}\\n          </button>\\n        {{else}}\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n            To save this\\n            {{if\\n              (eq this.model.memberType \\'consortium_organization\\')\\n              \\'organization,\\'\\n              \\'member,\\'\\n            }}\\n            first resolve the errors with these fields:\\n            {{provider-form-errors this.model}}\\n            .\\n          </BsAlert>\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"update-provider\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{true}}\\n          >\\n            Update\\n            {{if\\n              (eq this.model.memberType \\'consortium_organization\\')\\n              \\'Organization\\'\\n              \\'Member\\'\\n            }}\\n          </button>\\n        {{/if}}\\n        <button class=\\\"btn btn-sm\\\" id=\\\"cancel\\\" type=\\\"button\\\" {{action \\'cancel\\' this.model}}>\\n          Cancel\\n        </button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/providers/show/edit.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"row\\\">\\n  <div class=\\\"col-md-3\\\">\\n    <div class=\\\"panel facets\\\">\\n      <div class=\\\"panel-body\\\">\\n        <div class=\\\"btn-toolbar\\\">\\n          <div class=\\\"shrink\\\">\\n            <MetadataDashboardButton @dashboardId={{this.model.uid}} />\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n  <div class=\\\"col-md-9\\\">\\n    <ProviderInfo @model={{this.model}} />\\n  </div>\\n</div>', { moduleName: 'bracco/templates/providers/show/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<OrganizationList @model={{this.model}} @link=\\\"providers.show.organizations\\\" @searchable={{true}} />\\n', { moduleName: 'bracco/templates/providers/show/organizations/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\" id=\\\"create-consortium-organization-form\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      <h3 class=\\\"edit\\\">\\n        Create Consortium Organization\\n      </h3>\\n      {{#each this.flashMessages.queue as |flash|}}\\n        <FlashMessage @flash={{flash}} />\\n      {{/each}}\\n    </div>\\n    <BsForm\\n      @formLayout=\\\"horizontal\\\"\\n      class=\\\"form-horizontal\\\"\\n      @horizontalLabelGridClass=\\\"col-md-3\\\"\\n      @model={{this.model.organization}}\\n      @onSubmit={{action \\'doSubmit\\'}}\\n      @submitOnEnter={{true}} as |form|\\n    >\\n      <h3 class=\\\"member-results\\\">\\n        Organization Information \\n      </h3>\\n      <form.element\\n        @controlType=\\\"hidden\\\"\\n        @property=\\\"consortium\\\"\\n      />\\n      <ProviderId @model={{this.model.organization}} @form={{form}} />\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"member-type\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Member Type\\\"\\n        @value=\\\"Consortium Organization\\\" as |el|\\n      >\\n        <el.control readonly={{true}} id=\\\"member-type-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"name\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Organization Name\\\"\\n        @property=\\\"name\\\"\\n        @helpText=\\\"The official name of your organization.\\\" as |el|\\n      >\\n        <el.control id=\\\"name-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"display-name\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Organization Display Name\\\"\\n        @property=\\\"displayName\\\"\\n        @helpText=\\\"Name of your organization as you would like it to appear in Fabrica and on DataCite’s website.\\\" as |el|\\n      >\\n        <el.control id=\\\"display-name-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"power-select\\\"\\n        id=\\\"ror-id\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Organization identifier (optional)\\\"\\n        @property=\\\"rorId\\\"\\n        @optionLabelPath=\\\"rorId\\\"\\n        @options={{this.organizations}}\\n        @destination={{this.rorId}}\\n        @helpText=\\\"Organization identifiers are provided by the Research Organization Registry (ROR).\\\" as |el|\\n      >\\n        <el.control\\n          @onChange={{action \\'selectRor\\'}}\\n          @search={{action \\'searchRor\\'}}\\n          @placeholder=\\\"Select Organization\\\"\\n          @searchPlaceholder=\\\"Type to search...\\\"\\n          @allowClear={{true}}\\n          @searchEnabled={{true}} as |item|\\n        >\\n          {{if item.name item.name this.model.organization.rorId}}\\n        </el.control>\\n      </form.element>\\n      {{#if (can \\'editSalesforceField provider\\')}}\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"salesforce-id\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Salesforce ID\\\"\\n          @property=\\\"salesforceId\\\"\\n          @helpText=\\\"The 18 digit ID in Salesforce.\\\" as |el|\\n        >\\n          <el.control id=\\\"salesforce-id-field\\\" />\\n        </form.element>\\n      {{/if}}\\n      {{#if (can \\'token provider\\')}}\\n        <form.element\\n          @controlType=\\\"text\\\"\\n          id=\\\"globus-uuid\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Globus UUID (optional)\\\"\\n          @property=\\\"globusUuid\\\"\\n          @helpText=\\\"The Globus UUID used for token authentication.\\\" as |el|\\n        >\\n          <el.control id=\\\"globus-uuid-field\\\" />\\n        </form.element>\\n      {{/if}}\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"system-email\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"System Email\\\"\\n        @property=\\\"systemEmail\\\"\\n        @helpText=\\\"This is the email used for sending password reset requests and similar system notifications.\\\" as |el|\\n      >\\n        <el.control id=\\\"system-email-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"group-email\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Group Email (optional)\\\"\\n        @property=\\\"groupEmail\\\"\\n        @helpText=\\\"A generic shared email address (such as info@datacite.org or similar) where you would like to receive communications from DataCite.\\\" as |el|\\n      >\\n        <el.control id=\\\"group-email-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"text\\\"\\n        id=\\\"website\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Website\\\"\\n        @property=\\\"website (optional)\\\"\\n        @helpText=\\\"Website of the organization.\\\" as |el|\\n      >\\n        <el.control id=\\\"website-field\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"power-select\\\"\\n        id=\\\"country\\\"\\n        class=\\\"form-group required-label {{if (and this.isCountryFieldActive (v-get this.model.organization \\'country\\' \\'isInvalid\\')) \\'has-error\\'}}\\\"\\n        @label=\\\"Country\\\"\\n        @property=\\\"country\\\"\\n        @optionLabelPath=\\\"name\\\"\\n        @options={{this.countries}}\\n        @destination={{this.country}}\\n        @helpText=\\\"Country where the organization is located.\\\" as |el|\\n      >\\n        <el.control\\n          {{on \\\"click\\\" this.activateCountryField}}\\n          @onChange={{action \\'selectCountryAction\\'}}\\n          @search={{action \\'searchCountryAction\\'}}\\n          @searchField=\\\"name\\\"\\n          @placeholder=\\\"Select Country\\\"\\n          @searchPlaceholder=\\\"Type to search...\\\"\\n          @allowClear={{true}}\\n          @searchEnabled={{true}} as |item|\\n        >\\n          {{item.name}}\\n        </el.control>\\n      </form.element>\\n      {{#if (can \\'create provider\\')}}\\n        <form.element\\n          @controlType=\\\"power-select\\\"\\n          id=\\\"tax-status\\\"\\n          class=\\\"form-group\\\"\\n          @label=\\\"Tax Status\\\"\\n          @property=\\\"nonProfitStatus\\\"\\n          @options={{this.nonProfitStatuses}}\\n          @destination={{this.nonProfitStatus}} as |el|\\n        >\\n          <el.control\\n            @onChange={{action \\'selectNonProfitStatus\\'}}\\n            @search={{action \\'searchNonProfitStatus\\'}}\\n            @placeholder=\\\"Tax Status\\\"\\n            @searchPlaceholder=\\\"Type to search...\\\"\\n            @searchEnabled={{true}} as |item|\\n          >\\n            {{titleize item}}\\n          </el.control>\\n        </form.element>\\n      {{/if}}\\n      <form.element\\n        @controlType=\\\"power-select\\\"\\n        id=\\\"organization-type\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Organization Type (optional)\\\"\\n        @property=\\\"organizationType\\\"\\n        @options={{this.organizationTypes}}\\n        @destination={{this.organizationType}} as |el|\\n      >\\n        <el.control\\n          @onChange={{action \\'selectOrganizationType\\'}}\\n          @search={{action \\'searchOrganizationType\\'}}\\n          @placeholder=\\\"Select Organization Type\\\"\\n          @searchPlaceholder=\\\"Type to search...\\\"\\n          @allowClear={{true}}\\n          @searchEnabled={{true}} as |item|\\n        >\\n          {{titleize (humanize (underscore item))}}\\n        </el.control>\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"power-select\\\"\\n        id=\\\"focus-area\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Focus Area (optional)\\\"\\n        @property=\\\"focusArea\\\"\\n        @options={{this.focusAreas}}\\n        @destination={{this.focusArea}}\\n        @helpText=\\\"Field of research covered by organization.\\\" as |el|\\n      >\\n        <el.control\\n          @onChange={{action \\'selectFocusArea\\'}}\\n          @search={{action \\'searchFocusArea\\'}}\\n          @placeholder=\\\"Select Focus Area\\\"\\n          @searchPlaceholder=\\\"Type to search...\\\"\\n          @allowClear={{true}}\\n          @searchEnabled={{true}} as |item|\\n        >\\n          {{titleize (humanize (underscore item))}}\\n        </el.control>\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"textarea\\\"\\n        id=\\\"description\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Description (optional)\\\"\\n        @property=\\\"description\\\"\\n        @helpText=\\\"Description of the organization. Please use markdown for formatting.\\\" as |el|\\n      >\\n        <el.control id=\\\"description-field\\\" rows=\\\"10\\\" />\\n      </form.element>\\n      <form.element\\n        @controlType=\\\"checkbox\\\"\\n        id=\\\"is-active\\\"\\n        class=\\\"form-group\\\"\\n        @label=\\\"Account is active\\\"\\n        @property=\\\"isActive\\\"\\n        @helpText=\\\"This account can manage repositories and prefixes\\\" as |el|\\n      >\\n        <el.control id=\\\"is-active-field\\\" />\\n      </form.element>\\n      <h3 class=\\\"member-results\\\">\\n        Contact Information\\n      </h3>\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n          Please add at least one contact via the consortium organization contacts menu after creating\\n          this consortium organization.\\n        </BsAlert>\\n        <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n          The contacts entered may receive notifications about administration, webinars, product testing,\\n            or news that will impact the use of DataCite services and/or membership. Individuals may remove\\n            themselves from mailings by following the unsubscribe link provided in every DataCite email.\\n            For information about our privacy practices and commitment to protecting your privacy, please\\n            review our\\n          <a\\n            target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"PRIVACY_POLICY_URL\\\" }}\\n          >\\n            Privacy Policy\\n          </a>\\n        </BsAlert>\\n      </div>\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#if (is-empty (provider-form-errors this.model.organization))}}\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"add-organization\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{false}}\\n          >\\n            Add Consortium Organization\\n          </button>\\n        {{else}}\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n            To save this consortium organization, first resolve the errors with these fields:\\n            {{provider-form-errors this.model.organization}}\\n            .\\n          </BsAlert>\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"add-organization\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{true}}\\n          >\\n            Add Consortium Organization\\n          </button>\\n        {{/if}}\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\'cancel\\'}}>\\n          Cancel\\n        </button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/providers/show/organizations/new.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"row\\\">\\n  <div class=\\\"col-md-3\\\">\\n    {{#if\\n      (and\\n        (can \\'write index\\' this.model)\\n        (not-eq this.model.provider.memberType \\'consortium\\')\\n        (or (eq this.model.currentUser.role_id \\'staff_admin\\') this.model.provider.hasRequiredContacts)\\n      )\\n    }}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"btn-toolbar\\\">\\n            <div class=\\\"btn-group btn-group-sm\\\">\\n              <LinkTo\\n                @route=\\\"providers.show.prefixes.new\\\"\\n                @model={{this.model.provider.id}}\\n                class=\\\"btn btn-warning\\\"\\n                id=\\\"assign-prefix\\\"\\n                @disabled={{if (eq (await (prefixes-available)) 0) \\\"true\\\" \\\"\\\"}}\\n              >\\n                <i class=\\\"fas fa-link\\\"></i>\\n                Assign Prefix\\n              </LinkTo>\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    {{else}}\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          {{this.link}}\\n          {{#if (eq this.model.provider.memberType \\'consortium\\')}}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              New prefixes can\\'t be assigned from this page.\\n            </BsAlert>\\n          {{else if (cannot \\'create prefix\\' this.model)}}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              Please ask DataCite Staff if you want to add a prefix.\\n            </BsAlert>\\n          {{else if (not this.model.provider.hasRequiredContacts)}}\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              New prefixes can\\'t be assigned unless all required contacts are assigned.\\n            </BsAlert>\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/if}}\\n\\n    {{#if this.model.prefixes.meta.states}}\\n      <div class=\\\"panel facets add\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            State\\n            <span class=\\\"small\\\">\\n              <i class=\\\"fas fa-question-circle\\\"></i>\\n              <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\">\\n                Filter prefixes by whether they have been assigned to a repository.\\n              </BsTooltip>\\n            </span>\\n          </h4>\\n          <ul>\\n            {{#each this.model.prefixes.meta.states as |state|}}\\n              <li>\\n                {{#if this.model.prefixes.query.state}}\\n                  <LinkTo\\n                    @route=\\\"providers.show.prefixes\\\"\\n                    @query={{hash state=null}}\\n                  >\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route=\\\"providers.show.prefixes\\\"\\n                    @query={{hash state=state.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{state.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{state.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if this.model.prefixes.meta.years}}\\n      <div class=\\\"panel facets add\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Year created\\n          </h4>\\n          <ul>\\n            {{#each this.model.prefixes.meta.years as |year|}}\\n              <li>\\n                {{#if this.model.prefixes.query.year}}\\n                  <LinkTo\\n                    @route=\\\"providers.show.prefixes\\\"\\n                    @query={{hash year=null}}\\n                  >\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route=\\\"providers.show.prefixes\\\"\\n                    @query={{hash year=year.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if (eq this.model.provider.memberType \\'consortium\\')}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Consortium Organizations\\n          </h4>\\n          <ul>\\n            {{#each this.model.prefixes.meta.providers as |consortium-organization|}}\\n              <li>\\n                {{#if this.model.prefixes.query.consortium-organization-id}}\\n                  <LinkTo\\n                    @route=\\\"providers.show.prefixes\\\"\\n                    @query={{hash consortium-organization-id=null}}\\n                  >\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route=\\\"providers.show.prefixes\\\"\\n                    @query={{hash\\n                      consortium-organization-id=consortium-organization.id\\n                    }}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{consortium-organization.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{consortium-organization.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  </div>\\n  <div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n    <ModelSearch\\n      @model={{this.model.prefixes}}\\n      @name=\\\"Prefix\\\"\\n      @sortable={{true}}\\n      @link=\\\"providers.show.prefixes\\\"\\n    />\\n    {{#if this.model.prefixes}}\\n      {{#each this.model.prefixes as |providerPrefix|}}\\n        <div class=\\\"panel panel-transparent\\\" data-test-prefix>\\n          <div class=\\\"panel-body\\\">\\n            {{#if (not-eq this.model.provider.memberType \\'consortium\\')}}\\n              <h3 class=\\\"work\\\">\\n                <LinkTo\\n                  @route=\\\"providers.show.prefixes.show\\\"\\n                  @models={{array\\n                    providerPrefix.provider.id\\n                    providerPrefix.prefix.id\\n                  }}\\n                >\\n                  {{providerPrefix.prefix.id}}\\n                </LinkTo>\\n              </h3>\\n            {{else}}\\n              <h3 class=\\\"member\\\">\\n                {{providerPrefix.prefix.id}}\\n              </h3>\\n              <h5>\\n                Consortium Organization\\n              </h5>\\n              {{#if providerPrefix.provider}}\\n                <LinkTo\\n                  @route=\\\"providers.show.prefixes.show\\\"\\n                  @models={{array\\n                    providerPrefix.provider.id\\n                    providerPrefix.prefix.id\\n                  }}\\n                >\\n                  {{providerPrefix.provider.name}}\\n                </LinkTo>\\n                <br />\\n              {{else}}\\n                <span class=\\\"icon-warning\\\">\\n                  No member found.\\n                </span>\\n              {{/if}}\\n            {{/if}}\\n            <h5>\\n              {{pluralize\\n                providerPrefix.repositories.length\\n                \\'Repository\\'\\n                without-count=true\\n              }}\\n            </h5>\\n            {{#if providerPrefix.repositories}}\\n              {{#each providerPrefix.repositories as |repository|}}\\n                <LinkTo\\n                  @route=\\\"repositories.show.prefixes.show\\\"\\n                  @models={{array repository.id providerPrefix.prefix.id}}\\n                >\\n                  {{repository.name}}\\n                </LinkTo>\\n                <br />\\n              {{/each}}\\n              {{#if this.features.useElasticsearch}}\\n                <h5>\\n                  DOIs\\n                </h5>\\n                <LinkTo\\n                  @route=\\\"providers.show.dois\\\"\\n                  @model={{providerPrefix.provider.id}}\\n                  @query={{hash prefix=providerPrefix.prefix.id}}\\n                >\\n                  DOIs for prefix\\n                  {{providerPrefix.prefix.id}}\\n                </LinkTo>\\n              {{/if}}\\n            {{else}}\\n              <span class=\\\"icon-warning\\\">\\n                No repository found.\\n              </span>\\n            {{/if}}\\n            <h5>\\n              Added\\n            </h5>\\n            {{format-time\\n              providerPrefix.createdAt\\n              year=\\'numeric\\'\\n              month=\\'long\\'\\n              day=\\'numeric\\'\\n              hour=\\'numeric\\'\\n              minute=\\'numeric\\'\\n              second=\\'numeric\\'\\n              timeZone=\\'UTC\\'\\n              timeZoneName=\\'short\\'\\n              hour12=false\\n            }}\\n          </div>\\n        </div>\\n      {{/each}}\\n      <div class=\\\"text-center\\\">\\n        {{#if (gt this.model.prefixes.meta.totalPages 1)}}\\n          <PageNumbers\\n            @model={{this.model.prefixes}}\\n            @link=\\\"providers.show.prefixes\\\"\\n          />\\n        {{/if}}\\n      </div>\\n    {{else}}\\n      <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n        No prefixes found.\\n      </BsAlert>\\n    {{/if}}\\n  </div>\\n</div>', { moduleName: 'bracco/templates/providers/show/prefixes/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('  <div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Assign Prefix</h3></div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model.provider-prefix}} @onSubmit={{action \\\"submitAction\\\"}} as |form|>\\n      <form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" id=\\\"prefix-add\\\" @label=\\\"Prefix\\\" @property=\\\"prefix\\\" @options={{this.prefixes}} as |el|>\\n        <el.control @onChange={{action \\\"selectPrefixAction\\\"}} @selected={{this.prefix}} @search={{action \\\"searchPrefixAction\\\"}} @optionLabelPath=\\\"id\\\" @searchField=\\\"id\\\" @searchPlaceholder=\\\"Select from list or type to search...\\\" @searchEnabled={{true}} as |item|>\\n          {{if item.id item.id item}}\\n        </el.control>\\n      </form.element>\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <button type=\\\"submit\\\" disabled={{this.disabled}} class=\\\"btn btn-sm btn-fill\\\">Assign Prefix</button>\\n        <button id=\\\"cancel\\\" class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/providers/show/prefixes/new.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model}}\\n  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\">    \\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <div class=\\\"alert alert-danger\\\" role=\\\"alert\\\">\\n          Are you sure you want to remove prefix {{this.model.prefix.id}} from this member?\\n        </div>\\n        <div class=\\\"panel-footer\\\">\\n          <div class=\\\"btn-toolbar pull-right\\\">\\n            <button id=\\\"cancel\\\" class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n            <button id=\\\"remove\\\" class=\\\"btn btn-sm btn-fill\\\" type=\\\"button\\\" {{action \\\"submitAction\\\"}}>Remove</button>\\n          </div>\\n          <div class=\\\"clearfix\\\"/>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n    The prefix was not found.\\n  </BsAlert>\\n{{/if}}\\n', { moduleName: 'bracco/templates/providers/show/prefixes/show/delete.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model}}\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-md-3\\\">\\n      {{#if (and (can \\'update prefix\\' this.model) (not this.model.repositories))}}\\n        <div class=\\\"panel facets add\\\">\\n          <div class=\\\"panel-body\\\">\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"btn-group btn-group-sm\\\">\\n                <LinkTo\\n                  @route=\\\"providers.show.prefixes.show.delete\\\"\\n                  @models={{array this.model.provider.id this.model.prefix.id}}\\n                  class=\\\"btn btn-warning\\\"\\n                >\\n                  <i class=\\\"fas fa-pencil-alt\\\"></i>\\n                  Remove Prefix\\n                </LinkTo>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{/if}}\\n    </div>\\n    <div class=\\\"col-md-9\\\">\\n      <h2 class=\\\"work\\\" cy-data=\\\"prefix\\\">\\n        {{this.model.prefix.id}}\\n      </h2>\\n    </div>\\n  </div>\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-md-3\\\">\\n      <RepositorySidebar @model={{this.model}} />\\n    </div>\\n    <div class=\\\"col-md-9\\\">\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h5>\\n            {{pluralize\\n              this.model.repositories.length\\n              \\'Repository\\'\\n              without-count=true\\n            }}\\n          </h5>\\n          {{#if this.model.repositories}}\\n            {{#each this.model.repositories as |repository|}}\\n              <LinkTo\\n                cy-data={{repository.id}}\\n                @route=\\\"repositories.show.prefixes.show\\\"\\n                @models={{array repository.id this.model.prefix.id}}\\n              >\\n                {{repository.name}}\\n              </LinkTo>\\n              <br />\\n            {{/each}}\\n          {{else}}\\n            <span class=\\\"icon-warning\\\">\\n              No repositories found.\\n            </span>\\n          {{/if}}\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n    The prefix was not found.\\n  </BsAlert>\\n{{/if}}', { moduleName: 'bracco/templates/providers/show/prefixes/show/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<RepositoryList @model={{this.model}} @link=\\\"providers.show.repositories\\\" @searchable={{true}} />\\n', { moduleName: 'bracco/templates/providers/show/repositories/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\">\\r\\n  <div class=\\\"panel-body\\\">\\r\\n    <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Add Repository</h3>\\r\\n      {{#each this.flashMessages.queue as |flash|}}\\r\\n        <FlashMessage @flash={{flash}} />\\r\\n      {{/each}}\\r\\n    </div>\\r\\n\\r\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model.repository}} @onSubmit={{action \\\"submitAction\\\" this.model.repository this.model}} @submitOnEnter={{true}} as |form|>\\r\\n      <RepositoryId @model={{this.model.repository}} @provider={{this.model.provider}} @form={{form}} />\\r\\n      \\r\\n      <form.element @controlType=\\\"power-select\\\" id=\\\"client-type\\\" class=\\\"form-group\\\" @label=\\\"Type\\\" @value={{this.clientType}} @options={{this.clientTypes}} @optionLabelPath=\\\"label\\\" as |el|>\\r\\n        <el.control @onChange={{action \\\"selectClientTypeAction\\\"}} @search={{action \\\"searchClientTypeAction\\\"}} @placeholder=\\\"Select Client Type\\\" @searchPlaceholder=\\\"Type to search...\\\" @searchEnabled={{true}} />\\r\\n      {{#if (eq this.model.repository.clientType \\\"igsnCatalog\\\")}}\\r\\n        <div class=\\\"help-block help-block-fragment\\\" data-igsn-catalog-help>This repository will only be able to mint IGSN IDs.</div>\\r\\n      {{/if}}\\r\\n      </form.element>\\r\\n\\r\\n      {{#if (can \\\"create provider\\\")}}\\r\\n        <form.element @controlType=\\\"text\\\" id=\\\"salesforce-id\\\" class=\\\"form-group\\\" @label=\\\"Salesforce ID\\\" @property=\\\"salesforceId\\\" @helpText=\\\"The 18 digit ID in Salesforce.\\\" />\\r\\n        <form.element @controlType=\\\"text\\\" id=\\\"analytics-tracking-id\\\" class=\\\"form-group\\\" @label=\\\"Analytics Tracking ID (optional)\\\" @property=\\\"analyticsTrackingId\\\" @helpText=\\\"The Analytics Tracking ID used to generate usage reports.\\\" />\\r\\n      {{/if}}\\r\\n\\r\\n      {{#if (can \\\"token provider\\\")}}\\r\\n        <form.element @controlType=\\\"text\\\" id=\\\"globus-uuid\\\" class=\\\"form-group\\\" @label=\\\"Globus UUID (optional)\\\" @property=\\\"globusUuid\\\" @helpText=\\\"The Globus UUID used for token authentication.\\\" />\\r\\n      {{/if}}\\r\\n\\r\\n      {{#if (eq this.model.repository.clientType \\\"periodical\\\")}}\\r\\n        <RepositoryIssn @model={{this.model.repository}} @fragment={{this.model.repository.issn}} @form={{form}} />\\r\\n      {{/if}}\\r\\n\\r\\n      <form.element @controlType=\\\"text\\\" id=\\\"name\\\" class=\\\"form-group\\\" @label=\\\"Repository Name\\\" @property=\\\"name\\\" @useIcons={{false}} />\\r\\n      <form.element @controlType=\\\"text\\\" id=\\\"alternate-name\\\" class=\\\"form-group\\\" @label=\\\"Repository Alternate Name (optional)\\\" @property=\\\"alternateName\\\" />\\r\\n      <form.element @controlType=\\\"email\\\" id=\\\"system-email\\\" class=\\\"form-group\\\" @label=\\\"System Email\\\" @property=\\\"systemEmail\\\" @helpText=\\\"This is the email used for sending password reset requests and similar system notifications.\\\" @useIcons={{false}} />\\r\\n\\r\\n      <div id=\\\"service-contact\\\" class=\\\"form-group\\\">\\r\\n        <label class=\\\"control-label col-md-3\\\">Service Contact (optional)</label>\\r\\n        <div class=\\\"col-md-9\\\">\\r\\n          <div>\\r\\n            <label for=\\\"givenName\\\" class=\\\"subtitle\\\">Given Name (optional)</label>\\r\\n            <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"service-contact-given-name\\\" @value={{this.model.repository.serviceContact.givenName}} required={{false}} />\\r\\n          </div>\\r\\n          <div>\\r\\n            <label for=\\\"familyName\\\" class=\\\"subtitle\\\">Family Name (optional)</label>\\r\\n            <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"service-contact-family-name\\\" @value={{this.model.repository.serviceContact.familyName}} required={{false}} />\\r\\n          </div>\\r\\n          <div class=\\\"{{if (v-get this.model.repository.serviceContact \\'isInvalid\\') \\'has-error has-feedback\\'}}\\\">\\r\\n            <label for=\\\"email\\\" class=\\\"subtitle control-label\\\">Email (optional)</label>\\r\\n            <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"service-contact-email\\\" @value={{this.model.repository.serviceContact.email}} required={{false}} />\\r\\n            {{#if (v-get this.model.repository.serviceContact \\'isInvalid\\')}}\\r\\n              <div class=\\\"help-block help-block-fragment\\\" data-test-service-contact-email-help>{{v-get this.model.repository.serviceContact \\'message\\'}}</div>\\r\\n            {{/if}}\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n\\r\\n      <form.element @controlType=\\\"textarea\\\" id=\\\"description\\\" class=\\\"form-group\\\" @label=\\\"Description (optional)\\\" @property=\\\"description\\\" @helpText=\\\"Description of the repository. Please use markdown for formatting.\\\" as |el| >\\r\\n        <el.control rows=\\\"10\\\" />\\r\\n      </form.element>\\r\\n      <form.element @controlType=\\\"text\\\" id=\\\"url\\\" class=\\\"form-group\\\" @label=\\\"URL (optional)\\\" @property=\\\"url\\\" @helpText=\\\"The homepage of the repository.\\\" />\\r\\n\\r\\n      <div class=\\\"form-group\\\" id=\\\"language\\\">\\r\\n        <label class=\\\"control-label col-md-3\\\">Language (optional)</label>\\r\\n        <div class=\\\"col-md-9\\\">\\r\\n          {{#if (gt this.model.repository.language.length 0)}}\\r\\n            {{#each this.model.repository.language as |language index|}}\\r\\n              <RepositoryLanguage @model={{this.model.repository}} @language={{language}} @form={{form}} @index={{index}} />\\r\\n            {{/each}}\\r\\n          {{/if}}\\r\\n          {{#if (lte this.model.repository.language.length 2)}}\\r\\n            <BsButton class=\\\"btn-sm add-language\\\" @outline={{true}} @onClick={{action \\\"addLanguageAction\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add Language</BsButton>\\r\\n          {{/if}}\\r\\n        </div>\\r\\n      </div>\\r\\n      <form.element id=\\\"software\\\" class=\\\"form-group required-label {{if (and this.isSoftwareFieldActive (v-get this.model.repository \\'software\\' \\'isInvalid\\')) \\'has-error\\'}}\\\" @controlType=\\\"power-select\\\" @label=\\\"Software\\\" @property=\\\"software\\\" @options={{this.softwares}} @destination={{this.software}} @helpText=\\\"The name of the software that is used to run the repository. Select \\'Other\\' if your repository software is not listed.\\\" as |el|>\\r\\n        <el.control {{on \\\"click\\\" this.activateSoftwareField}} @onChange={{action \\\"selectSoftwareAction\\\"}} @search={{action \\\"searchSoftwareAction\\\"}} @placeholder=\\\"Select Software\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @searchEnabled={{true}} as |item|>\\r\\n          {{item}}\\r\\n        </el.control>\\r\\n      </form.element>\\r\\n      <form.element @controlType=\\\"textarea\\\" id=\\\"domains\\\" class=\\\"form-group\\\" @label=\\\"Domains\\\" @property=\\\"domains\\\">\\r\\n        <Input @type=\\\"textarea\\\" class=\\\"form-control\\\" @value={{this.model.repository.domains}} />\\r\\n        <div class=\\\"form-text\\\">\\r\\n          <div>Define which domains or subdomains can be used for DOI URLs in the repository.</div>\\r\\n          <div>Use <code>*</code> to allow all domains, specify an exact domain (e.g., <code>example.org</code> or <code>www.example.org</code>), or use <code>*.</code> before a domain to allow only its subdomains (e.g., <code>*.example.org</code>). You can also separate multiple entries with commas (e.g., <code>example.org,*.example.org,www.secondexample.org</code>). <a href=\\\"https://support.datacite.org/docs/update-repository-settings#domains\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">Learn more...</a></div>\\r\\n        </div>\\r\\n      </form.element>\\r\\n\\r\\n      {{#unless (eq this.model.repository.clientType \\\"periodical\\\")}}\\r\\n        <div class=\\\"form-group\\\" id=\\\"repository-type\\\">\\r\\n          <label class=\\\"control-label col-md-3\\\">Repository Type (optional)</label>\\r\\n          <div class=\\\"col-md-9\\\">\\r\\n            {{#if (gt this.model.repository.repositoryType.length 0)}}\\r\\n              {{#each this.model.repository.repositoryType as |repositoryType index|}}\\r\\n                <RepositoryRepositoryType @model={{this.model.repository}} @repositoryType={{repositoryType}} @form={{form}} @index={{index}} />\\r\\n              {{/each}}\\r\\n            {{/if}}\\r\\n            {{#if (lte this.model.repository.repositoryType.length 2)}}\\r\\n              <BsButton class=\\\"btn-sm add-repositoryType\\\" @outline={{true}} @onClick={{action \\\"addRepositoryTypeAction\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add Repository Type</BsButton>\\r\\n            {{/if}}\\r\\n          </div>\\r\\n        </div>\\r\\n\\r\\n        {{#if this.model.repository.isDisciplinary }}\\r\\n          <DoiSubjects @model={{this.model.repository}} @form={{form}} />\\r\\n        {{/if}}\\r\\n\\r\\n        <div class=\\\"form-group\\\" id=\\\"certificate\\\">\\r\\n          <label class=\\\"control-label col-md-3\\\">Certificate (optional)</label>\\r\\n          <div class=\\\"col-md-9\\\">\\r\\n            {{#if (gt this.model.repository.certificate.length 0)}}\\r\\n              {{#each this.model.repository.certificate as |certificate index|}}\\r\\n                <RepositoryCertificate @model={{this.model.repository}} @certificate={{certificate}} @form={{form}} @index={{index}} />\\r\\n              {{/each}}\\r\\n            {{/if}}\\r\\n            {{#if (lte this.model.repository.certificate.length 2)}}\\r\\n              <BsButton class=\\\"btn-sm add-certificate\\\" @outline={{true}} @onClick={{action \\\"addCertificateAction\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add Certificate</BsButton>\\r\\n            {{/if}}\\r\\n          </div>\\r\\n        </div>\\r\\n      {{/unless}}\\r\\n\\r\\n      <form.element @controlType=\\\"checkbox\\\" id=\\\"is-active\\\" class=\\\"form-group\\\" @label=\\\"Account is active\\\" @property=\\\"isActive\\\" @helpText=\\\"This account can register and update DOIs\\\" as |el| >\\r\\n        <el.control id=\\\"is-active-field\\\" />\\r\\n      </form.element>\\r\\n\\r\\n      <div class=\\\"col-md-offset-3\\\">\\r\\n        <BsAlert @dismissible={{false}} class=\\\"opt-in\\\" @type=\\\"warning\\\">\\r\\n          The contacts entered may receive notifications about administration, webinars, product testing,\\r\\n          or news that will impact the use of DataCite services and/or membership. Individuals may remove\\r\\n          themselves from mailings by following the unsubscribe link provided in every DataCite email.\\r\\n          For information about our privacy practices and commitment to protecting your privacy, please\\r\\n          review our <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"PRIVACY_POLICY_URL\\\" }}>Privacy Policy</a>.\\r\\n        </BsAlert>\\r\\n      </div>\\r\\n\\r\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\r\\n        {{#if (is-empty (repository-form-errors this.model.repository))}}\\r\\n          <button type=\\\"submit\\\" id=\\\"add-repository\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{false}}>Add Repository</button>\\r\\n        {{else}}\\r\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\r\\n            To save this repository, first resolve the errors with these fields: {{repository-form-errors this.model.repository}}.\\r\\n          </BsAlert>\\r\\n\\r\\n          <button type=\\\"submit\\\" id=\\\"add-repository\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{true}}>Add Repository</button>\\r\\n        {{/if}}\\r\\n\\r\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\r\\n      </div>\\r\\n\\r\\n    </BsForm>\\r\\n  </div>\\r\\n</div>\\r\\n', { moduleName: 'bracco/templates/providers/show/repositories/new.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"row\\\">\\n  <div class=\\\"col-md-9\\\">\\n    {{#each this.flashMessages.queue as |flash|}}\\n      <FlashMessage @flash={{flash}} />\\n    {{/each}}\\n  </div>\\n</div>\\n\\n<div class=\\\"row\\\">\\n  <div class=\\\"col-md-3\\\">\\n    {{#if (can \\'update provider\\' this.model)}}\\n      <div class=\\\"panel facets\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"btn-toolbar\\\">\\n            <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n              <LinkTo\\n                @route=\\\"providers.show.change\\\"\\n                @model={{this.model.id}}\\n                class=\\\"btn btn-warning\\\"\\n                id=\\\"set-password-provider\\\"\\n              >\\n                <i class=\\\"fas fa-key\\\"></i>\\n                Set Password\\n              </LinkTo>\\n              <LinkTo\\n                @route=\\\"providers.show.edit\\\"\\n                @model={{this.model.id}}\\n                class=\\\"btn btn-warning\\\"\\n                id=\\\"edit-provider\\\"\\n              >\\n                <i class=\\\"fas fa-pencil-alt\\\"></i>\\n                Update\\n                {{if\\n                  (eq this.model.memberType \\'consortium_organization\\')\\n                  \\'Organization\\'\\n                  \\'Member\\'\\n                }}\\n              </LinkTo>\\n              {{#if (and (not this.admin) (can \\'delete provider\\' this.model))}}\\n                <LinkTo\\n                  @route=\\\"providers.show.delete\\\"\\n                  @model={{this.model.id}}\\n                  class=\\\"btn btn-warning\\\"\\n                  id=\\\"delete-provider\\\"\\n                >\\n                  <i class=\\\"fas fa-trash\\\"></i>\\n                  Delete\\n                  {{if\\n                    (eq this.model.memberType \\'consortium_organization\\')\\n                    \\'Organization\\'\\n                    \\'Member\\'\\n                  }}\\n                </LinkTo>\\n              {{/if}}\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    {{/if}}\\n    <RepositorySidebar @model={{this.model}} />\\n  </div>\\n  <div class=\\\"col-md-9\\\">\\n    <h3 class=\\\"member-results\\\">\\n      Organization Information\\n    </h3>\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        {{#unless this.admin}}\\n          <h5>\\n            Member ID\\n          </h5>\\n          {{this.model.symbol}}\\n        {{/unless}}\\n        {{#if this.model.rorId}}\\n          <h5>\\n            ROR ID\\n          </h5>\\n          <a href=\\\"{{this.model.rorId}}\\\">\\n            {{this.model.rorId}}\\n          </a>\\n        {{/if}}\\n        {{#if (and (can \\'create provider\\') this.model.salesforceId)}}\\n          <h5>\\n            Salesforce ID\\n          </h5>\\n          {{this.model.salesforceId}}\\n        {{/if}}\\n        {{#if (and (can \\'token provider\\') this.model.globusUuid)}}\\n          <h5>\\n            Globus UUID\\n          </h5>\\n          {{this.model.globusUuid}}\\n        {{/if}}\\n        {{#unless this.admin}}\\n          <h5>\\n            Member Type\\n          </h5>\\n          {{titleize (humanize this.model.memberType)}}\\n          <h5>\\n            Tax Status\\n          </h5>\\n          {{titleize this.model.nonProfitStatus}}\\n          <h5>\\n            Organization Name\\n          </h5>\\n          {{this.model.name}}\\n        {{/unless}}\\n        {{#if (eq this.model.memberType \\'consortium_organization\\')}}\\n          <h5>\\n            Consortium\\n          </h5>\\n          {{this.model.consortium.name}}\\n        {{/if}}\\n        <h5>\\n          System Email\\n        </h5>\\n        <a href=\\\"mailto:{{this.model.systemEmail}}\\\">\\n          {{this.model.systemEmail}}\\n        </a>\\n        {{#if this.model.groupEmail}}\\n          <h5>\\n            Group Email\\n          </h5>\\n          <a href=\\\"mailto:{{this.model.groupEmail}}\\\">\\n            {{this.model.groupEmail}}\\n          </a>\\n        {{/if}}\\n        {{#if this.model.website}}\\n          <h5>\\n            Website\\n          </h5>\\n          <a href=\\\"{{this.model.website}}\\\">\\n            {{this.model.website}}\\n          </a>\\n        {{/if}}\\n        {{#if this.model.country}}\\n          <h5>\\n            Country\\n          </h5>\\n          {{this.model.country.name}}\\n        {{/if}}\\n        {{#if this.model.description}}\\n          <h5>\\n            Description\\n          </h5>\\n          <MarkdownToHtml @markdown={{this.model.description}} />\\n        {{/if}}\\n        {{#if this.model.organizationType}}\\n          <h5>\\n            Organization Type\\n          </h5>\\n          {{titleize (humanize (underscore this.model.organizationType))}}\\n        {{/if}}\\n        {{#if this.model.focusArea}}\\n          <h5>\\n            Focus Area\\n          </h5>\\n          {{titleize (humanize (underscore this.model.focusArea))}}\\n        {{/if}}\\n        {{#if this.model.joined}}\\n          <h5>\\n            Date joined\\n          </h5>\\n          {{format-time this.model.joined year=\\'numeric\\' month=\\'long\\' day=\\'numeric\\'}}\\n        {{/if}}\\n        {{#unless this.model.hasPassword}}\\n          <h5>\\n            Password\\n          </h5>\\n          <span class=\\\"small icon-warning\\\">\\n            has not been set\\n          </span>\\n        {{/unless}}\\n      </div>\\n    </div>\\n    {{#if (not-eq this.model.memberType \\'developer\\')}}\\n      <h3 class=\\\"member-results\\\">\\n        Contact Information\\n      </h3>\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          {{#if (is-empty this.model.contacts)}}\\n            <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n              There are no contacts in your contacts list. Please\\n              <LinkTo\\n                @route=\\\"providers.show.contacts.new\\\"\\n                @model={{this.model.id}}\\n                id=\\\"add-contact\\\"\\n              >\\n                add at least one contact\\n              </LinkTo>\\n              .\\n            </BsAlert>\\n          {{else}}\\n            {{#if (not-eq this.model.memberType \\'consortium_organization\\')}}\\n              <h5>\\n                Voting Representative\\n              </h5>\\n              <div cy-data=\\\"voting\\\">\\n                {{#if this.model.votingContact.email}}\\n                  {{format-contact this.model.votingContact}}\\n                {{else}}\\n                  <span class=\\\"small icon-warning\\\">\\n                    Please provide this information.\\n                  </span>\\n                {{/if}}\\n              </div>\\n            {{/if}}\\n            <h5>\\n              Service Contact\\n            </h5>\\n            <div cy-data=\\\"service\\\">\\n              {{#if this.model.serviceContact.email}}\\n                {{format-contact this.model.serviceContact}}\\n              {{else}}\\n                <span class=\\\"small icon-warning\\\">\\n                  Please provide this information.\\n                </span>\\n              {{/if}}\\n            </div>\\n            {{#if this.model.secondaryServiceContact.email}}\\n              <h5>\\n                Secondary Service Contact\\n              </h5>\\n              <div cy-data=\\\"secondary-service\\\">\\n                {{format-contact this.model.secondaryServiceContact}}\\n              </div>\\n            {{/if}}\\n            {{#if this.model.technicalContact.email}}\\n              <h5>\\n                Technical Contact\\n              </h5>\\n              <div cy-data=\\\"technical\\\">\\n                {{format-contact this.model.technicalContact}}\\n              </div>\\n            {{/if}}\\n            {{#if this.model.secondaryTechnicalContact.email}}\\n              <h5>\\n                Secondary Technical Contact\\n              </h5>\\n              <div cy-data=\\\"secondary-technical\\\">\\n                {{format-contact this.model.secondaryTechnicalContact}}\\n              </div>\\n            {{/if}}\\n            {{#if (not-eq this.model.memberType \\'consortium_organization\\')}}\\n              <h5>\\n                Billing Contact\\n              </h5>\\n              <div cy-data=\\\"billing\\\">\\n                {{#if this.model.billingContact.email}}\\n                  {{format-contact this.model.billingContact}}\\n                {{else}}\\n                  <span class=\\\"small icon-warning\\\">\\n                    Please provide this information.\\n                  </span>\\n                {{/if}}\\n              </div>\\n              {{#if this.model.secondaryBillingContact.email}}\\n                <h5>\\n                  Secondary Billing Contact\\n                </h5>\\n                <div cy-data=\\\"secondary-billing\\\">\\n                  {{format-contact this.model.secondaryBillingContact}}\\n                </div>\\n              {{/if}}\\n            {{/if}}\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/if}}\\n    {{#if\\n      (and\\n        (not-eq this.model.memberType \\'consortium_organization\\')\\n        (not-eq this.model.memberType \\'developer\\')\\n      )\\n    }}\\n      <h3 class=\\\"member-results\\\">\\n        Billing Information\\n      </h3>\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          {{#if this.model.formattedBillingInformation}}\\n            {{#if this.model.billingContact.familyName}}\\n              {{this.model.billingContact.givenName}}\\n              {{this.model.billingContact.familyName}}\\n              <br />\\n            {{/if}}\\n            {{#if this.model.billingInformation.department}}\\n              {{this.model.billingInformation.department}}<br />\\n            {{/if}}\\n            {{#if this.model.billingInformation.organization}}\\n              {{this.model.billingInformation.organization}}<br />\\n            {{else}}\\n              {{this.model.name}}<br />\\n            {{/if}}\\n            {{#if this.model.formattedBillingInformation}}\\n              {{#each this.model.formattedBillingInformation as |line|}}\\n                {{line}}<br />\\n              {{/each}}\\n            {{/if}}\\n          {{else}}\\n            <span class=\\\"small icon-warning\\\">\\n              Please provide this information.\\n            </span>\\n          {{/if}}\\n        </div>\\n      </div>\\n    {{/if}}\\n  </div>\\n</div>', { moduleName: 'bracco/templates/providers/show/settings.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}\\n', { moduleName: 'bracco/templates/repositories.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 'bracco/templates/repositories/dois.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"read index\\\")}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n    {{!-- {{#if (can \\\"read messages\\\" model)}} --}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\" style=\\\"margin-left: 10px; margin-right: 10px;\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n    {{!-- {{/if}} --}}\\n    <RepositoryList @model={{this.model}} @link=\\\"repositories\\\" @searchable={{true}} />\\n  </div>\\n\\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/repositories/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{yield}}', { moduleName: 'bracco/templates/repositories/prefixes.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('\\n{{#if (can \\'read repository\\' this.model provider=this.model.provider)}}\\n  <ApplicationHeader @default={{true}} />\\n  <div class=\\\"container-fluid\\\">\\n    {{#if (can \\'read provider\\' this.model.provider)}}\\n      <ol class=\\\"breadcrumb\\\">\\n        {{#if (can \\'read index\\')}}\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo @route=\\\"index\\\">\\n              DataCite\\n            </LinkTo>\\n          </li>\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo @route=\\\"providers\\\">\\n              Members\\n            </LinkTo>\\n          </li>\\n        {{/if}}\\n        {{#if\\n          (and\\n            (can \\'read provider\\' this.model.provider.consortium)\\n            (eq this.model.provider.memberType \\'consortium_organization\\')\\n          )\\n        }}\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo\\n              @route=\\\"providers.show.index\\\"\\n              @model={{this.model.provider.consortium.id}}\\n            >\\n              {{this.model.provider.consortium.name}}\\n            </LinkTo>\\n          </li>\\n          <li class=\\\"breadcrumb-item\\\">\\n            <LinkTo\\n              @route=\\\"providers.show.organizations\\\"\\n              @model={{this.model.provider.consortium.id}}\\n            >\\n              Consortium Organizations\\n            </LinkTo>\\n          </li>\\n        {{/if}}\\n        <li class=\\\"breadcrumb-item\\\">\\n          <LinkTo @route=\\\"providers.show\\\" @model={{this.model.provider.id}}>\\n            {{this.model.provider.name}}\\n          </LinkTo>\\n        </li>\\n        <li class=\\\"breadcrumb-item\\\">\\n          <LinkTo\\n            @route=\\\"providers.show.repositories\\\"\\n            @model={{this.model.provider.id}}\\n          >\\n            Repositories\\n          </LinkTo>\\n        </li>\\n      </ol>\\n    {{/if}}\\n    <div id=\\\"show\\\">\\n      <h2 class=\\\"work\\\">\\n        {{this.model.name}}\\n        {{#unless this.model.isActive}}\\n          <span class=\\\"label label-warning-inv\\\">\\n            Inactive\\n          </span>\\n        {{/unless}}\\n      </h2>\\n      <ShowRepositoryTabs />\\n    </div>\\n    {{outlet}}\\n  </div>\\n{{else}}\\n  <ApplicationHeader /><LandingPage />\\n{{/if}}', { moduleName: 'bracco/templates/repositories/show.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('  <div class=\\\"panel panel-transparent\\\">\\n    <div class=\\\"panel-body\\\">\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <h3 class=\\\"edit\\\">Set Password</h3>\\n      </div>\\n\\n      <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\"}} @submitOnEnter={{true}} as |form|>\\n        <form.element @controlType=\\\"password\\\" id=\\\"password-input\\\" class=\\\"form-group\\\" @property=\\\"passwordInput\\\" @label=\\\"New Password\\\" as |el| >\\n          <el.control id=\\\"password-input-field\\\" /><i class=\\\"bi bi-eye-slash\\\" id=\\\"togglePassword\\\" {{action \\'togglePasswordAction\\'}}></i>\\n        </form.element>\\n        <form.element @controlType=\\\"password\\\"id=\\\"confirm-password-input\\\" class=\\\"form-group\\\" @property=\\\"confirmPasswordInput\\\" @label=\\\"Confirm Password\\\" as |el| >\\n          <el.control id=\\\"confirm-password-input-field\\\" /><i class=\\\"bi bi-eye-slash\\\" id=\\\"toggleConfirmPassword\\\" {{action \\'toggleConfirmPasswordAction\\'}}></i>\\n        </form.element>\\n        <div class=\\\"col-md-9 col-md-offset-3\\\">\\n          <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{v-get this.model \\'confirmPasswordInput\\' \\'isInvalid\\'}}>Set Password</button>\\n          <button class=\\\"btn btn-sm\\\" id=\\\"cancel\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\n        </div>\\n      </BsForm>\\n    </div>\\n  </div>\\n  ', { moduleName: 'bracco/templates/repositories/show/change.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\">\\n      {{#each this.flashMessages.queue as |flash|}}\\n        <FlashMessage @flash={{flash}} />\\n      {{/each}}\\n      {{#if (gt this.model.meta.doiCount 0)}}\\n        <div class=\\\"alert alert-danger\\\" role=\\\"alert\\\">\\n          You need to transfer all DOIs to another repository before you can delete the {{uppercase this.model.id}} repository.\\n        </div>\\n        <div class=\\\"pseudo-footer\\\">\\n          <div class=\\\"btn-toolbar btn-sm pull-right\\\">\\n            <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\n            <LinkTo @route=\\\"repositories.show.transfer\\\" @model={{this.model.id}} class=\\\"btn btn-sm\\\"><i class=\\\"fas fa-arrow-circle-right\\\"></i>Transfer DOIs</LinkTo>\\n          </div>\\n          <div class=\\\"clearfix\\\"/>\\n        </div>\\n      {{else}}\\n        <BsForm @formLayout=\\\"vertical\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\"}} @submitOnEnter={{true}} as |form|>\\n          <div class=\\\"form-group\\\">\\n            <label class=\\\"control-label\\\">Are you sure you want to delete the {{uppercase this.model.id}} repository? This action cannot be undone.</label>\\n            <form.element @controlType=\\\"text\\\" id=\\\"confirm-symbol\\\" @property=\\\"confirmSymbol\\\" @showValidationOn=\\\"input\\\" @helpText=\\\"Please add the Repository ID to delete.\\\"  as |el| >\\n              <el.control id=\\\"confirm-symbol-field\\\" autofocus={{true}} />\\n            </form.element>\\n          </div>\\n\\n          <div class=\\\"pseudo-footer\\\">\\n            <div class=\\\"btn-toolbar pull-right\\\">\\n              <button id=\\\"cancel\\\" class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n              <button disabled={{v-get this.model \\'confirmSymbol\\' \\'isInvalid\\'}} id=\\\"delete\\\" class=\\\"btn btn-sm btn-fill\\\" type=\\\"button\\\" {{action \\\"submitAction\\\"}}>Delete</button>\\n            </div>\\n            <div class=\\\"clearfix\\\"/>\\n          </div>\\n        </BsForm>\\n      {{/if}}\\n    </div>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/repositories/show/delete.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model}}\\n  <DoiList\\n    @model={{this.model.dois}}\\n    @repository={{this.model.repository}}\\n    @link=\\\"repositories.show.dois\\\"\\n    @searchable={{true}}\\n    @page={{this.model.page}}\\n    @dashboardId={{this.model.repository.symbol}}\\n  />\\n{{else}}\\n  <div class=\\\"col-md-9 col-md-offset-3\\\">\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      An error occured fetching DOIs. Please contact DataCite Support.\\n    </BsAlert>\\n  </div>\\n{{/if}}', { moduleName: 'bracco/templates/repositories/show/dois/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\"  id=\\\"doi-new-form\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3 form-help-header\\\">\\n      {{#each this.flashMessages.queue as |flash|}}\\n        <FlashMessage @flash={{flash}} />\\n      {{/each}}\\n\\n      <h3 class=\\\"help-header\\\">Create DOI (Form)</h3>\\n      <div class=\\\"label-vertical\\\">\\n        More information about DOI registration via form can be found on our <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/fabrica-create-doi-form\\\">Support Website</a>. Required properties are marked with a red asterisk.\\n      </div>\\n    </div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model.doi}} @onSubmit={{action \\\"submitAction\\\" this.model.doi}} as |form|>\\n      <h3 class=\\\"member-results\\\">Required Properties</h3>\\n\\n      <DoiDoi @model={{this.model.doi}} @repository={{this.model.repository}} @form={{form}} />\\n\\n      <div class=\\\"form-group required-nested-label doi-url-field {{if (v-get this.model.doi \\'url\\' \\'isInvalid\\') \\'has-error\\' \\'has-feedback\\'}}\\\">\\n        <label class=\\\"control-label col-md-3\\\">URL</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The location of the landing page with more information about the resource.</div>\\n          <form.element id=\\\"url\\\" class=\\\"form-group\\\" @controlType=\\\"text\\\" @property=\\\"url\\\" @helpText=\\\"Should be a https URL — within the allowed domain(s) of your repository if domain restrictions are enabled in the repository settings. Http and ftp are also supported. For example http://example.org\\\" as |el| >\\n            <el.control id=\\\"url-field\\\" placeholder=\\\"URL\\\" />\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiCreators @model={{this.model.doi}} @form={{form}} />\\n      <DoiTitles @model={{this.model.doi}} @form={{form}} />\\n\\n      <DoiPublisher @model={{this.model.doi}} @form={{form}} @fragment={{this.model.doi.publisher}} />\\n\\n      <div id=\\\"publication-year-form-group\\\" class=\\\"form-group required-nested-label {{if (v-get this.model.doi \\'publicationYear\\' \\'isInvalid\\') \\'has-error\\' \\'has-feedback\\'}}\\\">\\n        <label class=\\\"control-label col-md-3\\\">Publication Year</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The year when the resource was or will be made publicly available.</div>\\n          <form.element id=\\\"publication-year\\\" class=\\\"form-group\\\" @controlType=\\\"text\\\" @property=\\\"publicationYear\\\" @helpText=\\\"Must be a year between 1000 and {{current-year this.model.doi.maxMintFutureOffset}}.\\\"  as |el| >\\n            <el.control id=\\\"publication-year-field\\\" placeholder=\\\"Publication Year\\\" />\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiTypes @class=\\\"required-nested-label\\\" @model={{this.model.doi}} @form={{form}} />\\n\\n      <h3 class=\\\"member-results\\\">Recommended Properties</h3>\\n\\n      <DoiSubjects @model={{this.model.doi}} @form={{form}} />\\n      <DoiContributors @model={{this.model.doi}} @form={{form}} />\\n      <DoiDates @model={{this.model.doi}} @form={{form}} />\\n      <DoiRelatedIdentifiers @model={{this.model.doi}} @form={{form}} />\\n\\n      <DoiDescriptions @model={{this.model.doi}} @form={{form}} />\\n\\n      <DoiGeoLocations @model={{this.model.doi}} @form={{form}} />\\n\\n      <h3 class=\\\"member-results\\\">Optional Properties</h3>\\n\\n      <DoiLanguage @model={{this.model.doi}} @form={{form}} />\\n      <DoiAlternateIdentifiers @model={{this.model.doi}} @form={{form}} />\\n      <DoiRightsList @model={{this.model.doi}} @form={{form}} @spdx={{this.spdx}} />\\n      <DoiSizes @model={{this.model.doi}} @form={{form}} />\\n      <DoiFormats @model={{this.model.doi}} @form={{form}} />\\n\\n      <div class=\\\"form-group\\\">\\n        <label class=\\\"control-label col-md-3\\\">Version</label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">The version number of the resource.</div>\\n          <form.element id=\\\"version\\\" @controlType=\\\"text\\\"  @property=\\\"version\\\" data-test-version as |el| >\\n            <el.control placeholder=\\\"Version\\\" id=\\\"version-field\\\"/>\\n          </form.element>\\n        </div>\\n      </div>\\n\\n      <DoiFundingReferences @model={{this.model.doi}} @form={{form}} />\\n\\n      <DoiRelatedItems @model={{this.model.doi}} @form={{form}} />\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#if (is-empty (doi-form-errors this.model.doi))}}\\n          <button type=\\\"submit\\\" id=\\\"doi-create\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{false}}>Create DOI</button>\\n        {{else}}\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n            To save this DOI, first resolve the errors with these properties: {{doi-form-errors this.model.doi}}.\\n          </BsAlert>\\n\\n          <button type=\\\"submit\\\" id=\\\"doi-create\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{true}}>Create DOI</button>\\n        {{/if}}\\n\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n      </div>\\n    </BsForm>\\n\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          {{#if (eq flash.componentName \\\"doi-error\\\") }}\\n            <FlashMessage @flash={{flash}} />\\n          {{/if}}\\n        {{/each}}\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/repositories/show/dois/new.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\" id=\\\"doi-create-form-file-upload\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3 form-help-header\\\">\\n      <h3 class=\\\"help-header\\\">\\n        Create DOI (File Upload)\\n      </h3>\\n      <div class=\\\"label-vertical\\\">\\n        More information about DOI registration via file upload can be found on our\\n        <a\\n          target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://support.datacite.org/docs/fabrica-create-doi-file-upload\\\"\\n        >\\n          Support Website\\n        </a>\\n        .\\n      </div>\\n    </div>\\n    <BsForm\\n      @formLayout=\\\"horizontal\\\"\\n      class=\\\"form-horizontal\\\"\\n      @horizontalLabelGridClass=\\\"col-md-3\\\"\\n      @model={{this.model.doi}}\\n      @onSubmit={{action \\'submitAction\\' this.model.doi}} as |form|\\n    >\\n      <DoiDoi\\n        @model={{this.model.doi}}\\n        @repository={{this.model.repository}}\\n        @form={{form}}\\n      />\\n      <div\\n        class=\\\"form-group required-nested-label\\n          {{if (v-get this.model.doi \\'url\\' \\'isInvalid\\') \\'has-error\\' \\'has-feedback\\'}}\\\"\\n      >\\n        <label class=\\\"control-label col-md-3\\\">\\n          URL\\n        </label>\\n        <div class=\\\"col-md-9 input-fragment\\\">\\n          <div class=\\\"label-vertical\\\">\\n            The location of the landing page with more information about the resource.\\n          </div>\\n          <form.element\\n            id=\\\"url\\\"\\n            @controlType=\\\"text\\\"\\n            @property=\\\"url\\\"\\n            @helpText=\\\"Should be a https URL — within the allowed domain(s) of your repository if domain restrictions are enabled in the repository settings. Http and ftp are also supported. For example http://example.org\\\" as |el|\\n          >\\n            <el.control id=\\\"url-field\\\" placeholder=\\\"URL\\\" />\\n          </form.element>\\n        </div>\\n      </div>\\n      <DoiUpload @model={{this.model.doi}} @form={{form}} />\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        {{#if (is-empty (doi-form-errors this.model.doi))}}\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"doi-create\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{false}}\\n          >\\n            Create DOI\\n          </button>\\n        {{else}}\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\n            To save this DOI, first resolve the errors with these properties:\\n            {{doi-form-errors this.model.doi}}\\n            .\\n          </BsAlert>\\n          <button\\n            type=\\\"submit\\\"\\n            id=\\\"doi-create\\\"\\n            class=\\\"btn btn-sm btn-fill\\\"\\n            disabled={{true}}\\n          >\\n            Create DOI\\n          </button>\\n        {{/if}}\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\'cancelAction\\'}}>\\n          Cancel\\n        </button>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>', { moduleName: 'bracco/templates/repositories/show/dois/upload.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\" id=\\\"content-member\\\">\\r\\n  <div class=\\\"panel-body\\\">\\r\\n    <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Update {{if (eq this.currentUser.uid this.model.id) \\'Account\\' \\'Repository\\'}}</h3>\\r\\n      {{#each this.flashMessages.queue as |flash|}}\\r\\n        <FlashMessage @flash={{flash}} />\\r\\n      {{/each}}\\r\\n    </div>\\r\\n\\r\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model}} @onSubmit={{action \\\"submitAction\\\" this.model}} @submitOnEnter={{true}} as |form|>\\r\\n      <form.element @controlType=\\\"text\\\" id=\\\"repository-id\\\" class=\\\"form-group\\\" @label=\\\"Repository ID\\\" @property=\\\"symbol\\\" @helpText=\\\"The Repository ID is the unique identifier for each repository in DataCite and can\\'t be changed.\\\" as |el| >\\r\\n        <el.control disabled={{true}} />\\r\\n      </form.element>\\r\\n      <form.element @controlType=\\\"power-select\\\" id=\\\"client-type\\\" class=\\\"form-group\\\" @label=\\\"Type\\\" @value={{this.clientType}} @options={{this.clientTypes}} @optionLabelPath=\\\"label\\\" as |el|>\\r\\n        <el.control @onChange={{action \\\"selectClientTypeAction\\\"}} @search={{action \\\"searchClientTypeAction\\\"}} @placeholder=\\\"Select Client Type\\\" @searchPlaceholder=\\\"Type to search...\\\" @disabled={{if (eq this.model.clientType \\\"igsnCatalog\\\") true false}} @searchEnabled={{true}}/>\\r\\n        {{#if (eq this.model.clientType \\\"igsnCatalog\\\")}}\\r\\n          <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>IGSN ID Catalogs cannot be edited.</BsTooltip>\\r\\n        {{/if}}\\r\\n      </form.element>\\r\\n\\r\\n      {{#if (can \\\"create provider\\\")}}\\r\\n        <form.element @controlType=\\\"text\\\" id=\\\"salesforce-id\\\" class=\\\"form-group\\\" @label=\\\"Salesforce ID\\\" @property=\\\"salesforceId\\\" @helpText=\\\"The 18 digit ID in Salesforce.\\\" />\\r\\n        <form.element @controlType=\\\"text\\\" id=\\\"analytics-tracking-id\\\" class=\\\"form-group\\\" @label=\\\"Analytics Tracking ID (optional)\\\" @property=\\\"analyticsTrackingId\\\" @helpText=\\\"The Analytics Tracking ID used to generate usage reports.\\\" />\\r\\n      {{/if}}\\r\\n\\r\\n      {{#if (can \\\"token provider\\\")}}\\r\\n        <form.element @controlType=\\\"text\\\" id=\\\"globus-uuid\\\" class=\\\"form-group\\\" @label=\\\"Globus UUID (optional)\\\" @property=\\\"globusUuid\\\" @helpText=\\\"The Globus UUID used for token authentication.\\\" />\\r\\n      {{/if}}\\r\\n\\r\\n      {{#if (eq this.model.clientType \\\"periodical\\\")}}\\r\\n        <RepositoryIssn @model={{this.model}} @fragment={{this.model.issn}} @form={{form}} />\\r\\n      {{/if}}\\r\\n\\r\\n      <form.element @controlType=\\\"text\\\" id=\\\"name\\\" class=\\\"form-group\\\" @label=\\\"Repository Name\\\" @property=\\\"name\\\" as |el| ><el.control id=\\\"name-field\\\" /></form.element>\\r\\n      <form.element @controlType=\\\"text\\\" id=\\\"alternate-name\\\" class=\\\"form-group\\\" @label=\\\"Repository Alternate Name (optional)\\\" @property=\\\"alternateName\\\" />\\r\\n      <form.element @controlType=\\\"email\\\" id=\\\"system-email\\\" class=\\\"form-group\\\" @label=\\\"System Email\\\" @property=\\\"systemEmail\\\" @helpText=\\\"This is the email used for sending password reset requests and similar system notifications.\\\" />\\r\\n\\r\\n      <div class=\\\"form-group\\\">\\r\\n        <label class=\\\"control-label col-md-3\\\">Service Contact (optional)</label>\\r\\n        <div class=\\\"col-md-9\\\">\\r\\n          <div>\\r\\n            <label for=\\\"givenName\\\" class=\\\"subtitle\\\">Given Name (optional)</label>\\r\\n            <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"service-contact-given-name\\\" @value={{this.model.serviceContact.givenName}} required={{false}} />\\r\\n          </div>\\r\\n          <div>\\r\\n            <label for=\\\"familyName\\\" class=\\\"subtitle\\\">Family Name (optional)</label>\\r\\n            <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"service-contact-family-name\\\" @value={{this.model.serviceContact.familyName}} required={{false}} />\\r\\n          </div>\\r\\n          <div class=\\\"{{if (v-get this.model.serviceContact \\'isInvalid\\') \\'has-error has-feedback\\'}}\\\">\\r\\n            <label for=\\\"email\\\" class=\\\"subtitle control-label\\\">Email (optional)</label>\\r\\n            <Input @type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"service-contact-email\\\" @value={{this.model.serviceContact.email}} required={{false}} />\\r\\n            {{#if (v-get this.model.serviceContact \\'isInvalid\\')}}\\r\\n              <div class=\\\"help-block help-block-fragment\\\" data-test-service-contact-email-help>{{v-get this.model.serviceContact \\'message\\'}}</div>\\r\\n            {{/if}}\\r\\n          </div>\\r\\n        </div>\\r\\n      </div>\\r\\n\\r\\n      <form.element @controlType=\\\"textarea\\\" id=\\\"description\\\" class=\\\"form-group\\\" @label=\\\"Description (optional)\\\" @property=\\\"description\\\" @helpText=\\\"Description of the repository. Please use markdown for formatting.\\\" as |el| ><el.control rows=\\\"10\\\" /></form.element>\\r\\n      <form.element @controlType=\\\"text\\\" id=\\\"url\\\" class=\\\"form-group\\\" @label=\\\"URL (optional)\\\" @property=\\\"url\\\" @helpText=\\\"The homepage of the repository.\\\" />\\r\\n\\r\\n      <div class=\\\"form-group\\\" id=\\\"language\\\">\\r\\n        <label class=\\\"control-label col-md-3\\\">Language (optional)</label>\\r\\n        <div class=\\\"col-md-9\\\">\\r\\n          {{#if (gt this.model.language.length 0)}}\\r\\n            {{#each this.model.language as |language index|}}\\r\\n              <RepositoryLanguage @model={{this.model}} @language={{language}} @form={{form}} @index={{index}} />\\r\\n            {{/each}}\\r\\n          {{/if}}\\r\\n          {{#if (lte this.model.language.length 2)}}\\r\\n            <BsButton class=\\\"btn-sm add-language\\\" @outline={{true}} @onClick={{action \\\"addLanguageAction\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add Language</BsButton>\\r\\n          {{/if}}\\r\\n        </div>\\r\\n      </div>\\r\\n\\r\\n      <form.element @controlType=\\\"power-select\\\" id=\\\"software\\\" class=\\\"form-group required-label {{if (and this.isSoftwareFieldActive (v-get this.model \\'software\\' \\'isInvalid\\')) \\'has-error\\'}}\\\" @label=\\\"Software\\\"  @property=\\\"software\\\" @options={{this.softwares}} @destination={{this.software}} @helpText=\\\"The name of the software that is used to run the repository. Select \\'Other\\' if your repository software is not listed.\\\" as |el|>\\r\\n        <el.control {{on \\\"click\\\" this.activateSoftwareField}} @onChange={{action \\\"selectSoftwareAction\\\"}} @search={{action \\\"searchSoftwareAction\\\"}} @placeholder=\\\"Select Software\\\" @searchPlaceholder=\\\"Type to search...\\\" @allowClear={{true}} @searchEnabled={{true}} as |item|>\\r\\n          {{item}}\\r\\n        </el.control>\\r\\n      </form.element>\\r\\n      <form.element @controlType=\\\"textarea\\\" id=\\\"domains\\\" class=\\\"form-group\\\" @label=\\\"Domains\\\" @property=\\\"domains\\\">\\r\\n        <Input @type=\\\"textarea\\\" class=\\\"form-control\\\" @value={{this.model.domains}} />\\r\\n        <div class=\\\"form-text\\\">\\r\\n          <div>Define which domains or subdomains can be used for DOI URLs in the repository.</div>\\r\\n          <div>Use <code>*</code> to allow all domains, specify an exact domain (e.g., <code>example.org</code> or <code>www.example.org</code>), or use <code>*.</code> before a domain to allow only its subdomains (e.g., <code>*.example.org</code>). You can also separate multiple entries with commas (e.g., <code>example.org,*.example.org,www.secondexample.org</code>). <a href=\\\"https://support.datacite.org/docs/update-repository-settings#domains\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">Learn more...</a></div>\\r\\n        </div>\\r\\n      </form.element>\\r\\n\\r\\n      {{#unless (eq this.model.clientType \\\"periodical\\\")}}\\r\\n        <div class=\\\"form-group\\\" id=\\\"repository-type\\\">\\r\\n          <label class=\\\"control-label col-md-3\\\">Repository Type (optional)</label>\\r\\n          <div class=\\\"col-md-9\\\">\\r\\n            {{#if (gt this.model.repositoryType.length 0)}}\\r\\n              {{#each this.model.repositoryType as |repositoryType index|}}\\r\\n                <RepositoryRepositoryType @model={{this.model}} @repositoryType={{repositoryType}} @form={{form}} @index={{index}} />\\r\\n              {{/each}}\\r\\n            {{/if}}\\r\\n            {{#if (lte this.model.repositoryType.length 2)}}\\r\\n              <BsButton class=\\\"btn-sm add-repositoryType\\\" @outline={{true}} @onClick={{action \\\"addRepositoryTypeAction\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add Repository Type</BsButton>\\r\\n            {{/if}}\\r\\n          </div>\\r\\n        </div>\\r\\n\\r\\n\\r\\n        {{#if this.model.isDisciplinary }}\\r\\n        <RepositorySubjects @model={{this.model}} @form={{form}} />\\r\\n        {{/if}}\\r\\n\\r\\n        <div class=\\\"form-group\\\" id=\\\"certificate\\\">\\r\\n          <label class=\\\"control-label col-md-3\\\">Certificate (optional)</label>\\r\\n          <div class=\\\"col-md-9\\\">\\r\\n            {{#if (gt this.model.certificate.length 0)}}\\r\\n              {{#each this.model.certificate as |certificate index|}}\\r\\n                <RepositoryCertificate @model={{this.model}} @certificate={{certificate}} @form={{form}} @index={{index}} />\\r\\n              {{/each}}\\r\\n            {{/if}}\\r\\n            {{#if (lte this.model.certificate.length 2)}}\\r\\n              <BsButton class=\\\"btn-sm add-certificate\\\" @outline={{true}} @onClick={{action \\\"addCertificateAction\\\"}}><i class=\\\"fas fa-plus-circle\\\"></i> Add Certificate</BsButton>\\r\\n            {{/if}}\\r\\n          </div>\\r\\n        </div>\\r\\n      {{/unless}}\\r\\n\\r\\n      {{#if (can \\\"create repository\\\" this.model)}}\\r\\n        <form.element @controlType=\\\"checkbox\\\" id=\\\"is-active\\\" class=\\\"form-group\\\" @label=\\\"Account is active\\\" @property=\\\"isActive\\\" @helpText=\\\"This account can register and update DOIs\\\" as |el| >\\r\\n          <el.control id=\\\"is-active-field\\\" />\\r\\n        </form.element>\\r\\n      {{/if}}\\r\\n\\r\\n      <div class=\\\"col-md-offset-3\\\">\\r\\n        <BsAlert @dismissible={{false}} class=\\\"opt-in\\\" @type=\\\"warning\\\">\\r\\n          The contacts entered may receive notifications about administration, webinars, product testing,\\r\\n          or news that will impact the use of DataCite services and/or membership. Individuals may remove\\r\\n          themselves from mailings by following the unsubscribe link provided in every DataCite email.\\r\\n          For information about our privacy practices and commitment to protecting your privacy, please\\r\\n          review our <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"PRIVACY_POLICY_URL\\\" }}>Privacy Policy</a>.\\r\\n        </BsAlert>\\r\\n      </div>\\r\\n\\r\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\r\\n        {{#if (is-empty (repository-form-errors this.model))}}\\r\\n          <button type=\\\"submit\\\" id=\\\"update-repository\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{false}}>Update {{if (eq this.currentUser.uid this.model.id) \\'Account\\' \\'Repository\\'}}</button>\\r\\n        {{else}}\\r\\n          <BsAlert @dismissible={{false}} @type=\\\"danger\\\">\\r\\n            To save this repository, first resolve the errors with these fields: {{repository-form-errors this.model}}.\\r\\n          </BsAlert>\\r\\n\\r\\n          <button type=\\\"submit\\\" id=\\\"update-repository\\\" class=\\\"btn btn-sm btn-fill\\\" disabled={{true}}>Update {{if (eq this.currentUser.uid this.model.id) \\'Account\\' \\'Repository\\'}}</button>\\r\\n        {{/if}}\\r\\n\\r\\n        <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\" this.model}}>Cancel</button>\\r\\n      </div>\\r\\n    </BsForm>\\r\\n  </div>\\r\\n</div>\\r\\n', { moduleName: 'bracco/templates/repositories/show/edit.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"row\\\">\\n  <div data-test-left-sidebar class=\\\"col-md-3\\\">\\n    {{#if (and this.model.isActive (can \\'update repository\\' this.model) (or (can \\'create doi\\' this.model) (can \\'upload doi\\' this.model)) (not (gt this.model.meta.prefixCount 0)))}}\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n            Can\\'t create DOI without a prefix.\\n          </BsAlert>\\n        </div>\\n      </div>\\n    {{/if}}\\n\\n    {{#if this.model.isActive}}\\n      <div class=\\\"panel facets add-25\\\">\\n        <div class=\\\"panel-body\\\">\\n          <div class=\\\"btn-toolbar\\\">\\n            <div class=\\\"shrink\\\">\\n              {{#if (and this.model.isActive (can \\'update repository\\' this.model) (or (can \\'create doi\\' this.model) (can \\'upload doi\\' this.model)) (gt this.model.meta.prefixCount 0))}}\\n                <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n              {{/if}}\\n              <MetadataDashboardButton @dashboardId={{this.model.id}} />\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n    {{/if}}\\n  </div>\\n  <div class=\\\"col-md-9\\\">\\n    <RepositoryInfo @model={{this.model}} />\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/repositories/show/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"row\\\">\\n  <div data-test-left-sidebar class=\\\"col-md-3\\\">\\n    {{#if (and this.model.repository.isActive (or (can \\'create doi\\' this.model) (can \\'upload doi\\' this.model)) (not (gt this.model.repository-prefixes.length 0)))}}\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\">\\n          <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n            Can\\'t create DOI without a prefix.\\n          </BsAlert>\\n        </div>\\n      </div>\\n    {{/if}}\\n\\n    {{#if this.model.repository.isActive}}\\n      {{#if (can \\'write index\\')}}\\n        <div class=\\\"panel facets add-25\\\">\\n          <div class=\\\"panel-body\\\">\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"shrink\\\">\\n                {{#if (and this.model.repository.isActive (or (can \\'create doi\\' this.model) (can \\'upload doi\\' this.model)) (gt this.model.repository-prefixes.length 0))}}\\n                  <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n                {{/if}}\\n                <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n                  <LinkTo\\n                    @route=\\\"repositories.show.prefixes.new\\\"\\n                    @model={{this.model.repository.id}}\\n                    class=\\\"btn btn-warning\\\"\\n                    id=\\\"assign-prefix\\\"\\n                    @disabled={{if (eq (await (prefixes-available this.model.provider.id)) 0) \\\"true\\\" \\\"\\\"}}\\n                  >\\n                    <i class=\\\"fas fa-link\\\"></i>\\n                    Assign Prefix\\n                  </LinkTo>\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{else}}\\n        <div class=\\\"panel facets add-25\\\">\\n          <div class=\\\"panel-body\\\">\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"shrink\\\">\\n                {{#if (and this.model.repository.isActive (or (can \\'create doi\\' this.model) (can \\'upload doi\\' this.model)) (gt this.model.repository-prefixes.length 0))}}\\n                  <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n                {{/if}}\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{/if}}\\n    {{else if (not this.model.repository.isActive)}}\\n\\n    {{/if}}\\n    {{#if this.model.repository-prefixes.meta.years}}\\n      <div class=\\\"panel facets add\\\">\\n        <div class=\\\"panel-body\\\">\\n          <h4>\\n            Year created\\n          </h4>\\n          <ul>\\n            {{#each this.model.repository-prefixes.meta.years as |year|}}\\n              <li>\\n                {{#if this.model.repository-prefixes.query.year}}\\n                  <LinkTo\\n                    @route=\\\"repositories.show.prefixes\\\"\\n                    @query={{hash year=null}}\\n                  >\\n                    <i class=\\\"far fa-check-square\\\"></i>\\n                  </LinkTo>\\n                {{else}}\\n                  <LinkTo\\n                    @route=\\\"repositories.show.prefixes\\\"\\n                    @query={{hash year=year.id}}\\n                  >\\n                    <i class=\\\"far fa-square\\\"></i>\\n                  </LinkTo>\\n                {{/if}}\\n                <div class=\\\"facet-title\\\">\\n                  {{year.title}}\\n                </div>\\n                <span class=\\\"number pull-right\\\">\\n                  {{year.count}}\\n                </span>\\n                <div class=\\\"clearfix\\\"></div>\\n              </li>\\n            {{/each}}\\n          </ul>\\n        </div>\\n      </div>\\n    {{/if}}\\n  </div>\\n  <div class=\\\"col-md-9 panel-list\\\" id=\\\"content\\\">\\n    <ModelSearch\\n      @model={{this.model.repository-prefixes}}\\n      @name=\\\"Prefix\\\"\\n      @link=\\\"repositories.show.prefixes\\\"\\n    />\\n    {{#if this.model.repository-prefixes}}\\n      {{#each this.model.repository-prefixes as |repositoryPrefix|}}\\n        <div class=\\\"panel panel-transparent\\\" data-test-prefix>\\n          <div class=\\\"panel-body\\\">\\n            {{#if (and (can \\'update prefix\\' this.model) this.model.isActive)}}\\n              <h3 class=\\\"work\\\">\\n                <LinkTo\\n                  id={{repositoryPrefix.prefix.id}}\\n                  @route=\\\"repositories.show.prefixes.show\\\"\\n                  @models={{array this.model.repository.id repositoryPrefix.prefix.id}}\\n                >\\n                  {{repositoryPrefix.prefix.id}}\\n                </LinkTo>\\n              </h3>\\n            {{else}}\\n              <h3 class=\\\"member\\\">\\n                {{repositoryPrefix.prefix.id}}\\n              </h3>\\n            {{/if}}\\n            {{#if this.features.useElasticsearch}}\\n              <h5>\\n                DOIs\\n              </h5>\\n              <LinkTo\\n                @route=\\\"repositories.show.dois\\\"\\n                @model={{repositoryPrefix.repository.id}}\\n                @query={{hash prefix=repositoryPrefix.prefix.id}}\\n              >\\n                DOIs for prefix\\n                {{repositoryPrefix.prefix.id}}\\n              </LinkTo>\\n            {{/if}}\\n            <h5>\\n              Added\\n            </h5>\\n            {{format-time\\n              repositoryPrefix.createdAt\\n              year=\\'numeric\\'\\n              month=\\'long\\'\\n              day=\\'numeric\\'\\n              hour=\\'numeric\\'\\n              minute=\\'numeric\\'\\n              second=\\'numeric\\'\\n              timeZone=\\'UTC\\'\\n              timeZoneName=\\'short\\'\\n              hour12=false\\n            }}\\n          </div>\\n        </div>\\n      {{/each}}\\n      <div class=\\\"text-center\\\">\\n        {{#if (gt this.model.repository-prefixes.meta.totalPages 1)}}\\n          <PageNumbers\\n            @model={{this.model.prefixes}}\\n            @link=\\\"repositories.show.prefixes\\\"\\n          />\\n        {{/if}}\\n      </div>\\n    {{else}}\\n      <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n        No prefixes found.\\n      </BsAlert>\\n    {{/if}}\\n  </div>\\n</div>', { moduleName: 'bracco/templates/repositories/show/prefixes/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"panel panel-transparent\\\">\\n  <div class=\\\"panel-body\\\">\\n    <div class=\\\"col-md-9 col-md-offset-3\\\"><h3 class=\\\"edit\\\">Assign Prefix</h3></div>\\n\\n    <BsForm @formLayout=\\\"horizontal\\\" class=\\\"form-horizontal\\\" @horizontalLabelGridClass=\\\"col-md-3\\\" @model={{this.model.repository-prefix}} @onSubmit={{action \\\"submitAction\\\"}} as |form|>\\n      <form.element @controlType=\\\"power-select\\\" class=\\\"form-group\\\" id=\\\"provider-prefix-add\\\" @label=\\\"Prefix\\\" @property=\\\"provider-prefix\\\" @options={{this.provider-prefixes}} as |el|>\\n        <el.control @onChange={{action \\\"selectPrefixAction\\\"}} @selected={{this.prefix}} @search={{action \\\"searchPrefixAction\\\"}} @optionLabelPath=\\\"id\\\" @searchField=\\\"id\\\" @searchPlaceholder=\\\"Select from list or type to search...\\\" @searchEnabled={{true}} as |item|>\\n          {{if item.prefix.id item.prefix.id item.id}}\\n        </el.control>\\n      </form.element>\\n\\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <div class=\\\"btn-toolbar\\\">\\n          <button type=\\\"submit\\\" disabled={{this.disabled}} class=\\\"btn btn-sm btn-fill\\\">Assign Prefix</button>\\n          <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n        </div>\\n      </div>\\n    </BsForm>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/repositories/show/prefixes/new.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model}}\\n  <div class=\\\"panel panel-transparent\\\" id=\\\"delete-prefix-form\\\">\\n    <div class=\\\"panel-body\\\">    \\n      <div class=\\\"col-md-9 col-md-offset-3\\\">\\n        <div class=\\\"alert alert-danger\\\" role=\\\"alert\\\">\\n          Are you sure you want to remove prefix {{this.model.prefix.id}} from this repository?\\n        </div>\\n        <div class=\\\"panel-footer\\\">\\n          <div class=\\\"btn-toolbar pull-right\\\">\\n            <button class=\\\"btn btn-sm\\\" type=\\\"button\\\" {{action \\\"cancelAction\\\"}}>Cancel</button>\\n            <button id=\\\"prefix-delete\\\" class=\\\"btn btn-sm btn-fill\\\" type=\\\"button\\\" {{action \\\"submitAction\\\"}}>Remove</button>\\n          </div>\\n          <div class=\\\"clearfix\\\"/>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n    The prefix was not found.\\n  </BsAlert>\\n{{/if}}', { moduleName: 'bracco/templates/repositories/show/prefixes/show/delete.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model}}\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-md-3\\\">\\n      {{#if (can \\'update prefix\\' this.model.prefix)}}\\n        <div class=\\\"panel facets add\\\">\\n          <div class=\\\"panel-body\\\">\\n            {{#if this.model.repository.isActive}}\\n              <div class=\\\"btn-toolbar\\\">\\n                <div class=\\\"btn-group btn-group-sm\\\">\\n                  <LinkTo\\n                    @route=\\\"repositories.show.prefixes.show.delete\\\"\\n                    @models={{array this.model.repository.id this.model.prefix.id}}\\n                    class=\\\"btn btn-warning\\\"\\n                  >\\n                    <i class=\\\"fas fa-pencil-alt\\\"></i>\\n                    Remove Prefix\\n                  </LinkTo>\\n                </div>\\n              </div>\\n            {{/if}}\\n          </div>\\n        </div>\\n      {{/if}}\\n    </div>\\n    <div class=\\\"col-md-9\\\">\\n      <h2 class=\\\"work\\\">\\n        {{this.model.prefix.id}}\\n      </h2>\\n    </div>\\n  </div>\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-md-3\\\">\\n      <RepositorySidebar @model={{this.model}} />\\n    </div>\\n    <div class=\\\"col-md-9\\\">\\n      <div class=\\\"panel panel-transparent\\\">\\n        <div class=\\\"panel-body\\\"></div>\\n      </div>\\n    </div>\\n  </div>\\n{{else}}\\n  <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n    The prefix was not found.\\n  </BsAlert>\\n{{/if}}', { moduleName: 'bracco/templates/repositories/show/prefixes/show/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"row\\\">\\n  <div data-test-left-sidebar class=\\\"col-md-3\\\">\\n    {{#if (not (can \\'update repository\\' this.model))}}\\n      {{#if (and this.model.isActive (or (can \\'create doi\\' this.model) (can \\'upload doi\\' this.model)))}}\\n        {{#if (gt this.model.meta.prefixCount 0) }}\\n          <div class=\\\"panel facets\\\">\\n            <div class=\\\"panel-body\\\">\\n              <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n            </div>\\n          </div>\\n        {{else}}\\n          <div class=\\\"panel panel-transparent\\\">\\n            <div class=\\\"panel-body\\\">\\n              <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n                Can\\'t create DOI without a prefix.\\n              </BsAlert>\\n            </div>\\n          </div>\\n        {{/if}}\\n      {{/if}}\\n    {{else}}\\n      {{#if (and this.model.isActive (or (can \\'create doi\\' this.model) (can \\'upload doi\\' this.model)) (not (gt this.model.meta.prefixCount 0)))}}\\n        <div class=\\\"panel panel-transparent\\\">\\n          <div class=\\\"panel-body\\\">\\n            <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n              Can\\'t create DOI without a prefix.\\n            </BsAlert>\\n          </div>\\n        </div>\\n      {{/if}}\\n\\n      {{#if (can \\'update repository\\' this.model)}}\\n        <div class=\\\"panel facets\\\">\\n          <div class=\\\"panel-body\\\">\\n            <div class=\\\"btn-toolbar\\\">\\n              <div class=\\\"shrink\\\">\\n                {{#if (and this.model.isActive (or (can \\'create doi\\' this.model) (can \\'upload doi\\' this.model)) (gt this.model.meta.prefixCount 0))}}\\n                  <CreateDoiButton @model={{this.model}} class=\\\"create-doi-button\\\" />\\n                {{/if}}\\n                <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n                  {{#if this.model.isActive}}\\n                    <LinkTo\\n                      @route=\\\"repositories.show.change\\\"\\n                      @model={{this.model.id}}\\n                      class=\\\"btn btn-warning\\\"\\n                      id=\\\"set-password-repository\\\"\\n                    >\\n                      <i class=\\\"fas fa-key\\\"></i>\\n                      Set Password\\n                    </LinkTo>\\n                  {{/if}}\\n                  {{#if (or (can \\'delete repository\\' this.model) this.model.isActive)}}\\n                    <LinkTo\\n                      @route=\\\"repositories.show.edit\\\"\\n                      @model={{this.model.id}}\\n                      class=\\\"btn btn-warning\\\"\\n                      id=\\\"edit-repository\\\"\\n                    >\\n                      <i class=\\\"fas fa-pencil-alt\\\"></i>\\n                      Update\\n                      {{if (eq this.currentUser.uid this.model.id) \\'Account\\' \\'Repository\\'}}\\n                    </LinkTo>\\n                  {{/if}}\\n                  {{#if (can \\'delete repository\\' this.model)}}\\n                    <LinkTo\\n                      @route=\\\"repositories.show.delete\\\"\\n                      @model={{this.model.id}}\\n                      class=\\\"btn btn-warning\\\"\\n                      id=\\\"delete-repository\\\"\\n                    >\\n                      <i class=\\\"fas fa-trash\\\"></i>\\n                      Delete Repository\\n                    </LinkTo>\\n                  {{/if}}\\n                  {{#if (and (can \\'transfer repository\\' this.model) this.model.isActive)}}\\n                    <LinkTo\\n                      @route=\\\"repositories.show.transfer-repository\\\"\\n                      @model={{this.model.id}}\\n                      class=\\\"btn btn-warning\\\"\\n                      id=\\\"transfer-repository\\\"\\n                    >\\n                      <i class=\\\"fas fa-arrow-circle-right\\\"></i>\\n                      Transfer\\n                      {{if this.media.isXl \\' Repository\\'}}\\n                    </LinkTo>\\n                  {{/if}}\\n                </div>\\n              </div>\\n            </div>\\n          </div>\\n        </div>\\n      {{/if}}\\n    {{/if}}\\n    <RepositorySidebar @model={{this.model}} />\\n  </div>\\n  <div class=\\\"col-md-9\\\">\\n    <div class=\\\"panel panel-transparent\\\">\\n      <div class=\\\"panel-body\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n        {{#if (eq this.model.clientType \\'periodical\\')}}\\n          <span class=\\\"label label-primary-inv label-sm\\\">\\n            Periodical\\n          </span>\\n        {{/if}}\\n        <h5>\\n          Repository ID\\n          <span>\\n            <i class=\\\"fas fa-question-circle\\\"></i>\\n            <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>\\n              The Repository ID is a unique identifier for each repository in DataCite. It must contain only upper case letters and numbers, and must start with the Member ID.\\n            </BsTooltip>\\n          </span>\\n        </h5>\\n        {{this.model.symbol}}\\n        {{#if (and (can \\'create provider\\') this.model.salesforceId)}}\\n          <h5>\\n            Salesforce ID\\n          </h5>\\n          {{this.model.salesforceId}}\\n        {{/if}}\\n        {{#if (and (can \\'token repository\\') this.model.globusUuid)}}\\n          <h5>\\n            Globus UUID\\n          </h5>\\n          {{this.model.globusUuid}}\\n        {{/if}}\\n        {{#if (or this.model.issn.issnl this.model.issn.electronic this.model.issn.print)}}\\n          <h5>\\n            ISSN\\n          </h5>\\n          {{#if this.model.issn.issnl}}\\n            {{this.model.issn.issnl}}(ISSN-L)<br />\\n          {{/if}}\\n          {{#if this.model.issn.electronic}}\\n            {{this.model.issn.electronic}}(electronic)<br />\\n          {{/if}}\\n          {{#if this.model.issn.print}}\\n            {{this.model.issn.print}}(print)<br />\\n          {{/if}}\\n        {{/if}}\\n        {{#if this.model.alternateName}}\\n          <h5>\\n            Alternate Name\\n          </h5>\\n          {{this.model.alternateName}}\\n        {{/if}}\\n        {{#if this.model.description}}\\n          <h5>\\n            Description\\n          </h5>\\n          <p id=\\\"description\\\">\\n             <MarkdownToHtml @markdown={{this.model.description}} />\\n          </p>\\n        {{/if}}\\n        {{#if (or this.model.serviceContact.name this.model.serviceContact.email)}}\\n          <h5>\\n            Service Contact\\n          </h5>\\n          {{#if this.model.serviceContact.name}}\\n            {{this.model.serviceContact.name}}<br />\\n          {{/if}}\\n          {{#if this.model.serviceContact.email}}\\n            <a href=\\\"mailto:{{this.model.serviceContact.email}}\\\">\\n              {{this.model.serviceContact.email}}\\n            </a>\\n          {{/if}}\\n        {{/if}}\\n        {{#if this.model.systemEmail}}\\n          <h5>\\n            System Email\\n          </h5>\\n          <a href=\\\"mailto:{{this.model.systemEmail}}\\\">\\n            {{this.model.systemEmail}}\\n          </a>\\n        {{/if}}\\n        {{#if this.model.url}}\\n          <h5>\\n            URL\\n          </h5>\\n          <a href=\\\"{{this.model.url}}\\\">\\n            {{this.model.url}}\\n          </a>\\n        {{/if}}\\n        {{#if this.model.domainList}}\\n          <h5>\\n            {{pluralize this.model.domainList.length \\'Domain\\' without-count=true}}\\n            <span>\\n              <i class=\\\"fas fa-question-circle\\\"></i>\\n              <BsTooltip @renderInPlace={{true}} @placement=\\\"top\\\" @viewportPadding={{10}}>\\n                URLs for DOIs must use\\n                {{#if (gt this.model.domainList.length 1)}}\\n                  one of these (sub-)domains\\n                {{else}}\\n                  this (sub-)domain\\n                {{/if}}\\n                .\\n              </BsTooltip>\\n            </span>\\n          </h5>\\n          {{#each this.model.domainList as |domain|}}\\n            {{domain}}<br />\\n          {{/each}}\\n        {{/if}}\\n        {{#if this.model.language}}\\n          <h5>\\n            Language\\n          </h5>\\n          {{#each this.model.language as |lang|}}\\n            {{format-language lang}}\\n            {{#unless (eq lang this.model.language.lastObject)}}\\n              ,\\n            {{/unless}}\\n          {{/each}}\\n        {{/if}}\\n        {{#if this.model.repositoryType}}\\n          <h5>\\n            Repository Type\\n          </h5>\\n          {{#each this.model.repositoryType as |type|}}\\n            {{titleize type}}\\n            {{#unless (eq type this.model.repositoryType.lastObject)}}\\n              ,\\n            {{/unless}}\\n          {{/each}}\\n        {{/if}}\\n        {{#if this.model.certificate}}\\n          <h5>\\n            Certificate\\n            <div class=\\\"info-icon icons-certificate_active\\\"></div>\\n          </h5>\\n          {{#each this.model.certificate as |cert|}}\\n            {{cert}}\\n            {{#unless (eq cert this.model.certificate.lastObject)}}\\n              ,\\n            {{/unless}}\\n          {{/each}}\\n        {{/if}}\\n        {{#if this.model.software}}\\n          <h5>\\n            Software\\n          </h5>\\n          {{this.model.software}}\\n        {{/if}}\\n        {{#unless this.model.hasPassword}}\\n          <h5>\\n            Password\\n          </h5>\\n          <span class=\\\"small icon-warning\\\">\\n            has not been set\\n          </span>\\n        {{/unless}}\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/repositories/show/settings.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<RepositoryTransfer @model={{this.model}} />', { moduleName: 'bracco/templates/repositories/show/transfer-repository.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<RepositoryDoisTransfer @model={{this.model}} />\\n', { moduleName: 'bracco/templates/repositories/show/transfer.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ApplicationHeader @sign-in={{true}} />\\n\\n<div class=\\\"wrapper\\\">\\n  <div class=\\\"register-background\\\" style={{html-safe (concat \\'background-image: url(\\' (cdn-url) \\'/images/fabrica/header.png);\\')}} >\\n    <div class=\\\"container\\\">\\n      <div class=\\\"row\\\">\\n        <div class=\\\"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1 \\\">\\n          <div class=\\\"register-card\\\">\\n            <h3 class=\\\"title\\\">Reset Password</h3>\\n\\n            {{#if this.requestSent}}\\n              <br>\\n              <div>\\n                <BsAlert @type=\\\"success\\\">\\n                  A reset password link has been sent to the email address registered for this account.\\n                </BsAlert>\\n              </div>\\n\\n              <div>\\n                <LinkTo @route=\\\"sign-in\\\">Use password</LinkTo> •\\n                <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"CREATE_A_FABRICA_ACCOUNT_URL\\\" }}>Need an account?</a>\\n              </div>\\n\\n              <div class=\\\"pseudo-footer\\\">\\n                <div class=\\\"btn-toolbar pull-right\\\">\\n                  <button {{action \\\"close\\\"}} type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\">Close</button>\\n                </div>\\n                <div class=\\\"clearfix\\\"/>\\n              </div>\\n            {{else}}\\n              <BsForm @formLayout=\\\"vertical\\\" @model={{this}} @onSubmit={{action \\\"sendLink\\\"}} @submitOnEnter={{true}} as |form|>\\n                <form.element @controlType=\\\"text\\\" @property=\\\"identification\\\" @label=\\\"Account ID\\\" @helpText=\\\"Send a reset password link to the email address registered for this account.\\\"  />\\n\\n                {{#if this.errorMessage}}\\n                  <div class=\\\"alert alert-danger\\\">{{this.errorMessage}}</div>\\n                {{/if}}\\n\\n                <div>\\n                  <LinkTo @route=\\\"sign-in\\\">Use password</LinkTo> •\\n                  <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"CREATE_A_FABRICA_ACCOUNT_URL\\\" }}>Need an account?</a>\\n                </div>\\n\\n                <div class=\\\"pseudo-footer\\\">\\n                  <div class=\\\"btn-toolbar pull-right\\\">\\n                    <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\">Send Link</button>\\n                  </div>\\n                  <div class=\\\"clearfix\\\"/>\\n                </div>\\n              </BsForm>\\n            {{/if}}\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/reset.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"read index\\\")}}\\n  <ApplicationHeader @default={{true}} />\\n\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n\\n    <div class=\\\"content\\\">\\n      {{#if (can \\\"read messages\\\" this.model)}}\\n        <div class=\\\"row\\\">\\n          <div class=\\\"col-md-9\\\">\\n            {{#each this.flashMessages.queue as |flash|}}\\n              <FlashMessage @flash={{flash}} />\\n            {{/each}}\\n          </div>\\n        </div>\\n      {{/if}}\\n\\n      <div class=\\\"row\\\">\\n        <div class=\\'col-md-3\\'>\\n          {{#if (can \\\"update provider\\\" this.model)}}\\n            <div class=\\\"panel facets\\\">\\n              <div class=\\\"panel-body\\\">\\n                <div class=\\\"btn-toolbar\\\">\\n                  <div class=\\\"btn-group-vertical btn-group-sm\\\">\\n                    <LinkTo @route=\\\"change\\\" class=\\\"btn btn-warning\\\" id=\\\"set-password-provider\\\"><i class=\\\"fas fa-key\\\"></i> Set Password</LinkTo>\\n                    <LinkTo @route=\\\"edit\\\" class=\\\"btn btn-warning\\\" id=\\\"edit-provider\\\"><i class=\\\"fas fa-pencil-alt\\\"></i> Update Account</LinkTo>\\n                  </div>\\n                </div>\\n              </div>\\n            </div>\\n          {{/if}}\\n\\n          <RepositorySidebar @model={{this.model}} />\\n        </div>\\n        <div class=\\\"col-md-9\\\">\\n          <div class=\\\"panel panel-transparent\\\">\\n            <div class=\\\"panel-body\\\">\\n              <h5>Account ID</h5>\\n              {{this.model.symbol}}\\n\\n              {{#if this.model.rorId}}\\n                <h5>ROR ID</h5>\\n                <a href=\\\"{{this.model.rorId}}\\\">{{this.model.rorId}}</a>\\n              {{/if}}\\n\\n              <h5>System Email</h5>\\n              <a href=\\\"mailto:{{this.model.systemEmail}}\\\">{{this.model.systemEmail}}</a>\\n\\n              {{#if this.model.groupEmail}}\\n                <h5>Group Email</h5>\\n                <a href=\\\"mailto:{{this.model.groupEmail}}\\\">{{this.model.groupEmail}}</a>\\n              {{/if}}\\n\\n              {{#if this.model.website}}\\n                <h5>Website</h5>\\n                <a href=\\\"{{this.model.website}}\\\">{{this.model.website}}</a>\\n              {{/if}}\\n\\n              {{#if this.model.country}}\\n                <h5>Country</h5>\\n                {{this.model.country.name}}\\n              {{/if}}\\n\\n              {{#if this.model.description}}\\n                <h5>Description</h5>\\n                 <MarkdownToHtml @markdown={{this.model.description}} />\\n              {{/if}}\\n\\n              {{#unless this.model.hasPassword}}\\n                <h5>Password</h5>\\n                <span class=\\\"small icon-warning\\\">has not been set</span>\\n              {{/unless}}\\n            </div>\\n          </div>\\n        </div>\\n      </div>\\n\\n\\n    </div>\\n  </div>\\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/settings.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<ApplicationHeader @sign-in={{true}} />\\n\\n<div class=\\\"wrapper\\\">\\n  <div class=\\\"register-background\\\" style={{html-safe (concat \\'background-image: url(\\' (cdn-url) \\'/images/fabrica/header.png);\\')}} >\\n    <div class=\\\"container\\\">\\n      <div class=\\\"row\\\">\\n        <div class=\\\"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1 \\\">\\n          <div class=\\\"register-card\\\">\\n            <h3 class=\\\"title\\\">Sign In</h3>\\n            \\n            {{#if this.showGlobus}}\\n              <a href=\\\"{{this.oidcAuthUrl}}\\\" class=\\\"btn btn-block btn-social btn-globus btn-fill\\\"><img id=\\\"globus-logo\\\" src=\\\"{{this.globusLogoUrl}}\\\" alt=\\\"Globus icon\\\" /> Sign In with Globus</a>\\n              \\n              <div id=\\\"or\\\">or</div>\\n            {{/if}}\\n\\n            <BsForm @formLayout=\\\"vertical\\\" @model={{this}} @onSubmit={{action \\\"authenticate\\\"}} @submitOnEnter={{true}} as |form|>\\n              <form.element @controlType=\\\"text\\\" @property=\\\"identification\\\" id=\\\"account\\\" data-test-account as |el| >\\n                <label for=\\\"account-field\\\">Account ID</label>\\n                <el.control id=\\\"account-field\\\" />\\n              </form.element>\\n              <form.element @controlType=\\\"password\\\" @property=\\\"password\\\" id=\\\"password\\\" data-test-password as |el| >\\n                <label for=\\\"password-field\\\">Password</label>\\n                <el.control id=\\\"password-field\\\" />\\n              </form.element>\\n\\n              {{#if this.errorMessage}}\\n                <div class=\\\"alert alert-danger\\\">{{this.errorMessage}}</div>\\n              {{/if}}\\n\\n              <div>{{!-- need a fix here --}}\\n                <LinkTo @route=\\\"reset\\\">Forgot password?</LinkTo> • \\n                <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href={{get (links) \\\"CREATE_A_FABRICA_ACCOUNT_URL\\\" }}>Need an account?</a>\\n              </div>\\n\\n              <div class=\\\"pseudo-footer\\\">\\n                <div class=\\\"btn-toolbar pull-right\\\">\\n                  <button type=\\\"submit\\\" class=\\\"btn btn-sm btn-fill\\\">Sign In</button>\\n                </div>\\n                <div class=\\\"clearfix\\\"/>\\n              </div>\\n            </BsForm>\\n          </div>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</div>\\n', { moduleName: 'bracco/templates/sign-in.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{outlet}}', { moduleName: 'bracco/templates/users.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"read index\\\")}}\\n  <ApplicationHeader @default={{true}} />\\n\\n  <div class=\\\"container-fluid\\\">\\n    <IndexHeader />\\n    {{!-- {{#if (can \\\"read messages\\\" model)}} --}}\\n    <div class=\\\"row\\\">\\n      <div class=\\\"col-md-9\\\" style=\\\"margin-left: 10px; margin-right: 10px;\\\">\\n        {{#each this.flashMessages.queue as |flash|}}\\n          <FlashMessage @flash={{flash}} />\\n        {{/each}}\\n      </div>\\n    </div>\\n    {{!-- {{/if}} --}}\\n    <UserList @model={{this.model}} @searchable={{true}} />\\n  </div>\\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/users/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if (can \\\"read user\\\" this.model)}}\\n  <ApplicationHeader @default={{true}} />\\n\\n  <div class=\\\"container-fluid\\\">\\n    {{#if (can \\\"read user\\\" this.model)}}\\n      <ol class=\\\"breadcrumb\\\">\\n        {{#if (can \\\"read index\\\")}}\\n          <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"index\\\">DataCite</LinkTo></li>\\n          <li class=\\\"breadcrumb-item\\\"><LinkTo @route=\\\"users\\\">Users</LinkTo></li>\\n        {{/if}}\\n      </ol>\\n    {{/if}}\\n\\n    <div id=\\\"show\\\">\\n      <h2 class=\\\"work\\\">{{this.model.name}}</h2>\\n\\n      <div class=\\\"tab-content nav-tabs-member\\\">\\n        <BsNav\\n          @type=\\\"tabs\\\"\\n          @justified={{false}}\\n          @stacked={{false}}\\n          @fill={{false}} as |nav|\\n        >\\n          <nav.item>\\n            <nav.link-to @route=\\\"users.show.index\\\" model=\\\"model.id\\\" class=\\\"nav-link\\\">Info</nav.link-to>\\n          </nav.item>\\n          <nav.item>\\n            <nav.link-to @route=\\\"users.show.settings\\\" model=\\\"model.id\\\" class=\\\"nav-link\\\">Settings</nav.link-to>\\n          </nav.item>\\n          <nav.item>\\n            <nav.link-to @route=\\\"users.show.dois\\\" model=\\\"model.id\\\" class=\\\"nav-link\\\">DOIs</nav.link-to>\\n          </nav.item>\\n        </BsNav>\\n      </div>\\n    </div>\\n\\n    {{outlet}}\\n  </div>\\n{{else}}\\n  <ApplicationHeader />\\n  <LandingPage />\\n{{/if}}\\n', { moduleName: 'bracco/templates/users/show.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('{{#if this.model}}\\n  <DoiList\\n    @model={{this.model.dois}}\\n    @data={{this.model}}\\n    @link=\\\"users.show.dois\\\"\\n    @searchable={{true}}\\n  />\\n{{else}}\\n  <div class=\\\"col-md-9 col-md-offset-3\\\">\\n    <BsAlert @dismissible={{false}} @type=\\\"warning\\\">\\n      An error occured fetching DOIs. Please contact DataCite Support.\\n    </BsAlert>\\n  </div>\\n{{/if}}', { moduleName: 'bracco/templates/users/show/dois.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<div class=\\\"content\\\">\\n\t<UserRole />\\n\t<div class=\\\"row row-chart\\\">\\n\t\t<BarChart @data={{this.model.doiCount}} @label=\\\"DOI\\\" @model={{this.model}} @link=\\\"users.show.dois\\\" @summarize={{true}} @offset={{true}} />\\n\t\t<DonutChart @data={{this.model.resourceTypeCount}} @label=\\\"DOI\\\" @model={{this.model}} @link=\\\"users.show.dois\\\" />\\n\t</div>\\n\t<div class=\\\"row row-chart\\\">\\n\t\t<MetricsCounter @label=\\'Citations\\' @model={{this.model}} @link=\\\"users.show.dois\\\" @query={{hash has-citations=1\\n\t\t\thas-views=null has-downloads=null}} @count={{this.model.totalCitationCount}} />\\n\t\t<MetricsCounter @label=\\'Views\\' @model={{this.model}} @link=\\\"users.show.dois\\\" @query={{hash has-citations=null has-views=1\\n\t\t\thas-downloads=null}} @count={{this.model.totalViewCount}} />\\n\t\t<MetricsCounter @label=\\'Downloads\\' @model={{this.model}} @link=\\\"users.show.dois\\\" @query={{hash has-citations=null\\n\t\t\thas-views=null has-downloads=1}} @count={{this.model.totalDownloadCount}} />\\n\t</div>\\n\t{{#if (can \\\"read messages\\\" this.model)}}\\n\t<div class=\\\"row\\\">\\n\t\t<div class=\\\"col-md-9\\\">\\n\t\t\t{{#each this.flashMessages.queue as |flash|}}\\n\t\t\t<FlashMessage @flash={{flash}} />\\n\t\t\t{{/each}}\\n\t\t</div>\\n\t</div>\\n\t{{/if}}\\n</div>', { moduleName: 'bracco/templates/users/show/index.hbs' });\n","import { hbs } from 'ember-cli-htmlbars';\nexport default hbs('<UserShow @model={{this.model}} />\\n', { moduleName: 'bracco/templates/users/show/settings.hbs' });\n","import classic from 'ember-classic-decorator';\nimport Transform from '@ember-data/serializer/transform';\n\n@classic\nexport default class Array extends Transform {\n  deserialize(serialized) {\n    return serialized || [];\n  }\n\n  serialize(deserialized) {\n    return deserialized;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Transform from '@ember-data/serializer/transform';\nimport countryList from 'iso-3166-country-list';\n\nconst stateList = [\n  { code: 'US-AL', name: 'Alabama' },\n  { code: 'US-AK', name: 'Alaska' },\n  { code: 'US-AZ', name: 'Arizona' },\n  { code: 'US-AR', name: 'Arkansas' },\n  { code: 'US-CA', name: 'California' },\n  { code: 'US-CO', name: 'Colorado' },\n  { code: 'US-CT', name: 'Connecticut' },\n  { code: 'US-DE', name: 'Delaware' },\n  { code: 'US-FL', name: 'Florida' },\n  { code: 'US-GA', name: 'Georgia' },\n  { code: 'US-HI', name: 'Hawaii' },\n  { code: 'US-ID', name: 'Idaho' },\n  { code: 'US-IL', name: 'Illinois' },\n  { code: 'US-IN', name: 'Indiana' },\n  { code: 'US-IA', name: 'Iowa' },\n  { code: 'US-KS', name: 'Kansas' },\n  { code: 'US-KY', name: 'Kentucky' },\n  { code: 'US-LA', name: 'Louisiana' },\n  { code: 'US-ME', name: 'Maine' },\n  { code: 'US-MD', name: 'Maryland' },\n  { code: 'US-MA', name: 'Massachusetts' },\n  { code: 'US-MI', name: 'Michigan' },\n  { code: 'US-MN', name: 'Minnesota' },\n  { code: 'US-MS', name: 'Mississippi' },\n  { code: 'US-MO', name: 'Missouri' },\n  { code: 'US-MT', name: 'Montana' },\n  { code: 'US-NE', name: 'Nebraska' },\n  { code: 'US-NV', name: 'Nevada' },\n  { code: 'US-NH', name: 'New Hampshire' },\n  { code: 'US-NJ', name: 'New Jersey' },\n  { code: 'US-NM', name: 'New Mexico' },\n  { code: 'US-NY', name: 'New York' },\n  { code: 'US-NC', name: 'North Carolina' },\n  { code: 'US-ND', name: 'North Dakota' },\n  { code: 'US-OH', name: 'Ohio' },\n  { code: 'US-OK', name: 'Oklahoma' },\n  { code: 'US-OR', name: 'Oregon' },\n  { code: 'US-PA', name: 'Pennsylvania' },\n  { code: 'US-RI', name: 'Rhode Island' },\n  { code: 'US-SC', name: 'South Carolina' },\n  { code: 'US-SD', name: 'South Dakota' },\n  { code: 'US-TN', name: 'Tennessee' },\n  { code: 'US-TX', name: 'Texas' },\n  { code: 'US-UT', name: 'Utah' },\n  { code: 'US-VT', name: 'Vermont' },\n  { code: 'US-VA', name: 'Virginia' },\n  { code: 'US-WA', name: 'Washington' },\n  { code: 'US-WV', name: 'West Virginia' },\n  { code: 'US-WI', name: 'Wisconsin' },\n  { code: 'US-WY', name: 'Wyoming' },\n  { code: 'US-DC', name: 'District of Columbia' },\n  { code: 'US-AS', name: 'American Samoa' },\n  { code: 'US-GU', name: 'Guam' },\n  { code: 'US-MP', name: 'Northern Mariana Islands' },\n  { code: 'US-PR', name: 'Puerto Rico' },\n  { code: 'US-UM', name: 'United States Minor Outlying Islands' },\n  { code: 'US-VI', name: 'Virgin Islands, U.S.' },\n  // Canadian provinces\n  { code: 'CA-AB', name: 'Alberta' },\n  { code: 'CA-BC', name: 'British Columbia (Colombie-Britannique)' },\n  { code: 'CA-MB', name: 'Manitoba' },\n  { code: 'CA-NB', name: 'New Brunswick (Nouveau-Brunswick)' },\n  { code: 'CA-NL', name: 'Newfoundland and Labrador (Terre-Neuve)' },\n  { code: 'CA-NS', name: 'Nova Scotia (Nouvelle-Écosse)' },\n  { code: 'CA-ON', name: 'Ontario' },\n  { code: 'CA-PE', name: 'Prince Edward Island (Île-du-Prince-Édouard)' },\n  { code: 'CA-QC', name: 'Quebec (Québec)' },\n  { code: 'CA-SK', name: 'Saskatchewan' },\n  { code: 'CA-NT', name: 'Northwest Territories (Territoires du Nord-Ouest)' },\n  { code: 'CA-NU', name: 'Nunavut' },\n  { code: 'CA-YT', name: 'Yukon Territory (Teritoire du Yukon)' },\n  // Chinese provinces\n  { code: 'CN-34', name: 'Anhui' },\n  { code: 'CN-11', name: 'Beijing' },\n  { code: 'CN-50', name: 'Chongqing' },\n  { code: 'CN-35', name: 'Fujian' },\n  { code: 'CN-62', name: 'Gansu' },\n  { code: 'CN-44', name: 'Guangdong' },\n  { code: 'CN-45', name: 'Guangxi' },\n  { code: 'CN-52', name: 'Guizhou' },\n  { code: 'CN-46', name: 'Hainan' },\n  { code: 'CN-13', name: 'Hebei' },\n  { code: 'CN-23', name: 'Heilongjiang' },\n  { code: 'CN-41', name: 'Henan' },\n  { code: 'CN-91', name: 'Hong Kong' },\n  { code: 'CN-42', name: 'Hubei' },\n  { code: 'CN-43', name: 'Hunan' },\n  { code: 'CN-32', name: 'Jiangsu' },\n  { code: 'CN-36', name: 'Jiangxi' },\n  { code: 'CN-22', name: 'Jilin' },\n  { code: 'CN-21', name: 'Liaoning' },\n  { code: 'CN-15', name: 'Nei Monggol' },\n  { code: 'CN-64', name: 'Ningxia' },\n  { code: 'CN-63', name: 'Qinghai' },\n  { code: 'CN-61', name: 'Shaanxi' },\n  { code: 'CN-37', name: 'Shandong' },\n  { code: 'CN-31', name: 'Shanghai' },\n  { code: 'CN-14', name: 'Shanxi' },\n  { code: 'CN-51', name: 'Sichuan' },\n  { code: 'CN-71', name: 'Taiwan' },\n  { code: 'CN-12', name: 'Tianjin' },\n  { code: 'CN-65', name: 'Xinjiang' },\n  { code: 'CN-54', name: 'Xizang' },\n  { code: 'CN-53', name: 'Yunnan' },\n  { code: 'CN-33', name: 'Zhejiang' },\n  // Australian states/territories\n  { code: 'AU-NSW', name: 'New South Wales' },\n  { code: 'AU-QLD', name: 'Queensland' },\n  { code: 'AU-SA', name: 'South Australia' },\n  { code: 'AU-TAS', name: 'Tasmania' },\n  { code: 'AU-VIC', name: 'Victoria' },\n  { code: 'AU-WA', name: 'Western Australia' },\n  { code: 'AU-ACT', name: 'Australian Capital Territory' },\n  { code: 'AU-NT', name: 'Northern Territory' }\n];\n\n@classic\nexport default class BillingInformation extends Transform {\n  deserialize(serialized) {\n    if (serialized) {\n      return {\n        city: serialized.city ? serialized.city : '',\n        state: serialized.state\n          ? stateList.find((state) => state.code === serialized.state)\n          : {},\n        postCode: serialized.postCode,\n        department: serialized.department,\n        address: serialized.address,\n        organization: serialized.organization,\n        country: serialized.country\n          ? {\n              code: serialized.country,\n              name: countryList.name(serialized.country)\n            }\n          : {}\n      };\n    } else {\n      return null;\n    }\n  }\n\n  serialize(deserialized) {\n    if (deserialized) {\n      return {\n        city: deserialized.city,\n        state: deserialized.state ? deserialized.state.code : '',\n        address: deserialized.address,\n        postCode: deserialized.postCode,\n        department: deserialized.department,\n        organization: deserialized.organization,\n        country: deserialized.country ? deserialized.country.code : ''\n      };\n    } else {\n      return null;\n    }\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Transform from '@ember-data/serializer/transform';\nimport countryList from 'iso-3166-country-list';\n\n@classic\nexport default class Country extends Transform {\n  deserialize(serialized) {\n    if (serialized) {\n      return { code: serialized, name: countryList.name(serialized) };\n    } else {\n      return null;\n    }\n  }\n\n  serialize(deserialized) {\n    if (deserialized) {\n      return deserialized.code;\n    } else {\n      return null;\n    }\n  }\n}\n","import FragmentArrayTransform from 'ember-data-model-fragments/transforms/fragment-array';\nexport default FragmentArrayTransform;\n","import FragmentTransform from 'ember-data-model-fragments/transforms/fragment';\nexport default FragmentTransform;\n","import classic from 'ember-classic-decorator';\nimport Transform from '@ember-data/serializer/transform';\nimport { typeOf } from '@ember/utils';\n\n@classic\nexport default class Wrapped extends Transform {\n  deserialize(serialized) {\n    if (typeOf(serialized) === 'array') {\n      return this.deserialize(serialized[0]);\n    } else if (typeOf(serialized) === 'object') {\n      return serialized.text;\n    } else {\n      return serialized;\n    }\n  }\n\n  serialize(deserialized) {\n    return deserialized;\n  }\n}\n","import classic from 'ember-classic-decorator';\nimport Transform from '@ember-data/serializer/transform';\n\n@classic\nexport default class Xml extends Transform {\n  deserialize(serialized) {\n    if (!serialized || serialized === 'xmlversiog==') {\n      return null;\n    } else {\n      let xml = this.b64DecodeUnicode(serialized);\n      return ['<hsh></hsh>', 'ée'].includes(xml) ? '' : xml;\n    }\n  }\n\n  serialize(deserialized) {\n    if (!deserialized) {\n      return null;\n    } else {\n      return this.b64EncodeUnicode(deserialized);\n    }\n  }\n\n  b64EncodeUnicode(str) {\n    // first we use encodeURIComponent to get percent-encoded UTF-8,\n    // then we convert the percent encodings into raw bytes which\n    // can be fed into btoa.\n    return btoa(\n      encodeURIComponent(str).replace(\n        /%([0-9A-F]{2})/g,\n        function toSolidBytes(match, p1) {\n          return String.fromCharCode('0x' + p1);\n        }\n      )\n    );\n  }\n\n  b64DecodeUnicode(str) {\n    try {\n      // Going backwards: from bytestream, to percent-encoding, to original string.\n      return decodeURIComponent(\n        atob(str)\n          .split('')\n          .map(function (c) {\n            return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n          })\n          .join('')\n      );\n    } catch (err) {\n      return null;\n    }\n  }\n}\n","export default function checkForTex(text, hash) {\n  let ret = false;\n\n  if (text && text.match(/(?:\\$|\\\\\\(|\\\\\\[|\\\\begin\\{.*?})/)) {\n    ret = true;\n  }\n\n  return ret;\n}\n","export default function currentDate(separator = '', hash) {\n  var ret = '';\n  var today = new Date();\n  var dd = String(today.getDate()).padStart(2, '0');\n  var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!\n  var yyyy = today.getFullYear();\n\n  ret = yyyy + separator + mm + separator + dd;\n\n  return ret;\n}\n","const OECD_SCHEME = 'Fields of Science and Technology (FOS)';\nconst OECD_SCHEME_URI = 'http://www.oecd.org/science/inno/38235147.pdf';\nconst MAPPING = {\n  mappingListVersion: '1.0',\n  originalUrl:\n    'https://www.dfg.de/en/dfg_profile/statutory_bodies/review_boards/subject_areas/index.jsp',\n  dfgFields: [\n    {\n      dfgId: '101',\n      dfgLabel: 'Ancient Cultures',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '101',\n      dfgLabel: 'Ancient Cultures',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10101',\n      dfgLabel: 'Prehistory',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '10102',\n      dfgLabel: 'Classical Philology',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10103',\n      dfgLabel: 'Ancient History',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '10104',\n      dfgLabel: 'Classical Archaeology',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '10105',\n      dfgLabel: 'Egyptology and Ancient Near Eastern Studies',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '102',\n      dfgLabel: 'History',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '10201',\n      dfgLabel: 'Medieval History',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '10202',\n      dfgLabel: 'Early Modern History',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '10203',\n      dfgLabel: 'Modern and Current History',\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      dfgId: '10204',\n      dfgLabel: 'History of Science',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '103',\n      dfgLabel: 'Fine Arts, Music, Theatre and Media Studies',\n      fosId: '6.4',\n      fosLabel: 'Art (arts, history of arts, performing arts, music)'\n    },\n    {\n      dfgId: '10301',\n      dfgLabel: 'Art History',\n      fosId: '6.4',\n      fosLabel: 'Art (arts, history of arts, performing arts, music)'\n    },\n    {\n      dfgId: '10302',\n      dfgLabel: 'Musicology',\n      fosId: '6.4',\n      fosLabel: 'Art (arts, history of arts, performing arts, music)'\n    },\n    {\n      dfgId: '10303',\n      dfgLabel: 'Theatre and Media Studies',\n      fosId: '6.4',\n      fosLabel: 'Art (arts, history of arts, performing arts, music)'\n    },\n    {\n      dfgId: '104',\n      dfgLabel: 'Linguistics',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10401',\n      dfgLabel: 'General and Applied Linguistics',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10402',\n      dfgLabel: 'Individual Linguistics',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10403',\n      dfgLabel: 'Typology, NonEuropean Languages, Historical Linguistics',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '105',\n      dfgLabel: 'Literary Studies',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10501',\n      dfgLabel: 'Medieval German Literature',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10502',\n      dfgLabel: 'Modern German Literature',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10503',\n      dfgLabel: 'European and American Literature',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10504',\n      dfgLabel: 'General and Comparative Literature and Cultural Studies',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '106',\n      dfgLabel:\n        'NonEuropean Languages and Cultures, Social and Cultural Anthropology, Jewish Studies and Religious Studies',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '106',\n      dfgLabel:\n        'NonEuropean Languages and Cultures, Social and Cultural Anthropology, Jewish Studies and Religious Studies',\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      dfgId: '106',\n      dfgLabel:\n        'NonEuropean Languages and Cultures, Social and Cultural Anthropology, Jewish Studies and Religious Studies',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10601',\n      dfgLabel: 'Social and Cultural Anthropology and Ethnology/Folklore',\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      dfgId: '10602',\n      dfgLabel: 'Asian Studies',\n      fosId: '6.5',\n      fosLabel: 'Other humanities'\n    },\n    {\n      dfgId: '10602',\n      dfgLabel: 'Asian Studies',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10602',\n      dfgLabel: 'Asian Studies',\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      dfgId: '10603',\n      dfgLabel: 'African, American and Oceania Studies',\n      fosId: '6.5',\n      fosLabel: 'Other humanities'\n    },\n    {\n      dfgId: '10603',\n      dfgLabel: 'African, American and Oceania Studies',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10603',\n      dfgLabel: 'African, American and Oceania Studies',\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      dfgId: '10604',\n      dfgLabel: 'Islamic Studies, Arabian Studies, Semitic Studies',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '10604',\n      dfgLabel: 'Islamic Studies, Arabian Studies, Semitic Studies',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10604',\n      dfgLabel: 'Islamic Studies, Arabian Studies, Semitic Studies',\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      dfgId: '10605',\n      dfgLabel: 'Religious Studies and Jewish Studies',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '10605',\n      dfgLabel: 'Religious Studies and Jewish Studies',\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      dfgId: '10605',\n      dfgLabel: 'Religious Studies and Jewish Studies',\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      dfgId: '107',\n      dfgLabel: 'Theology',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '10701',\n      dfgLabel: 'Protestant Theology',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '10702',\n      dfgLabel: 'Roman Catholic Theology',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '108',\n      dfgLabel: 'Philosophy',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '10801',\n      dfgLabel: 'History of Philosophy',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '10802',\n      dfgLabel: 'Theoretical Philosophy',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '10803',\n      dfgLabel: 'Practical Philosophy',\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      dfgId: '109',\n      dfgLabel: 'Education Sciences',\n      fosId: '5.3',\n      fosLabel: 'Educational sciences'\n    },\n    {\n      dfgId: '10901',\n      dfgLabel: 'General Education and History of Education',\n      fosId: '5.3',\n      fosLabel: 'Educational sciences'\n    },\n    {\n      dfgId: '10902',\n      dfgLabel: 'Research on Teaching, Learning, and Training',\n      fosId: '5.3',\n      fosLabel: 'Educational sciences'\n    },\n    {\n      dfgId: '10903',\n      dfgLabel:\n        'Research on Socialization and Educational Institutions and Professions',\n      fosId: '5.3',\n      fosLabel: 'Educational sciences'\n    },\n    {\n      dfgId: '110',\n      dfgLabel: 'Psychology',\n      fosId: '5.1',\n      fosLabel: 'Psychology'\n    },\n    {\n      dfgId: '11001',\n      dfgLabel: 'General, Biological and Mathematical Psychology',\n      fosId: '5.1',\n      fosLabel: 'Psychology'\n    },\n    {\n      dfgId: '11002',\n      dfgLabel: 'Developmental and Educational Psychology',\n      fosId: '5.1',\n      fosLabel: 'Psychology'\n    },\n    {\n      dfgId: '11002',\n      dfgLabel: 'Developmental and Educational Psychology',\n      fosId: '5.3',\n      fosLabel: 'Educational sciences'\n    },\n    {\n      dfgId: '11003',\n      dfgLabel: 'Social Psychology, Industrial and Organisational Psychology',\n      fosId: '5.1',\n      fosLabel: 'Psychology'\n    },\n    {\n      dfgId: '11004',\n      dfgLabel:\n        'Differential Psychology, Clinical Psychology, Medical Psychology, Methodology',\n      fosId: '5.1',\n      fosLabel: 'Psychology'\n    },\n    {\n      dfgId: '111',\n      dfgLabel: 'Social Sciences',\n      fosId: '5',\n      fosLabel: 'Social sciences'\n    },\n    {\n      dfgId: '11101',\n      dfgLabel: 'Sociological Theory',\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      dfgId: '11102',\n      dfgLabel: 'Empirical Social Research',\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      dfgId: '11102',\n      dfgLabel: 'Empirical Social Research',\n      fosId: '5.9',\n      fosLabel: 'Other social sciences'\n    },\n    {\n      dfgId: '11103',\n      dfgLabel: 'Communication Sciences',\n      fosId: '5.8',\n      fosLabel: 'Media and communications'\n    },\n    {\n      dfgId: '11104',\n      dfgLabel: 'Political Science',\n      fosId: '5.6',\n      fosLabel: 'Political Science'\n    },\n    {\n      dfgId: '112',\n      dfgLabel: 'Economics',\n      fosId: '5.2',\n      fosLabel: 'Economics and business'\n    },\n    {\n      dfgId: '11201',\n      dfgLabel: 'Economic Theory',\n      fosId: '5.2',\n      fosLabel: 'Economics and business'\n    },\n    {\n      dfgId: '11202',\n      dfgLabel: 'Economic and Social Policy',\n      fosId: '5.2',\n      fosLabel: 'Economics and business'\n    },\n    {\n      dfgId: '11203',\n      dfgLabel: 'Public Finance',\n      fosId: '5.6',\n      fosLabel: 'Political Science'\n    },\n    {\n      dfgId: '11203',\n      dfgLabel: 'Public Finance',\n      fosId: '5.2',\n      fosLabel: 'Economics and business'\n    },\n    {\n      dfgId: '11204',\n      dfgLabel: 'Business Administration',\n      fosId: '5.2',\n      fosLabel: 'Economics and business'\n    },\n    {\n      dfgId: '11205',\n      dfgLabel: 'Statistics and Econometrics',\n      fosId: '5.2',\n      fosLabel: 'Economics and business'\n    },\n    {\n      dfgId: '11206',\n      dfgLabel: 'Economic and Social History',\n      fosId: '5.2',\n      fosLabel: 'Economics and business'\n    },\n    {\n      dfgId: '113',\n      dfgLabel: 'Jurisprudence',\n      fosId: '5.5',\n      fosLabel: 'Law'\n    },\n    {\n      dfgId: '11301',\n      dfgLabel: 'Legal and Political Philosophy, Legal History, Legal Theory',\n      fosId: '5.5',\n      fosLabel: 'Law'\n    },\n    {\n      dfgId: '11302',\n      dfgLabel: 'Private Law',\n      fosId: '5.5',\n      fosLabel: 'Law'\n    },\n    {\n      dfgId: '11303',\n      dfgLabel: 'Public Law',\n      fosId: '5.5',\n      fosLabel: 'Law'\n    },\n    {\n      dfgId: '11304',\n      dfgLabel: 'Criminal Law and Law of Criminal Procedure',\n      fosId: '5.5',\n      fosLabel: 'Law'\n    },\n    {\n      dfgId: '11305',\n      dfgLabel: 'Criminology',\n      fosId: '5.5',\n      fosLabel: 'Law'\n    },\n    {\n      dfgId: '201',\n      dfgLabel: 'Basic Biological and Medical Research',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20101',\n      dfgLabel: 'Biochemistry',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20102',\n      dfgLabel: 'Biophysics',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20103',\n      dfgLabel: 'Cell Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20104',\n      dfgLabel: 'Structural Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20105',\n      dfgLabel: 'General Genetics',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20106',\n      dfgLabel: 'Developmental Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20107',\n      dfgLabel: 'Bioinformatics and Theoretical Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20107',\n      dfgLabel: 'Bioinformatics and Theoretical Biology',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '20108',\n      dfgLabel: 'Anatomy',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20108',\n      dfgLabel: 'Anatomy',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '202',\n      dfgLabel: 'Plant Sciences',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20201',\n      dfgLabel: 'Plant Systematics and Evolution',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20202',\n      dfgLabel: 'Plant Ecology and Ecosystem Analysis',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20203',\n      dfgLabel: 'Interorganismic Interactions of Plants',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20204',\n      dfgLabel: 'Plant Physiology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20205',\n      dfgLabel: 'Plant Biochemistry and Biophysics',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20206',\n      dfgLabel: 'Plant Cell and Developmental Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20207',\n      dfgLabel: 'Â Plant Genetics',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '203',\n      dfgLabel: 'Zoology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20301',\n      dfgLabel: 'Systematics and Morphology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20302',\n      dfgLabel: 'Evolution, Anthropology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20303',\n      dfgLabel: 'Animal Ecology, Biodiversity and Ecosystem Research',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20304',\n      dfgLabel: 'Sensory and Behavioural Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20305',\n      dfgLabel: 'Biochemistry and Animal Physiology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20306',\n      dfgLabel: 'Animal Genetics, Cell and Developmental Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '204',\n      dfgLabel: 'Microbiology, Virology and Immunology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '204',\n      dfgLabel: 'Microbiology, Virology and Immunology',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '204',\n      dfgLabel: 'Microbiology, Virology and Immunology',\n      fosId: '3.3',\n      fosLabel: 'Health sciences'\n    },\n    {\n      dfgId: '20401',\n      dfgLabel: 'Metabolism, Biochemistry and Genetics of Microorganisms',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20402',\n      dfgLabel: 'Microbial Ecology and Applied Microbiology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20403',\n      dfgLabel: 'Medical Microbiology, Molecular Infection Biology',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20403',\n      dfgLabel: 'Medical Microbiology, Molecular Infection Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20404',\n      dfgLabel: 'Virology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20405',\n      dfgLabel: 'Immunology',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '205',\n      dfgLabel: 'Medicine',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '205',\n      dfgLabel: 'Medicine',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20501',\n      dfgLabel: 'Epidemiology, Medical Biometry, Medical Informatics',\n      fosId: '3.3',\n      fosLabel: 'Health sciences'\n    },\n    {\n      dfgId: '20501',\n      dfgLabel: 'Epidemiology, Medical Biometry, Medical Informatics',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '20502',\n      dfgLabel: 'Public Health, Health Services Research, Social Medicine',\n      fosId: '3.3',\n      fosLabel: 'Health sciences'\n    },\n    {\n      dfgId: '20503',\n      dfgLabel: 'Human Genetics',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20503',\n      dfgLabel: 'Human Genetics',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20504',\n      dfgLabel: 'Physiology',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20505',\n      dfgLabel: 'Nutritional Sciences',\n      fosId: '3.3',\n      fosLabel: 'Health sciences'\n    },\n    {\n      dfgId: '20506',\n      dfgLabel: 'Pathology and Forensic Medicine',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20506',\n      dfgLabel: 'Pathology and Forensic Medicine',\n      fosId: '3.5',\n      fosLabel: 'Other medical sciences'\n    },\n    {\n      dfgId: '20507',\n      dfgLabel: 'Clinical Chemistry and Pathobiochemistry',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20507',\n      dfgLabel: 'Clinical Chemistry and Pathobiochemistry',\n      fosId: '2.6',\n      fosLabel: 'Medical engineering'\n    },\n    {\n      dfgId: '20508',\n      dfgLabel: 'Pharmacy',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20509',\n      dfgLabel: 'Pharmacology',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20510',\n      dfgLabel: 'Toxicology and Occupational Medicine',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20511',\n      dfgLabel: 'Anaesthesiology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20512',\n      dfgLabel: 'Cardiology, Angiology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20513',\n      dfgLabel: 'Pneumology, Clinical Infectiology, Intensive Care Medicine',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20514',\n      dfgLabel: 'Hematology, Oncology, Transfusion Medicine',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20515',\n      dfgLabel: 'Gastroenterology, Metabolism',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20516',\n      dfgLabel: 'Nephrology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20517',\n      dfgLabel: 'Endocrinology, Diabetology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20518',\n      dfgLabel: 'Rheumatology, Clinical Immunology, Allergology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20519',\n      dfgLabel: 'Dermatology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20520',\n      dfgLabel: 'Pediatric and Adolescent Medicine',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20521',\n      dfgLabel: 'Gynaecology and Obstetrics',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20522',\n      dfgLabel: 'Reproductive Medicine/Biology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20522',\n      dfgLabel: 'Reproductive Medicine/Biology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20523',\n      dfgLabel: 'Urology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20524',\n      dfgLabel: 'Gerontology and Geriatric Medicine',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20525',\n      dfgLabel: 'Vascular and Visceral Surgery',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20526',\n      dfgLabel: 'Cardiothoracic Surgery',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20527',\n      dfgLabel: 'Traumatology and Orthopaedics',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20528',\n      dfgLabel: 'Dentistry, Oral Surgery',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20529',\n      dfgLabel: 'Otolaryngology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20530',\n      dfgLabel: 'Radiology and Nuclear Medicine',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20531',\n      dfgLabel: 'Radiation Oncology and Radiobiology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20532',\n      dfgLabel: 'Biomedical Technology and Medical Physics',\n      fosId: '3.4',\n      fosLabel: 'Health biotechnology'\n    },\n    {\n      dfgId: '206',\n      dfgLabel: 'Neurosciences',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '206',\n      dfgLabel: 'Neurosciences',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20601',\n      dfgLabel: 'Molecular Neuroscience and Neurogenetics',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20601',\n      dfgLabel: 'Molecular Neuroscience and Neurogenetics',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20602',\n      dfgLabel: 'Cellular Neuroscience',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20602',\n      dfgLabel: 'Cellular Neuroscience',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20603',\n      dfgLabel: 'Developmental Neurobiology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20604',\n      dfgLabel: 'Systemic Neuroscience, Computational Neuroscience, Behaviour',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20604',\n      dfgLabel: 'Systemic Neuroscience, Computational Neuroscience, Behaviour',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20604',\n      dfgLabel: 'Systemic Neuroscience, Computational Neuroscience, Behaviour',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '20605',\n      dfgLabel: 'Comparative Neurobiology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20605',\n      dfgLabel: 'Comparative Neurobiology',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20606',\n      dfgLabel: 'Cognitive Neuroscience and Neuroimaging',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20606',\n      dfgLabel: 'Cognitive Neuroscience and Neuroimaging',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20606',\n      dfgLabel: 'Cognitive Neuroscience and Neuroimaging',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20607',\n      dfgLabel: 'Molecular Neurology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20607',\n      dfgLabel: 'Molecular Neurology',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '20608',\n      dfgLabel: 'Clinical Neurosciences I Neurology, Neurosurgery',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20609',\n      dfgLabel: 'Biological Psychiatry',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20609',\n      dfgLabel: 'Biological Psychiatry',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20610',\n      dfgLabel:\n        'Clinical Neurosciences II Psychiatry, Psychotherapy, Psychosomatic Medicine',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '20611',\n      dfgLabel: 'Clinical Neurosciences III Ophthalmology',\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      dfgId: '207',\n      dfgLabel: 'Agriculture, Forestry, Horticulture and Veterinary Medicine',\n      fosId: '4.1',\n      fosLabel: 'Agriculture, forestry, and fisheries'\n    },\n    {\n      dfgId: '20701',\n      dfgLabel: 'Soil Sciences',\n      fosId: '4.1',\n      fosLabel: 'Agriculture, forestry, and fisheries'\n    },\n    {\n      dfgId: '20702',\n      dfgLabel: 'Plant Cultivation',\n      fosId: '4.1',\n      fosLabel: 'Agriculture, forestry, and fisheries'\n    },\n    {\n      dfgId: '20703',\n      dfgLabel: 'Plant Nutrition',\n      fosId: '4.1',\n      fosLabel: 'Agriculture, forestry, and fisheries'\n    },\n    {\n      dfgId: '20704',\n      dfgLabel: 'Ecology of Agricultural Landscapes',\n      fosId: '4.5',\n      fosLabel: 'Other agricultural sciences'\n    },\n    {\n      dfgId: '20705',\n      dfgLabel: 'Plant Breeding',\n      fosId: '4.1',\n      fosLabel: 'Agriculture, forestry, and fisheries'\n    },\n    {\n      dfgId: '20706',\n      dfgLabel: 'Phytomedicine',\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      dfgId: '20707',\n      dfgLabel: 'Agricultural and Food Process Engineering',\n      fosId: '2.11',\n      fosLabel: 'Other engineering and technologies'\n    },\n    {\n      dfgId: '20708',\n      dfgLabel: 'Agricultural Economics and Sociology',\n      fosId: '4.5',\n      fosLabel: 'Other agricultural sciences'\n    },\n    {\n      dfgId: '20709',\n      dfgLabel: 'Inventory, Control and Use of Forest Resources',\n      fosId: '4.1',\n      fosLabel: 'Agriculture, forestry, and fisheries'\n    },\n    {\n      dfgId: '20710',\n      dfgLabel: 'Basic Forest Research',\n      fosId: '4.1',\n      fosLabel: 'Agriculture, forestry, and fisheries'\n    },\n    {\n      dfgId: '20711',\n      dfgLabel: 'Animal Husbandry, Breeding and Hygiene',\n      fosId: '4.2',\n      fosLabel: 'Animal and dairy science'\n    },\n    {\n      dfgId: '20712',\n      dfgLabel: 'Animal Nutrition and Nutrition Physiology',\n      fosId: '4.2',\n      fosLabel: 'Animal and dairy science'\n    },\n    {\n      dfgId: '20713',\n      dfgLabel: 'Basic Veterinary Medical Science',\n      fosId: '4.3',\n      fosLabel: 'Veterinary science'\n    },\n    {\n      dfgId: '20714',\n      dfgLabel:\n        'Basic Research on Pathogenesis, Diagnostics and Therapy and Clinical Veterinary Medicine',\n      fosId: '4.3',\n      fosLabel: 'Veterinary science'\n    },\n    {\n      dfgId: '301',\n      dfgLabel: 'Molecular Chemistry',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30101',\n      dfgLabel: 'Inorganic Molecular Chemistry',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30102',\n      dfgLabel: 'Organic Molecular Chemistry',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '302',\n      dfgLabel: 'Chemical Solid State and Surface Research',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30201',\n      dfgLabel: 'Solid State and Surface Chemistry, Material Synthesis',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30201',\n      dfgLabel: 'Solid State and Surface Chemistry, Material Synthesis',\n      fosId: '2.4',\n      fosLabel: 'Chemical engineering'\n    },\n    {\n      dfgId: '30202',\n      dfgLabel:\n        'Physical Chemistry of Solids and Surfaces, Material Characterisation',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30203',\n      dfgLabel: 'Theory and Modelling',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '303',\n      dfgLabel: 'Physical and Theoretical Chemistry',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30301',\n      dfgLabel:\n        'Physical Chemistry of Molecules, Interfaces and Liquids Spectroscopy, Kinetics',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30302',\n      dfgLabel: 'General Theoretical Chemistry',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '304',\n      dfgLabel: 'Analytical Chemistry, Method Development (Chemistry)',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30401',\n      dfgLabel: 'Analytical Chemistry, Method Development (Chemistry)',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '305',\n      dfgLabel: 'Biological Chemistry and Food Chemistry',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '305',\n      dfgLabel: 'Biological Chemistry and Food Chemistry',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '30501',\n      dfgLabel: 'Biological and Biomimetic Chemistry',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30501',\n      dfgLabel: 'Biological and Biomimetic Chemistry',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '30502',\n      dfgLabel: 'Food Chemistry',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30502',\n      dfgLabel: 'Food Chemistry',\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      dfgId: '306',\n      dfgLabel: 'Polymer Research',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30601',\n      dfgLabel: 'Preparatory and Physical Chemistry of Polymers',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30602',\n      dfgLabel: 'Experimental and Theoretical Physics of Polymers',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '30603',\n      dfgLabel: 'Polymer Materials',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '30603',\n      dfgLabel: 'Polymer Materials',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '307',\n      dfgLabel: 'Condensed Matter Physics',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '30701',\n      dfgLabel: 'Experimental Condensed Matter Physics',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '30702',\n      dfgLabel: 'Theoretical Condensed Matter Physics',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '308',\n      dfgLabel:\n        'Optics, Quantum Optics and Physics of Atoms, Molecules and Plasmas',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '30801',\n      dfgLabel: 'Optics, Quantum Optics, Atoms, Molecules, Plasmas',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '309',\n      dfgLabel: 'Particles, Nuclei and Fields',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '30901',\n      dfgLabel: 'Particles, Nuclei and Fields',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '310',\n      dfgLabel:\n        'Statistical Physics, Soft Matter, Biological Physics, Nonlinear Dynamics',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '310',\n      dfgLabel:\n        'Statistical Physics, Soft Matter, Biological Physics, Nonlinear Dynamics',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '31001',\n      dfgLabel:\n        'Statistical Physics, Soft Matter, Biological Physics, Nonlinear Dynamics',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '31001',\n      dfgLabel:\n        'Statistical Physics, Soft Matter, Biological Physics, Nonlinear Dynamics',\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      dfgId: '311',\n      dfgLabel: 'Astrophysics and Astronomy',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '31101',\n      dfgLabel: 'Astrophysics and Astronomy',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '312',\n      dfgLabel: 'Mathematics',\n      fosId: '1.1',\n      fosLabel: 'Mathematics'\n    },\n    {\n      dfgId: '31201',\n      dfgLabel: 'Mathematics',\n      fosId: '1.1',\n      fosLabel: 'Mathematics'\n    },\n    {\n      dfgId: '313',\n      dfgLabel: 'Atmospheric Science and Oceanography',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31301',\n      dfgLabel: 'Atmospheric Science',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31302',\n      dfgLabel: 'Oceanography',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '314',\n      dfgLabel: 'Geology and Palaeontology',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31401',\n      dfgLabel: 'Geology and Palaeontology',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '315',\n      dfgLabel: 'Geophysics and Geodesy',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31501',\n      dfgLabel: 'Geophysics',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31502',\n      dfgLabel:\n        'Geodesy, Photogrammetry, Remote Sensing, Geoinformatics, Cartography',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31502',\n      dfgLabel:\n        'Geodesy, Photogrammetry, Remote Sensing, Geoinformatics, Cartography',\n      fosId: '2.7',\n      fosLabel: 'Environmental engineering'\n    },\n    {\n      dfgId: '31502',\n      dfgLabel:\n        'Geodesy, Photogrammetry, Remote Sensing, Geoinformatics, Cartography',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '316',\n      dfgLabel: 'Geochemistry, Mineralogy and Crystallography',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31601',\n      dfgLabel: 'Geochemistry, Mineralogy and Crystallography',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '317',\n      dfgLabel: 'Geography',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '317',\n      dfgLabel: 'Geography',\n      fosId: '5.7',\n      fosLabel: 'Social and economic geography'\n    },\n    {\n      dfgId: '31701',\n      dfgLabel: 'Physical Geography',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31702',\n      dfgLabel: 'Human Geography',\n      fosId: '5.7',\n      fosLabel: 'Social and economic geography'\n    },\n    {\n      dfgId: '318',\n      dfgLabel: 'Water Research',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '31801',\n      dfgLabel:\n        'Hydrogeology, Hydrology, Limnology, Urban Water Management, Water Chemistry, Integrated Water Resources',\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      dfgId: '401',\n      dfgLabel: 'Production Technology',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '401',\n      dfgLabel: 'Production Technology',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40101',\n      dfgLabel: 'MetalCutting Manufacturing Engineering',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40102',\n      dfgLabel: 'Primary Shaping and Reshaping Technology',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40103',\n      dfgLabel: 'Micro, Precision, Mounting, Joining, Separation Technology',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40104',\n      dfgLabel: 'Plastics Engineering',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40105',\n      dfgLabel:\n        'Production Automation, Factory Operation, Operations Management',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40105',\n      dfgLabel:\n        'Production Automation, Factory Operation, Operations Management',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, Electronic engineering, Information engineering'\n    },\n    {\n      dfgId: '402',\n      dfgLabel: 'Mechanics and Constructive Mechanical Engineering',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40201',\n      dfgLabel: 'Construction, Machine Elements',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40202',\n      dfgLabel: 'Mechanics',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40203',\n      dfgLabel: 'Lightweight Construction, Textile Technology',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40204',\n      dfgLabel: 'Acoustics',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40204',\n      dfgLabel: 'Acoustics',\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      dfgId: '403',\n      dfgLabel: 'Process Engineering, Technical Chemistry',\n      fosId: '2.4',\n      fosLabel: 'Chemical engineering'\n    },\n    {\n      dfgId: '40301',\n      dfgLabel: 'Chemical and Thermal Process Engineering',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40301',\n      dfgLabel: 'Chemical and Thermal Process Engineering',\n      fosId: '2.4',\n      fosLabel: 'Chemical engineering'\n    },\n    {\n      dfgId: '40302',\n      dfgLabel: 'Technical Chemistry',\n      fosId: '2.4',\n      fosLabel: 'Chemical engineering'\n    },\n    {\n      dfgId: '40303',\n      dfgLabel: 'Mechanical Process Engineering',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40304',\n      dfgLabel: 'Biological Process Engineering',\n      fosId: '2.9',\n      fosLabel: 'Industrial biotechnology'\n    },\n    {\n      dfgId: '404',\n      dfgLabel: 'Heat Energy Technology, Thermal Machines, Fluid Mechanics',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40401',\n      dfgLabel: 'Energy Process Engineering',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40402',\n      dfgLabel: 'Technical Thermodynamics',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40403',\n      dfgLabel: 'Fluid Mechanics',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '40404',\n      dfgLabel: 'Hydraulic and Turbo Engines and Piston Engines',\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      dfgId: '405',\n      dfgLabel: 'Materials Engineering',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40501',\n      dfgLabel:\n        'Metallurgical and Thermal Processes, Thermomechanical Treatment of Materials',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40502',\n      dfgLabel: 'Sintered Metallic and Ceramic Materials',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40503',\n      dfgLabel: 'Composite Materials',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40504',\n      dfgLabel: 'Mechanical Behaviour of Construction Materials',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40505',\n      dfgLabel: 'Coating and Surface Technology',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '406',\n      dfgLabel: 'Materials Science',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40601',\n      dfgLabel: 'Thermodynamics and Kinetics of Materials',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40602',\n      dfgLabel: 'Synthesis and Properties of Functional Materials',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40603',\n      dfgLabel: 'Microstructural Mechanical Properties of Materials',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40604',\n      dfgLabel: 'Structuring and Functionalisation',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '40605',\n      dfgLabel: 'Biomaterials',\n      fosId: '2.9',\n      fosLabel: 'Industrial Biotechnology'\n    },\n    {\n      dfgId: '407',\n      dfgLabel: 'Systems Engineering',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40701',\n      dfgLabel: 'Automation, Control Systems, Robotics, Mechatronics',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40702',\n      dfgLabel: 'Measurement Systems',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40703',\n      dfgLabel: 'Microsystems',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40704',\n      dfgLabel: 'Traffic and Transport Systems, Logistics',\n      fosId: '2.1',\n      fosLabel: 'Civil engineering'\n    },\n    {\n      dfgId: '40704',\n      dfgLabel: 'Traffic and Transport Systems, Logistics',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40705',\n      dfgLabel: 'Human Factors, Ergonomics, HumanMachine Systems',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '408',\n      dfgLabel: 'Electrical Engineering',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40801',\n      dfgLabel: 'Electronic Semiconductors, Components, Circuits, Systems',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40802',\n      dfgLabel:\n        'Communications, HighFrequency and Network Technology, Theoretical Electrical Engineering',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40803',\n      dfgLabel: 'Electrical Energy Generation, Distribution, Application',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '409',\n      dfgLabel: 'Computer Science',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '409',\n      dfgLabel: 'Computer Science',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '40901',\n      dfgLabel: 'Theoretical Computer Science',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '40902',\n      dfgLabel: 'Software Technology',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '40903',\n      dfgLabel: 'Operating, Communication and Information Systems',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '40904',\n      dfgLabel: 'Artificial Intelligence, Image and Language Processing',\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      dfgId: '40905',\n      dfgLabel: 'Computer Architecture and Embedded Systems',\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      dfgId: '410',\n      dfgLabel: 'Construction Engineering and Architecture',\n      fosId: '2.1',\n      fosLabel: 'Civil engineering'\n    },\n    {\n      dfgId: '41001',\n      dfgLabel:\n        'Architecture, Building and Construction History, Sustainable Building Technology, Building Design',\n      fosId: '2.1',\n      fosLabel: 'Civil engineering'\n    },\n    {\n      dfgId: '41002',\n      dfgLabel:\n        'Urbanism, Spatial Planning, Transportation and Infrastructure Planning, Landscape Planning',\n      fosId: '2.7',\n      fosLabel: 'Environmental engineering'\n    },\n    {\n      dfgId: '41002',\n      dfgLabel:\n        'Urbanism, Spatial Planning, Transportation and Infrastructure Planning, Landscape Planning',\n      fosId: '5.7',\n      fosLabel: 'Social and economic geography'\n    },\n    {\n      dfgId: '41003',\n      dfgLabel: 'Construction Material Sciences, Chemistry, Building Physics',\n      fosId: '2.1',\n      fosLabel: 'Civil engineering'\n    },\n    {\n      dfgId: '41003',\n      dfgLabel: 'Construction Material Sciences, Chemistry, Building Physics',\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      dfgId: '41004',\n      dfgLabel:\n        'Structural Engineering, Building Informatics, Construction Operation',\n      fosId: '2.1',\n      fosLabel: 'Civil engineering'\n    },\n    {\n      dfgId: '41005',\n      dfgLabel: 'Applied Mechanics, Statics and Dynamics',\n      fosId: '2.1',\n      fosLabel: 'Civil engineering'\n    },\n    {\n      dfgId: '41006',\n      dfgLabel: 'Geotechnics, Hydraulic Engineering',\n      fosId: '2.7',\n      fosLabel: 'Environmental engineering'\n    }\n  ]\n};\n\nexport default {\n  data: MAPPING,\n  findByIds: function (ids) {\n    let subjects = this.data.dfgFields.filter((subject) => {\n      return ids.includes(subject.dfgId);\n    });\n    let unique_subjects = [\n      ...new Map(\n        subjects.map((subject) => [subject['fosId'], subject])\n      ).values()\n    ];\n\n    return unique_subjects.map((subject) => {\n      return {\n        subject: subject.fosLabel,\n        subjectScheme: OECD_SCHEME,\n        schemeUri: OECD_SCHEME_URI,\n        classificationCode: subject.fosId\n      };\n    });\n  }\n};\n","export default function formatCreators(creators, hash) {\n  let limit = creators.length;\n\n  if (hash.showOnly) {\n    limit = hash.showOnly;\n  }\n\n  let names = [];\n  let name;\n\n  creators.forEach((element, index, array) => {\n    name = '';\n\n    if (element.givenName && element.familyName) {\n      name = element.givenName + ' ' + element.familyName;\n    } else if (element.familyName) {\n      name = element.familyName;\n    } else if (element.givenName) {\n      name = element.givenName;\n    } else if (element.name) {\n      name = element.name;\n    } else {\n      name = '';\n    }\n\n    if (name) {\n      names.push(name);\n    }\n  });\n\n  let ret = '';\n\n  names.forEach((element, index, array) => {\n    if (limit > index + 2) {\n      ret = ret + element + ', ';\n    } else if (limit > index + 1) {\n      ret = ret + element + ' & ';\n    } else {\n      ret = ret + element;\n    }\n  });\n\n  return ret;\n}\n","const OECD_SCHEME = 'Fields of Science and Technology (FOS)';\nconst OECD_SCHEME_URI = 'https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf';\nconst MAPPING = {\n  mappingListVersion: '1.0',\n  originalUrl: 'https://web-archive.oecd.org/2012-06-15/138575-38235147.pdf',\n  fosFields: [\n    {\n      fosId: '1',\n      fosLabel: 'Natural sciences'\n    },\n    {\n      fosId: '1.1',\n      fosLabel: 'Mathematics'\n    },\n    {\n      fosId: '1.2',\n      fosLabel: 'Computer and information sciences'\n    },\n    {\n      fosId: '1.3',\n      fosLabel: 'Physical sciences'\n    },\n    {\n      fosId: '1.4',\n      fosLabel: 'Chemical sciences'\n    },\n    {\n      fosId: '1.5',\n      fosLabel: 'Earth and related environmental sciences'\n    },\n    {\n      fosId: '1.6',\n      fosLabel: 'Biological sciences'\n    },\n    {\n      fosId: '1.7',\n      fosLabel: 'Other natural sciences'\n    },\n    {\n      fosId: '2',\n      fosLabel: 'Engineering and technology'\n    },\n    {\n      fosId: '2.1',\n      fosLabel: 'Civil engineering'\n    },\n    {\n      fosId: '2.2',\n      fosLabel:\n        'Electrical engineering, electronic engineering, information engineering'\n    },\n    {\n      fosId: '2.3',\n      fosLabel: 'Mechanical engineering'\n    },\n    {\n      fosId: '2.4',\n      fosLabel: 'Chemical engineering'\n    },\n    {\n      fosId: '2.5',\n      fosLabel: 'Materials engineering'\n    },\n    {\n      fosId: '2.6',\n      fosLabel: 'Medical engineering'\n    },\n    {\n      fosId: '2.7',\n      fosLabel: 'Environmental engineering'\n    },\n    {\n      fosId: '2.8',\n      fosLabel: 'Environmental biotechnology'\n    },\n    {\n      fosId: '2.9',\n      fosLabel: 'Industrial biotechnology'\n    },\n    {\n      fosId: '2.10',\n      fosLabel: 'Nanotechnology'\n    },\n    {\n      fosId: '2.11',\n      fosLabel: 'Other engineering and technologies'\n    },\n    {\n      fosId: '3',\n      fosLabel: 'Medical and health sciences'\n    },\n    {\n      fosId: '3.1',\n      fosLabel: 'Basic medicine'\n    },\n    {\n      fosId: '3.2',\n      fosLabel: 'Clinical medicine'\n    },\n    {\n      fosId: '3.3',\n      fosLabel: 'Health sciences'\n    },\n    {\n      fosId: '3.4',\n      fosLabel: 'Medical biotechnology'\n    },\n    {\n      fosId: '3.5',\n      fosLabel: 'Other medical sciences'\n    },\n    {\n      fosId: '4',\n      fosLabel: 'Agricultural sciences'\n    },\n    {\n      fosId: '4.1',\n      fosLabel: 'Agriculture, forestry and fisheries'\n    },\n    {\n      fosId: '4.2',\n      fosLabel: 'Animal and dairy science'\n    },\n    {\n      fosId: '4.3',\n      fosLabel: 'Veterinary sciences'\n    },\n    {\n      fosId: '4.4',\n      fosLabel: 'Agricultural biotechnology'\n    },\n    {\n      fosId: '4.5',\n      fosLabel: 'Other agricultural sciences'\n    },\n    {\n      fosId: '5',\n      fosLabel: 'Social sciences'\n    },\n    {\n      fosId: '5.1',\n      fosLabel: 'Psychology'\n    },\n    {\n      fosId: '5.2',\n      fosLabel: 'Economics and business'\n    },\n    {\n      fosId: '5.3',\n      fosLabel: 'Educational sciences'\n    },\n    {\n      fosId: '5.4',\n      fosLabel: 'Sociology'\n    },\n    {\n      fosId: '5.5',\n      fosLabel: 'Law'\n    },\n    {\n      fosId: '5.6',\n      fosLabel: 'Political science'\n    },\n    {\n      fosId: '5.7',\n      fosLabel: 'Social and economic geography'\n    },\n    {\n      fosId: '5.8',\n      fosLabel: 'Media and communications'\n    },\n    {\n      fosId: '5.9',\n      fosLabel: 'Other social sciences'\n    },\n    {\n      fosId: '6',\n      fosLabel: 'Humanities'\n    },\n    {\n      fosId: '6.1',\n      fosLabel: 'History and archaeology'\n    },\n    {\n      fosId: '6.2',\n      fosLabel: 'Languages and literature'\n    },\n    {\n      fosId: '6.3',\n      fosLabel: 'Philosophy, ethics and religion'\n    },\n    {\n      fosId: '6.4',\n      fosLabel: 'Arts (arts, history of arts, performing arts, music)'\n    },\n    {\n      fosId: '6.5',\n      fosLabel: 'Other humanities'\n    }\n  ]\n};\n\nexport default {\n  data: MAPPING,\n  scheme: OECD_SCHEME,\n  schemeUri: OECD_SCHEME_URI,\n  allLabels: function () {\n    return this.data.fosFields.map(function (fosField) {\n      return fosField.fosLabel;\n    });\n  },\n\n  findByLabel: function (value) {\n    return this.data.fosFields.find((fosField) => fosField.fosLabel == value);\n  },\n  findSubjectByLabel: function (value) {\n    var fos = this.findByLabel(value);\n    if (fos) {\n      return {\n        subject: fos.fosLabel,\n        subjectScheme: OECD_SCHEME,\n        schemeUri: OECD_SCHEME_URI,\n        classificationCode: fos.fosId\n      };\n    }\n    return fos;\n  }\n};\n","export default function isAbleTo(self = null) {\n  let ret = false;\n\n  if (self) {\n    if (self.get('currentUser.role_id') === 'consortium_admin') {\n      if (\n        self.get('model.provider.id') === undefined && \n        self.get('model.provider.consortium.id') === undefined\n      ) {\n        // 'this.get('model.provider. ...') === undefined' -  Happens only on contact deletion \n        //  as the result of destroyRecord which destroys the contact/provider relationship.\n        ret = true;\n      } else {\n        ret =\n        (self.get('model.provider.memberType') === 'consortium_organization' &&\n          self.get('currentUser.provider_id') ===\n            self.get('model.provider.consortium.id')) ||\n        (self.get('model.provider.memberType') === 'consortium' &&\n          self.get('currentUser.provider_id') ===\n            self.get('model.provider.id'));\n      }\n    }\n  }\n\n  return ret;\n}\n","export default function isEmpty(val) {\n  return val === undefined || val == null || val.length <= 0 ? true : false;\n}\n","import isEmpty from '../utils/is-empty';\n\nexport default function reasonUtil(val = null, hash = { default: '' }) {\n  let ret = hash.default;\n\n  if (val) {\n    if (typeof val === 'object') {\n      if (\n        val.responseJSON &&\n        val.responseJSON.errors &&\n        Array.isArray(val.responseJSON.errors) &&\n        val.responseJSON.errors.length > 0 &&\n        val.responseJSON.errors[0].title\n      ) {\n        ret = !isEmpty(val.responseJSON.errors[0].title)\n          ? val.responseJSON.errors[0].title\n          : hash.default;\n      } else if (\n        val.errors &&\n        Array.isArray(val.errors) &&\n        val.errors.length > 0 &&\n        val.errors[0].title\n      ) {\n        ret = !isEmpty(val.errors[0].title)\n          ? val.errors[0].title\n          : hash.default;\n      } else {\n        ret = hash.default;\n      }\n    } else if (typeof val === 'string' && !isEmpty(val)) {\n      ret = val;\n    } else {\n      ret = hash.default;\n    }\n  }\n\n  return ret;\n}\n","export default function validatePwdInputs(route) {\n  // Return true for any of the following routes.\n  return (\n    route == 'providers.show.change' ||\n    route == 'repositories.show.change' ||\n    route == 'change'\n  );\n}\n","import classic from 'ember-classic-decorator';\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport { isBlank } from '@ember/utils';\n\n@classic\nclass BillingState extends BaseValidator {\n  validate(value, options, model) {\n    if (isBlank(model.get('billingInformation.country'))) {\n      return true;\n    } else if (\n      !['US', 'CA', 'AU', 'CN'].includes(\n        model.get('billingInformation.country.code')\n      )\n    ) {\n      return true;\n    } else if (value) {\n      return true;\n    } else {\n      let message =\n        \"Your organization's state/province for billing purposes is required.\";\n      return message;\n    }\n  }\n}\n\nBillingState.reopenClass({\n  getDependentsFor() {\n    return ['billingInformation'];\n  }\n});\n\nexport default BillingState;\n","import classic from 'ember-classic-decorator';\n/* eslint-disable no-useless-escape */\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n@classic\nclass ContributorType extends BaseValidator {\n  validate(value, options, model) {\n    const organizationalContributorTypes = [\n      'HostingInstitution',\n      'RegistrationAgency',\n      'RegistrationAuthority',\n      'ResearchGroup',\n      'Distributor'\n    ];\n\n    const contributorTypes = [\n      'ContactPerson',\n      'DataCollector',\n      'DataCurator',\n      'DataManager',\n      'Distributor',\n      'Editor',\n      'HostingInstitution',\n      'Producer',\n      'ProjectLeader',\n      'ProjectManager',\n      'ProjectMember',\n      'RegistrationAgency',\n      'RegistrationAuthority',\n      'RelatedPerson',\n      'Researcher',\n      'ResearchGroup',\n      'RightsHolder',\n      'Sponsor',\n      'Supervisor',\n      'Translator',\n      'WorkPackageLeader',\n      'Other'\n    ];\n\n    const personalContributorTypes = [\n      'ContactPerson',\n      'Editor',\n      'ProjectLeader',\n      'ProjectManager',\n      'ProjectMember',\n      'RelatedPerson',\n      'Researcher',\n      'Supervisor',\n      'WorkPackageLeader'\n    ];\n\n    const message = 'Contributor of the Type cannot be of that Name Type.';\n\n    switch (true) {\n      case !value && options.allowBlank:\n        return true;\n      case organizationalContributorTypes.includes(String(value)) &&\n        model.nameType == 'Personal':\n        return message;\n      case personalContributorTypes.includes(String(value)) &&\n        model.nameType == 'Organizational':\n        return message;\n      case contributorTypes.includes(String(value)):\n        return true;\n      default:\n        return 'The value ' + value + ' is not a valid type';\n    }\n  }\n}\n\nexport default ContributorType;\n","import classic from 'ember-classic-decorator';\n/* eslint-disable no-useless-escape */\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport edtf from 'edtf';\n\n@classic\nclass DateFormat extends BaseValidator {\n  validate(value, options) {\n    switch (true) {\n      case !value && options.allowBlank:\n        return true;\n      case value.startsWith('-'):\n        return /-\\d{4}/.test(value) ? true : 'Please enter a valid date';\n      default:\n        try {\n          let status = edtf.parse(value, {\n            types: ['Date', 'Year', 'Decade', 'Century', 'Season', 'Interval']\n          });\n          if (typeof status !== 'undefined') {\n            return true;\n          } else {\n            let message = 'Please enter a valid date';\n            return message;\n          }\n        } catch (error) {\n          let message = 'Please enter a valid date';\n          return message;\n        }\n    }\n  }\n}\n\nexport default DateFormat;\n","import classic from 'ember-classic-decorator';\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport isEmail from 'validator/lib/isEmail';\n\n@classic\nclass EmailFormat extends BaseValidator {\n  validate(value, options) {\n    if (!value && options.allowBlank) {\n      return true;\n    } else {\n      if (isEmail(value, options)) {\n        return true;\n      } else {\n        let message = 'Please enter a valid email address.';\n        return message;\n      }\n    }\n  }\n}\n\nexport default EmailFormat;\n","import classic from 'ember-classic-decorator';\n/* eslint-disable no-useless-escape */\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport { isURL, isISBN } from 'validator';\n\n@classic\nclass IdentifierFormat extends BaseValidator {\n  validate(value, options, model) {\n    const ark = /^ark:\\/[0-9]{5}\\/\\S+$/;\n    const lsid =\n      /^[uU][rR][nN]:[lL][sS][iI][dD]:(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%]):(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%]):(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%])[:]?(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%])?$/;\n    const purl = {\n      require_host: true,\n      host_whitelist: ['purl.org', 'oclc.org']\n    };\n    const arxiv =\n      /^(arXiv:)(\\d{4}.\\d{4,5}|[a-z\\-]+(\\.[A-Z]{2})?\\/\\d{7})(v\\d+)?/;\n    const doi = /^(10\\.\\d{4,5}\\/.+)/;\n    const doiUrl =\n      /^(?:(http|https):\\/\\/(dx.)?(doi.org|handle.test.datacite.org)?\\/)(10\\.\\d{4,5}\\/.+)/;\n    const bibcode = /\\d{4}[A-Za-z\\.\\&]{5}[\\w\\.]{4}[ELPQ-Z\\.][\\d\\.]{4}[A-Z]/;\n    const urn = /^urn:[a-z0-9][a-z0-9-]{0,31}:[a-z0-9()+,\\-.:=@;$_!*'%/?#]/;\n    const rrid = /^RRID:[a-zA-Z]+.+$/;\n    const swid0  = /^swh:1:([a-z]+):[0-9a-f]{40}$/\n    const swid1 = /^swh:1:(cnt|dir|rev|rel|snp):[0-9a-f]{40}$/\n    const swid2 = /^swh:1:(cnt|dir|rev|rel|snp):[0-9a-f]{40}(;[a-z]+=[a-zA-Z0-9:._-]+)*$/\n    // const raid = /^https?:\\/\\/(raid\\.org|raid\\.org\\.au|doi\\.org)\\/10\\.\\d{3,9}\\/[a-zA-Z0-9.\\-_]+$/\n    const raid = /^https?:\\/\\/(raid\\.org|raid\\.org\\.au)\\/10\\.\\d{3,9}\\/[a-zA-Z0-9.\\-_]+$/\n\n    const types = [\n      'CSTR',\n      'EAN13',\n      'EISSN',\n      'Handle',\n      'IGSN',\n      'ISSN',\n      'ISTC',\n      'LISSN',\n      'LSID',\n      'PMID',\n      'UPC',\n      'w3id'\n    ];\n\n    switch (true) {\n      case model.relatedIdentifierType == 'SWHID':\n        return swid0.test(value) || swid1.test(value) || swid2.test(value)\n          ? true\n          : 'Please enter a valid SWHID.';\n      case model.relatedIdentifierType == 'RAiD':\n        return raid.test(value) ? true : 'Please enter a valid RAiD.';\n      case model.relatedIdentifierType == 'ARK':\n        return ark.test(value) ? true : 'Please enter a valid ARK.';\n      case model.relatedIdentifierType == 'arXiv':\n        return arxiv.test(value) ? true : 'Please enter a valid arXiv.';\n      case model.relatedIdentifierType == 'DOI':\n        return doi.test(value) || doiUrl.test(value)\n          ? true\n          : 'Please enter a valid DOI.';\n      case model.relatedIdentifierType == 'bibcode':\n        return bibcode.test(value) ? true : 'Please enter a valid bibcode.';\n      case model.relatedIdentifierType == 'LSID':\n        return lsid.test(value) ? true : 'Please enter a valid LSID.';\n      case model.relatedIdentifierType == 'PURL':\n        return isURL(value, purl) ? true : 'Please enter a valid PURL.';\n      case model.relatedIdentifierType == 'URN':\n        return urn.test(value) ? true : 'Please enter a valid URN.';\n      case model.relatedIdentifierType == 'ISBN':\n        return isISBN(value) ? true : 'Please enter a valid ISBN.';\n      case model.relatedIdentifierType == 'URL':\n        return isURL(value) ? true : 'Please enter a valid URL.';\n      case model.relatedIdentifierType == 'RRID':\n        return rrid.test(value) ? true : 'Please enter a valid RRID.';\n      case types.includes(model.relatedIdentifierType):\n        return true;\n      default:\n        return 'Please enter a Related Identedfier type.';\n    }\n  }\n}\n\nexport default IdentifierFormat;\n","import classic from 'ember-classic-decorator';\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport isISSN from 'validator/lib/isISSN';\n\n@classic\nclass IssnFormat extends BaseValidator {\n  validate(value, options) {\n    if (!value && options.allowBlank) {\n      return true;\n    } else {\n      if (isISSN(value, options)) {\n        return true;\n      } else {\n        let message = 'Please enter a valid ISSN.';\n        return message;\n      }\n    }\n  }\n}\n\nexport default IssnFormat;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport fetch from 'fetch';\nimport ENV from 'bracco/config/environment';\n\n@classic\nclass metadata extends BaseValidator {\n  @service\n  currentUser;\n\n  validate(value, options, model) {\n    if (!value && options.allowBlank) {\n      return true;\n    } else {\n      let xml = this.b64EncodeUnicode(value);\n      let url = ENV.API_URL + '/dois/validate?publisher=true';\n      let repositoryId = model.get('repository').get('id');\n      return fetch(url, {\n        method: 'post',\n        headers: {\n          authorization: 'Bearer ' + this.currentUser.get('jwt'),\n          'content-type': 'application/vnd.api+json; charset=utf-8'\n        },\n        body: JSON.stringify({\n          data: {\n            type: 'dois',\n            attributes: {\n              doi: this.get(options.dependentKeys[0]),\n              xml\n            },\n            relationships: {\n              client: {\n                data: {\n                  type: 'clients',\n                  id: repositoryId\n                }\n              }\n            }\n          }\n        })\n      })\n        .then(function (response) {\n          if (response.ok) {\n            return response.json().then(function (data) {\n              if (data.errors) {\n                let message = data.errors[0].title;\n                return message;\n              } else {\n                return true;\n              }\n            });\n          } else {\n            console.debug(response);\n          }\n        })\n        .catch(function (error) {\n          console.debug(error);\n        });\n    }\n  }\n\n  b64EncodeUnicode(str) {\n    // first we use encodeURIComponent to get percent-encoded UTF-8,\n    // then we convert the percent encodings into raw bytes which\n    // can be fed into btoa.\n    return btoa(\n      encodeURIComponent(str).replace(\n        /%([0-9A-F]{2})/g,\n        function toSolidBytes(match, p1) {\n          return String.fromCharCode('0x' + p1);\n        }\n      )\n    );\n  }\n}\n\nmetadata.reopenClass({\n  getDependentsFor() {\n    return ['xml'];\n  }\n});\n\nexport default metadata;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n// import fetch from 'fetch';\n// import Checkdigit from 'checkdigit';\n\n@classic\nclass NameIdentifier extends BaseValidator {\n  @service\n  store;\n\n  validate(value) {\n    if (!value) {\n      return true;\n    } else if (\n      value.startsWith('https://orcid.org') ||\n      value.startsWith('http://orcid.org')\n    ) {\n      // check identifier format\n      const re =\n        /^(http|https):\\/\\/orcid\\.org\\/\\d{4}-\\d{4}-\\d{4}-\\d{3}[0-9X]+$/;\n      if (!re.test(value)) {\n        let message =\n          'Not a valid ORCID identifier. Must start with https://orcid.org/, followed by 16 digits in groups of four, separated by hyphen. Last character can also be X.';\n        return message;\n      }\n\n      // check checksum\n      // let num = value.replace(/-/g, '');\n      // if (!Checkdigit.mod11.isValid(num)) {\n      //   let message = \"Checksum does not validate for \" + num + \".\";\n      //   return message;\n      // }\n\n      // lookup identifier\n      let id = value.substr(value.indexOf('0'));\n      return this.store\n        .findRecord('person', id)\n        .then(function () {\n          return true;\n        })\n        .catch(function () {\n          let message =\n            'ORCID identifier does not exist. Please make sure you entered the correct identifier.';\n          return message;\n        });\n    } else if (value.startsWith('https://ror.org')) {\n      // check identifier format\n      const re = /^https:\\/\\/ror\\.org\\/0\\w{6}\\d{2}$/;\n      if (!re.test(value)) {\n        let message =\n          'Not a valid ROR identifier. Must start with https://ror.org/, followed by 9 characters or digits starting with 0 and ending with two digits.';\n        return message;\n      }\n\n      // lookup identifier\n      let id = 'ror.org/' + value.substr(value.indexOf('0'));\n      return this.store\n        .findRecord('ror', id)\n        .then(function () {\n          return true;\n        })\n        .catch(function () {\n          let message =\n            'ROR identifier does not exist. Please make sure you entered the correct identifier.';\n          return message;\n        });\n    } else if (value.startsWith('http://isni.org')) {\n      // check identifier format\n      const re = /^http:\\/\\/isni\\.org\\/isni\\/\\d{15}[0-9X]+$/;\n      if (!re.test(value)) {\n        let message =\n          'Not a valid ISNI identifier. Must start with http://isni.org/isni/, followed by 16 digits. Last character can also be X.';\n        return message;\n      }\n\n      return true;\n\n      // lookup identifier\n      // return fetch(value).then(function() {\n      //   return true;\n      // }).catch(function() {\n      //   let message = 'ISNI identifier does not exist. Please make sure you entered the correct identifier.'\n      //   return message;\n      // });\n    } else {\n      const re =\n        /^(http|https):\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/;\n      if (!re.test(value)) {\n        let message = 'The name identifier must be expressed as URL';\n        return message;\n      }\n\n      return true;\n      // // lookup identifier\n      // // https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSExternalRedirectNotAllowed\n      // return fetch(value,{method: 'head', redirect: 'error'}\n      //   ).then(function() {\n      //   return true;\n      // }).catch(function() {\n      //   console.log()\n      //   let message = 'Name identifier does not exist. Please make sure you entered the correct identifier.'\n      //   return message;\n      // });\n    }\n  }\n}\n\nNameIdentifier.reopenClass({\n  getDependentsFor() {\n    return ['id'];\n  }\n});\n\nexport default NameIdentifier;\n","import classic from 'ember-classic-decorator';\nimport { A } from '@ember/array';\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n@classic\nclass NumberRange extends BaseValidator {\n  validate(value, options, model) {\n    let first = A(model.firstPrefix.split('.')).get('lastObject');\n    let last = A(value.split('.')).get('lastObject');\n\n    if (last - first < 0) {\n      let message =\n        'The last prefix must be or come after ' + model.firstPrefix;\n      return message;\n    } else if (last - first >= 500) {\n      let message = \"Can't add more than 500 prefixed at a time\";\n      return message;\n    } else {\n      return true;\n    }\n  }\n}\n\nNumberRange.reopenClass({\n  getDependentsFor() {\n    return ['firstPrefix', 'lastPrefix'];\n  }\n});\n\nexport default NumberRange;\n","import classic from 'ember-classic-decorator';\n/* eslint-disable no-useless-escape */\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport { isURL, isISBN } from 'validator';\n\n@classic\nclass RelatedItemIdentifierFormat extends BaseValidator {\n  validate(value, options, model) {\n    const ark = /^ark:\\/[0-9]{5}\\/\\S+$/;\n    const lsid =\n      /^[uU][rR][nN]:[lL][sS][iI][dD]:(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%]):(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%]):(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%])[:]?(A-Za-z0-9][A-Za-z0-9()+,-.=@;$_!*'\"%])?$/;\n    const purl = {\n      require_host: true,\n      host_whitelist: ['purl.org', 'oclc.org']\n    };\n    const arxiv =\n      /^(arXiv:)(\\d{4}.\\d{4,5}|[a-z\\-]+(\\.[A-Z]{2})?\\/\\d{7})(v\\d+)?/;\n    const doi = /^(10\\.\\d{4,5}\\/.+)/;\n    const bibcode = /\\d{4}[A-Za-z\\.\\&]{5}[\\w\\.]{4}[ELPQ-Z\\.][\\d\\.]{4}[A-Z]/;\n    const urn = /^urn:[a-z0-9][a-z0-9-]{0,31}:[a-z0-9()+,\\-.:=@;$_!*'%/?#]/;\n    const rrid = /^RRID:[a-zA-Z]+.+$/;\n    const types = [\n      'CSTR',\n      'EAN13',\n      'EISSN',\n      'Handle',\n      'IGSN',\n      'ISSN',\n      'ISTC',\n      'LISSN',\n      'LSID',\n      'PMID',\n      'UPC',\n      'w3id'\n    ];\n\n    switch (true) {\n      case model.relatedItemIdentifierType == 'ARK':\n        return ark.test(value) ? true : 'Please enter a valid ARK.';\n      case model.relatedItemIdentifierType == 'arXiv':\n        return arxiv.test(value) ? true : 'Please enter a valid arXiv.';\n      case model.relatedItemIdentifierType == 'DOI':\n        return doi.test(value) ? true : 'Please enter a valid DOI.';\n      case model.relatedItemIdentifierType == 'bibcode':\n        return bibcode.test(value) ? true : 'Please enter a valid bibcode.';\n      case model.relatedItemIdentifierType == 'LSID':\n        return lsid.test(value) ? true : 'Please enter a valid LSID.';\n      case model.relatedItemIdentifierType == 'RRID':\n        return rrid.test(value) ? true : 'Please enter a valid RRID.';\n      case model.relatedItemIdentifierType == 'PURL':\n        return isURL(value, purl) ? true : 'Please enter a valid PURL.';\n      case model.relatedItemIdentifierType == 'URN':\n        return urn.test(value) ? true : 'Please enter a valid URN.';\n      case model.relatedItemIdentifierType == 'ISBN':\n        return isISBN(value) ? true : 'Please enter a valid ISBN.';\n      case model.relatedItemIdentifierType == 'URL':\n        return isURL(value) ? true : 'Please enter a valid URL.';\n      case types.includes(model.relatedItemIdentifierType):\n        return true;\n      default:\n        return 'Please enter a Related Identedfier type.';\n    }\n  }\n}\n\nexport default RelatedItemIdentifierFormat;\n","import classic from 'ember-classic-decorator';\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n@classic\nclass RepositoryId extends BaseValidator {\n  validate(value, options, model) {\n    let providerId = model.get('provider.id').toUpperCase() + '.';\n    if (value.startsWith(providerId)) {\n      return true;\n    } else {\n      let message = 'The Repository ID must begin with ' + providerId;\n      return message;\n    }\n  }\n}\n\nRepositoryId.reopenClass({\n  getDependentsFor() {\n    return ['id'];\n  }\n});\n\nexport default RepositoryId;\n","import classic from 'ember-classic-decorator';\n/* eslint-disable no-useless-escape */\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n@classic\nclass ResourceType extends BaseValidator {\n  validate(value, options) {\n    const resourceTypeGeneralList = [\n      'Audiovisual',\n      'Award',\n      'Book',\n      'BookChapter',\n      'Collection',\n      'ComputationalNotebook',\n      'ConferencePaper',\n      'ConferenceProceeding',\n      'DataPaper',\n      'Dataset',\n      'Dissertation',\n      'Event',\n      'Image',\n      'Instrument',\n      'InteractiveResource',\n      'Journal',\n      'JournalArticle',\n      'Model',\n      'OutputManagementPlan',\n      'PeerReview',\n      'PhysicalObject',\n      'Poster',\n      'Preprint',\n      'Presentation',\n      'Project',\n      'Report',\n      'Service',\n      'Software',\n      'Sound',\n      'Standard',\n      'StudyRegistration',\n      'Text',\n      'Workflow',\n      'Other'\n    ];\n\n    const message = 'Resource of the Type is not valid.';\n\n    switch (true) {\n      case !value && options.allowBlank:\n        return true;\n      case resourceTypeGeneralList.includes(String(value)):\n        return true;\n      default:\n        return message;\n    }\n  }\n}\n\nexport default ResourceType;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n@classic\nclass UniqueDoi extends BaseValidator {\n  @service\n  store;\n\n  validate(value, options) {\n    let doi = options.dependentKeys[0] + '/' + value;\n    return this.store\n      .query('doi', { id: doi })\n      .then((result) => {\n        if (result.content.length > 0) {\n          return 'The DOI ' + doi + ' already exists.';\n        } else {\n          return true;\n        }\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return 'An error happened while looking up the DOI ' + value + '.';\n      });\n  }\n}\n\nUniqueDoi.reopenClass({\n  getDependentsFor() {\n    return ['doi'];\n  }\n});\n\nexport default UniqueDoi;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n@classic\nclass UniqueEmail extends BaseValidator {\n  @service\n  store;\n\n  validate(value, options, model) {\n    let providerId = model.get('provider.id');\n    let query = `email:${value} !uid:${model.get('id')}`;\n\n    // email should be unique per provider,\n    // and that includes deleted records\n    return this.store\n      .query('contact', {\n        query,\n        provider_id: providerId,\n        'include-deleted': true\n      })\n      .then((result) => {\n        if (result.content.length > 0) {\n          return (\n            'The email address ' +\n            value +\n            ' already exists with a contact for provider ' +\n            providerId.toUpperCase() +\n            ', or existed before and has been deleted. Contact DataCite staff if you want to create an account with this email and provider ID.'\n          );\n        } else {\n          return true;\n        }\n      })\n      .catch(function (reason) {\n        console.debug(reason);\n        return (\n          'An error happened while looking up the email address ' + value + '.'\n        );\n      });\n  }\n}\n\nUniqueEmail.reopenClass({\n  getDependentsFor() {\n    return ['id'];\n  }\n});\n\nexport default UniqueEmail;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n@classic\nclass UniqueProviderId extends BaseValidator {\n  @service\n  store;\n\n  validate(value, options, model) {\n    if (value.length < 2 || !model.get('isNew')) {\n      return true;\n    } else {\n      return this.store\n        .query('provider', { id: value })\n        .then((result) => {\n          if (result.content.length > 0) {\n            return (\n              'The Member ID ' +\n              value +\n              ' already exists, or existed before and has been deleted. Please contact DataCite staff if you want to create an account with this Member ID.'\n            );\n          } else {\n            return true;\n          }\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return (\n            'An error happened while looking up the Member ID ' + value + '.'\n          );\n        });\n    }\n  }\n}\n\nUniqueProviderId.reopenClass({\n  getDependentsFor() {\n    return ['id'];\n  }\n});\n\nexport default UniqueProviderId;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport BaseValidator from 'ember-cp-validations/validators/base';\n\n@classic\nclass UniqueRepositoryId extends BaseValidator {\n  @service\n  store;\n\n  validate(value, options, model) {\n    let providerId = model.get('provider').get('symbol') + '.';\n    if (value === providerId) {\n      return true;\n    } else {\n      return this.store\n        .query('repository', { id: value })\n        .then((result) => {\n          if (result.content.length > 0) {\n            return (\n              'The Repository ID ' +\n              value +\n              ' already exists, or existed before and has been deleted. Contact DataCite staff if you want to create an account with this Repository ID.'\n            );\n          } else {\n            return true;\n          }\n        })\n        .catch(function (reason) {\n          console.debug(reason);\n          return (\n            'An error happened while looking up the Repository ID ' +\n            value +\n            '.'\n          );\n        });\n    }\n  }\n}\n\nUniqueRepositoryId.reopenClass({\n  getDependentsFor() {\n    return ['id'];\n  }\n});\n\nexport default UniqueRepositoryId;\n","import classic from 'ember-classic-decorator';\nimport { inject as service } from '@ember/service';\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport { A } from '@ember/array';\nimport URI from 'urijs';\n\n@classic\nclass UrlDomain extends BaseValidator {\n  @service\n  store;\n\n  validate(value, options, model) {\n    if (!value && options.allowBlank) {\n      return true;\n    } else {\n      return this.store\n        .findRecord('repository', model.get('repository.id'), { reload: true })\n        .then(function (repository) {\n          // if any domain is allowed\n          if (repository.domains === '*') {\n            return true;\n          }\n\n          // check all domains in the domain list\n          let uri = new URI(value);\n          let domainList = A(repository.domains.split(','));\n          let matchedDomain = domainList.any((d) => {\n            // strip asterisk for subdomain\n            if (d.startsWith('*.')) {\n              d = d.substr(1);\n              return uri.hostname().endsWith(d);\n            } else {\n              return uri.hostname() === d;\n            }\n          });\n\n          if (matchedDomain) {\n            return true;\n          } else {\n            let message =\n              'Please enter a URL that is allowed by the domains settings of the repository.';\n            return message;\n          }\n        });\n    }\n  }\n}\n\nexport default UrlDomain;\n","import classic from 'ember-classic-decorator';\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport isURL from 'validator/lib/isURL';\n\n@classic\nclass UrlFormat extends BaseValidator {\n  validate(value, options) {\n    if (!value && options.allowBlank) {\n      return true;\n    } else if (!value) {\n      let message = \"This field can't be blank.\";\n      return message;\n      // don't validate info URIs (not handled by validator)\n    } else if (value.startsWith('info:')) {\n      return true;\n    } else {\n      // default options for this validator, require_protocol set to true\n      let defaultOptions = {\n        protocols: ['http', 'https', 'ftp'],\n        require_tld: true,\n        require_protocol: true,\n        require_host: true,\n        require_valid_protocol: true,\n        allow_underscores: false,\n        host_whitelist: false,\n        host_blacklist: false,\n        allow_trailing_dot: false,\n        allow_protocol_relative_urls: false,\n        disallow_auth: false\n      };\n\n      if (value && isURL(value, Object.assign(defaultOptions, options))) {\n        return true;\n      } else {\n        let message = 'Please enter a valid URL.';\n        return message;\n      }\n    }\n  }\n}\n\nexport default UrlFormat;\n","import classic from 'ember-classic-decorator';\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport isUUID from 'validator/lib/isUUID';\n\n@classic\nclass UuidFormat extends BaseValidator {\n  validate(value, options) {\n    if (!value && options.allowBlank) {\n      return true;\n    } else if (options.version) {\n      if (isUUID(value, options.version)) {\n        return true;\n      } else {\n        let message = `Please enter a valid UUID (version ${options.version}).`;\n        return message;\n      }\n    } else {\n      if (isUUID(value)) {\n        return true;\n      } else {\n        let message = 'Please enter a valid UUID.';\n        return message;\n      }\n    }\n  }\n}\n\nexport default UuidFormat;\n","import classic from 'ember-classic-decorator';\nimport BaseValidator from 'ember-cp-validations/validators/base';\nimport { parseString } from 'xml2js';\nimport { isPresent } from '@ember/utils';\n\n@classic\nclass validXml extends BaseValidator {\n  validate(value) {\n    parseString(value, function (err, result) {\n      if (err) {\n        // was not well-formed\n        let message = 'The XML formatting is not valid.';\n        return message;\n      } else {\n        return isPresent(result);\n      }\n    });\n  }\n}\n\nvalidXml.reopenClass({\n  getDependentsFor() {\n    return ['xml'];\n  }\n});\n\nexport default validXml;\n","define('bracco/config/environment', [], function() {\n  if (typeof FastBoot !== 'undefined') {\nreturn FastBoot.config('bracco');\n} else {\nvar prefix = 'bracco';try {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(decodeURIComponent(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n}\n});\n","\nif (typeof FastBoot === 'undefined') {\n  if (!runningTests) {\n    require('bracco/app')['default'].create({\"name\":\"bracco\",\"version\":\"4.12.4\"});\n  }\n}\n\n"],"mappings":"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"}