{"version":3,"file":"static/js/487.2fcf2254.chunk.js","mappings":"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","sources":["containers/searchbox/SearchBoxContainer.tsx","components/Home.tsx","components/reprintNotes/ReprintNotes.tsx","components/document/Tags.tsx","components/document/Document.tsx","models/proclamationBatchTypeEnum.ts","containers/proclamation/ProclamationBatchList.tsx","containers/proclamation/ProclamationContainer.tsx","data/publicationMediaFilterData.ts","models/MatchField.ts","../node_modules/reactstrap/es/Nav.js","../node_modules/reactstrap/es/NavItem.js","../node_modules/reactstrap/es/NavLink.js","../node_modules/ts-debounce/src/index.ts","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"],"sourcesContent":["import * as React from \"react\";\r\nimport { Card, Row, Col, Button } from \"reactstrap\";\r\nimport { LiveSearch, ILiveResultItemProps, IconType, LiveResultTemplateEnum } from \"@lexdania/components\";\r\nimport { debounce } from \"ts-debounce\";\r\nimport { apiGET } from \"store/api\";\r\nimport * as qs from \"query-string\";\r\nimport \"./SearchBoxContainer.scss\";\r\nimport { publicationMediaFilterData } from \"../../data/publicationMediaFilterData\";\r\nimport { PublicationMediaEnum } from \"models/publicationMediaEnum\";\r\nimport { LiveSearchHitDto } from \"models/LiveSearchHitDto\";\r\nimport { MatchField } from \"models/MatchField\";\r\nimport { connect } from \"react-redux\";\r\nimport { AppState } from \"../../store\";\r\n\r\nexport interface ISearchBoxContainerProps {\r\n  sendToSearch: (queryString: string) => void;\r\n  activePageSize?: number;\r\n}\r\n\r\ninterface ILiveSearchState {\r\n  liveSearchTerm: string;\r\n  hits: ILiveResultItemProps[];\r\n  staticLiveSearchItemsCount: number;\r\n}\r\n\r\ninterface ISearchBoxContainerState {\r\n  currentSearchTerm: string;\r\n  liveSearchState: ILiveSearchState;\r\n  selectedPublicationMedia: PublicationMediaEnum;\r\n  yearStart: number;\r\n  yearEnd: number;\r\n  documentNumberRange: string;\r\n}\r\n\r\nconst defaultLiveSearchState: Readonly<{ liveSearchTerm: string; hits: ILiveResultItemProps[]; staticLiveSearchItemsCount: number }> = {\r\n  liveSearchTerm: \"\",\r\n  hits: [],\r\n  staticLiveSearchItemsCount: 0,\r\n};\r\n\r\nconst yearLow = 2008;\r\nconst yearHigh = new Date().getFullYear();\r\n\r\n// does the rawSearchTerm match number/year pattern\r\n// add a static document number range search option to livesearch\r\n// match for: 20 2018 | >10 2014 | <50 2015 | 22-33 2017 but not 20 1999 | 1-3 1960\r\nconst numberAndYearRegExp: RegExp = /(^(<|>){1}([1-9]\\d*)|^([1-9]\\d*)|^([1-9]\\d*)(-)([1-9]\\d*))( (200[89])|(20[1-9]\\d)|(21\\d\\d))?$/;\r\nconst allNumbersRegExp: RegExp = /\\d+/g;\r\nconst validYearsRegExp: RegExp = /(?:^|\\D)(200[89])|(20[1-9]\\d)|(21\\d\\d)(?!\\d)/g;\r\n\r\nfunction getNumberText(number: string | null) {\r\n  if (number === null || number === \"\") return \"\";\r\n  return \"Søg efter nummer <strong>\" + number + \"</strong>\";\r\n}\r\n\r\nfunction getYearText(year: string | null) {\r\n  if (year === null) return \"\";\r\n  return \", årgang <strong>\" + year + \"</strong>\";\r\n}\r\n\r\nfunction getPubMediaText(publicationMedia: PublicationMediaEnum) {\r\n  const lovtidende = publicationMedia === \"10\" ? \"Lovtidende A\" : publicationMedia === \"20\" ? \"Lovtidende B\" : \"Lovtidende C\";\r\n  return \" i <strong>\" + lovtidende + \"</strong>\";\r\n}\r\n\r\n// investigate match array and build a more readable text\r\nfunction getNumberAndYearText(arr: RegExpMatchArray | null): string {\r\n  let buildText = \"\";\r\n  if (arr === null) {\r\n    return \"\";\r\n  }\r\n\r\n  if (arr[2] === undefined) {\r\n    buildText = getNumberText(arr[1]);\r\n  }\r\n\r\n  if (arr[2] === \"<\") {\r\n    buildText = \"Søg efter numre <strong>mindre end \" + arr[3] + \"</strong>\";\r\n  }\r\n\r\n  if (arr[2] === \">\") {\r\n    buildText = \"Søg efter numre <strong>større end \" + arr[3] + \"</strong>\";\r\n  }\r\n\r\n  if (arr[6] === \"-\") {\r\n    buildText = \"Søg efter numre i intervallet <strong>\" + arr[1] + \"</strong>\";\r\n  }\r\n\r\n  if (arr[8] !== undefined) {\r\n    buildText = buildText + getYearText(arr[8]);\r\n  }\r\n  return buildText;\r\n}\r\n\r\nconst buildUrlParamsFromPubMediaId = (pmId: PublicationMediaEnum) => {\r\n  const docTypeValues = publicationMediaFilterData\r\n    .filter(x => x.id.toString() === pmId)\r\n    .flatMap(x => x.children!)\r\n    .filter(docType => !docType.noCheckBox)\r\n    .map(docType => docType.value);\r\n\r\n  const params = docTypeValues.join(\"&dt=\");\r\n  return params.length > 0 ? \"dt=\" + params : \"\";\r\n};\r\n\r\nexport class SearchBoxContainer extends React.Component<ISearchBoxContainerProps, ISearchBoxContainerState> {\r\n  public readonly state: ISearchBoxContainerState = {\r\n    currentSearchTerm: \"\",\r\n    liveSearchState: defaultLiveSearchState,\r\n    selectedPublicationMedia: PublicationMediaEnum.LOVTIDENDE_A,\r\n    yearStart: yearLow,\r\n    yearEnd: yearHigh,\r\n    documentNumberRange: \"\",\r\n  };\r\n\r\n  public render() {\r\n    const { liveSearchState, currentSearchTerm, selectedPublicationMedia } = this.state;\r\n\r\n    return (\r\n      <Card color=\"primary\" className=\"searchbox-container pt-1 px-4 pb-4 mb-3\">\r\n        <Row className=\"mb-3 publication-media-selectors\">\r\n          <Col className=\"d-none d-md-block\">\r\n            <Button\r\n              role=\"button\"\r\n              tabIndex={0}\r\n              className={selectedPublicationMedia === PublicationMediaEnum.LOVTIDENDE_A ? \"selected btn\" : \"btn\"}\r\n              onClick={this.handlePubMediaSelection(PublicationMediaEnum.LOVTIDENDE_A)}\r\n            >\r\n              Lovtidende A\r\n            </Button>\r\n            <Button\r\n              role=\"button\"\r\n              tabIndex={0}\r\n              className={selectedPublicationMedia === PublicationMediaEnum.LOVTIDENDE_B ? \"selected btn\" : \"btn\"}\r\n              onClick={this.handlePubMediaSelection(PublicationMediaEnum.LOVTIDENDE_B)}\r\n            >\r\n              Lovtidende B\r\n            </Button>\r\n            <Button\r\n              className={selectedPublicationMedia === PublicationMediaEnum.LOVTIDENDE_C ? \"selected btn\" : \"btn\"}\r\n              onClick={this.handlePubMediaSelection(PublicationMediaEnum.LOVTIDENDE_C)}\r\n            >\r\n              Lovtidende C\r\n            </Button>\r\n          </Col>\r\n          <Col className=\"d-md-none\">\r\n            <div className=\"link-label d-inline\">Lovtidende</div>\r\n            <Button\r\n              className={selectedPublicationMedia === PublicationMediaEnum.LOVTIDENDE_A ? \"selected btn mx-2\" : \"btn mx-2\"}\r\n              onClick={this.handlePubMediaSelection(PublicationMediaEnum.LOVTIDENDE_A)}\r\n            >\r\n              A\r\n            </Button>\r\n            <Button\r\n              className={selectedPublicationMedia === PublicationMediaEnum.LOVTIDENDE_B ? \"selected btn mx-2\" : \"btn mx-2\"}\r\n              onClick={this.handlePubMediaSelection(PublicationMediaEnum.LOVTIDENDE_B)}\r\n            >\r\n              B\r\n            </Button>\r\n            <Button\r\n              className={selectedPublicationMedia === PublicationMediaEnum.LOVTIDENDE_C ? \"selected btn mx-2\" : \"btn mx-2\"}\r\n              onClick={this.handlePubMediaSelection(PublicationMediaEnum.LOVTIDENDE_C)}\r\n            >\r\n              C\r\n            </Button>\r\n          </Col>\r\n        </Row>\r\n        <Row>\r\n          <Col className=\"xs-no-padding\">\r\n            <LiveSearch\r\n              onChange={e => this.onLiveSearchTermChange(e, this.state.selectedPublicationMedia)}\r\n              onSearchButtonClicked={this.onSearchButtonClicked}\r\n              searchTerm={currentSearchTerm}\r\n              data={liveSearchState.hits}\r\n              searchPlaceHolder=\"Søg efter nummer og år, titel eller populærtitel\"\r\n              buttonStyle=\"secondary\"\r\n              autofocus={true}\r\n            />\r\n          </Col>\r\n        </Row>\r\n      </Card>\r\n    );\r\n  }\r\n\r\n  private onSearchButtonClicked = (searchTerm: string) => {\r\n    const numberYearMatch = searchTerm.match(numberAndYearRegExp);\r\n    const numberMatches = searchTerm.match(allNumbersRegExp);\r\n\r\n    if (numberYearMatch !== null) {\r\n      this.onYearAndNumberMatchClicked(numberYearMatch[1], numberYearMatch[8]);\r\n    } else if (numberMatches !== null && typeof numberMatches !== \"undefined\") {\r\n      var validYearsMatch = searchTerm.match(validYearsRegExp);\r\n      var year = validYearsMatch && numberMatches.length !== 1 ? validYearsMatch[validYearsMatch.length - 1].replace(/\\D/, \"\") : null;\r\n      var num = numberMatches.find(x => x !== year) || \"\";\r\n      this.onYearAndNumberMatchClicked(num, year);\r\n    } else {\r\n      this.setParamsAndRedirect();\r\n    }\r\n  };\r\n\r\n  private handlePubMediaSelection = (val: PublicationMediaEnum) => () => {\r\n    this.onLiveSearchTermChange(this.state.currentSearchTerm, val);\r\n  };\r\n\r\n  private onLiveSearchTermChange = (rawSearchTerm: string, publicationMediaEnum: PublicationMediaEnum) => {\r\n    const trimmedSearchTerm = rawSearchTerm.trim();\r\n    const newLiveSearchState: ILiveSearchState = { liveSearchTerm: trimmedSearchTerm, hits: [], staticLiveSearchItemsCount: 0 };\r\n    let counter = 0; // counter for static live search items\r\n\r\n    if (!trimmedSearchTerm) {\r\n      this.setState({ currentSearchTerm: rawSearchTerm, liveSearchState: newLiveSearchState, selectedPublicationMedia: publicationMediaEnum });\r\n      return;\r\n    }\r\n\r\n    // If only different in spaces and same publicationMediaEnum, update state but dont do livesearch request\r\n    if (trimmedSearchTerm === this.state.currentSearchTerm.trim() && this.state.selectedPublicationMedia === publicationMediaEnum) {\r\n      this.setState({ currentSearchTerm: rawSearchTerm, selectedPublicationMedia: publicationMediaEnum });\r\n      return;\r\n    }\r\n\r\n    // \"Number/year\" livesearch results\r\n    const numberMatches = rawSearchTerm.match(allNumbersRegExp);\r\n    const numberYearMatch = rawSearchTerm.match(numberAndYearRegExp);\r\n    if (numberYearMatch !== null) {\r\n      const buildText = getNumberAndYearText(numberYearMatch) + getPubMediaText(publicationMediaEnum);\r\n\r\n      newLiveSearchState.hits.push({\r\n        text: buildText,\r\n        onClick: () => this.onYearAndNumberMatchClicked(numberYearMatch[1], numberYearMatch[8]),\r\n        aria: \"Klik her for at \" + buildText.replace(\"Søg\", \"søge\"),\r\n        icon: IconType.Hashtag,\r\n      });\r\n      counter++;\r\n    } else if (numberMatches !== null && typeof numberMatches !== \"undefined\") {\r\n      var validYearsMatch = rawSearchTerm.match(validYearsRegExp);\r\n      var year = validYearsMatch && numberMatches.length !== 1 ? validYearsMatch[validYearsMatch.length - 1].replace(/\\D/, \"\") : null;\r\n      var num = numberMatches.find(x => x !== year) || \"\";\r\n\r\n      const buildText = getNumberText(num) + getYearText(year) + getPubMediaText(publicationMediaEnum);\r\n      newLiveSearchState.hits.push({\r\n        text: buildText,\r\n        onClick: () => this.onYearAndNumberMatchClicked(num, year),\r\n        aria: \"Klik her for at \" + buildText.replace(\"Søg\", \"søge\"),\r\n        icon: IconType.Hashtag,\r\n      });\r\n      counter++;\r\n    }\r\n\r\n    // \"Search for\" livesearch results\r\n    const quoteDelimited: RegExp = /\"[^\"]+\"$/;\r\n    if (quoteDelimited.test(trimmedSearchTerm)) {\r\n      newLiveSearchState.hits.push({\r\n        text: \"Søg efter nøjagtigt udtryk <strong>\" + trimmedSearchTerm + \"</strong>\" + getPubMediaText(publicationMediaEnum),\r\n        onClick: () =>\r\n          this.setState({ currentSearchTerm: trimmedSearchTerm, selectedPublicationMedia: publicationMediaEnum }, () => this.setParamsAndRedirect()),\r\n        aria: \"Klik her for at søge efter nøjagtigt udtryk \" + trimmedSearchTerm,\r\n      });\r\n      counter++;\r\n    } else {\r\n      newLiveSearchState.hits.push({\r\n        text: \"Søg efter <strong>\" + trimmedSearchTerm + \"</strong>\" + getPubMediaText(publicationMediaEnum),\r\n        onClick: () =>\r\n          this.setState({ currentSearchTerm: trimmedSearchTerm, selectedPublicationMedia: publicationMediaEnum }, () => this.setParamsAndRedirect()),\r\n        aria: \"Klik her for at søge efter \" + trimmedSearchTerm,\r\n      });\r\n      counter++;\r\n\r\n      newLiveSearchState.hits.push({\r\n        text: 'Søg efter nøjagtigt udtryk \"<strong>' + trimmedSearchTerm + '</strong>\"' + getPubMediaText(publicationMediaEnum),\r\n        onClick: () =>\r\n          this.setState({ currentSearchTerm: '\"' + trimmedSearchTerm + '\"', selectedPublicationMedia: publicationMediaEnum }, () =>\r\n            this.setParamsAndRedirect()\r\n          ),\r\n        aria: \"Klik her for at søge efter nøjagtigt udtryk \" + trimmedSearchTerm,\r\n      });\r\n      counter++;\r\n    }\r\n\r\n    // Update the static live search items counter\r\n    newLiveSearchState.staticLiveSearchItemsCount = counter;\r\n\r\n    this.setState(\r\n      { currentSearchTerm: rawSearchTerm, liveSearchState: newLiveSearchState, selectedPublicationMedia: publicationMediaEnum },\r\n      debounce(() => this.getDynamicLiveSearchItems(newLiveSearchState), 200)\r\n    );\r\n  };\r\n\r\n  private getDynamicLiveSearchItems = (newLiveSearchState: ILiveSearchState) => {\r\n    // Block dynamic live search for outdated/debounced calls and less than 3 characters\r\n    if (this.state.currentSearchTerm === newLiveSearchState.liveSearchTerm && newLiveSearchState.liveSearchTerm.trim().length > 2) {\r\n      this.getLiveSearchSuggestionItems();\r\n    }\r\n  };\r\n\r\n  private getLiveSearchSuggestionItems() {\r\n    var lst: ILiveSearchState = this.state.liveSearchState;\r\n    const parameterString = [buildUrlParamsFromPubMediaId(this.state.selectedPublicationMedia)].join(\"&\");\r\n\r\n    apiGET<LiveSearchHitDto[]>(\"api/document/search/matching\", {\r\n      params: qs.parse(parameterString + \"&q=\" + lst.liveSearchTerm),\r\n      paramsSerializer: (p: object) => qs.stringify(p),\r\n    })\r\n      .then(result => {\r\n        if (this.state.currentSearchTerm !== lst.liveSearchTerm) {\r\n          return;\r\n        }\r\n\r\n        const hits: ILiveResultItemProps[] = result.map((hit: LiveSearchHitDto) => ({\r\n          text: `${hit.value.replace(/\\\\n/g, \"<br />\")}`,\r\n          count: 0,\r\n          icon: IconType.Search,\r\n          onClick: () => this.liveSearchHitSelected(hit),\r\n          label: hit.field === MatchField.Title ? \"(titel)\" : \"(populærtitel)\",\r\n          template: LiveResultTemplateEnum.DOUBLE_LINE_WITH_LABEL,\r\n          aria: \"Klik her for at søge efter dokumenter med \" + (hit.field === MatchField.Title ? \"titlen\" : \"populærtitlen\") + \": \" + hit.value,\r\n        }));\r\n        this.setState({ liveSearchState: { ...lst, hits: [...lst.hits, ...hits] } });\r\n      })\r\n      .catch(error => {\r\n        console.log(error);\r\n      });\r\n  }\r\n\r\n  // reuse then yearStart and yearEnd filter, update the documentNumberRange\r\n  private onYearAndNumberMatchClicked = (numRange: string, year: string | null) => {\r\n    if (year) {\r\n      this.setState(\r\n        {\r\n          yearStart: +year,\r\n          yearEnd: +year,\r\n          documentNumberRange: numRange,\r\n          liveSearchState: defaultLiveSearchState,\r\n          currentSearchTerm: \"\",\r\n        },\r\n        this.setParamsAndRedirect\r\n      );\r\n    } else {\r\n      this.setState(\r\n        {\r\n          yearStart: +yearLow,\r\n          yearEnd: +yearHigh,\r\n          documentNumberRange: numRange,\r\n          liveSearchState: defaultLiveSearchState,\r\n          currentSearchTerm: \"\",\r\n        },\r\n        this.setParamsAndRedirect\r\n      );\r\n    }\r\n  };\r\n\r\n  /**\r\n   * This function is called when searchbutton is clicked (or enter press in the livesearch input field)\r\n   */\r\n  private setParamsAndRedirect = () => {\r\n    const paramsElements = [buildUrlParamsFromPubMediaId(this.state.selectedPublicationMedia)];\r\n\r\n    if (this.state.currentSearchTerm.trim() !== \"\") {\r\n      paramsElements.push(\"t=\" + this.state.currentSearchTerm.trim());\r\n    }\r\n\r\n    if (this.state.yearStart !== yearLow) {\r\n      paramsElements.push(\"yl=\" + this.state.yearStart);\r\n    }\r\n\r\n    if (this.state.yearEnd !== yearHigh) {\r\n      paramsElements.push(\"yh=\" + this.state.yearEnd);\r\n    }\r\n\r\n    if (this.state.documentNumberRange !== \"\") {\r\n      paramsElements.push(\"dnr=\" + this.state.documentNumberRange);\r\n    }\r\n\r\n    if (this.props.activePageSize) {\r\n      paramsElements.push(\"ps=\" + this.props.activePageSize);\r\n    }\r\n\r\n    const params = paramsElements.join(\"&\");\r\n    this.props.sendToSearch(params);\r\n  };\r\n\r\n  /**\r\n   * This function is called when a element from the livesearch dropdown list is selected\r\n   */\r\n  private liveSearchHitSelected = (hit: LiveSearchHitDto) => {\r\n    const paramsElements = [buildUrlParamsFromPubMediaId(this.state.selectedPublicationMedia)];\r\n\r\n    if (hit.field === MatchField.Title) {\r\n      paramsElements.push(\"ttl=\" + hit.value);\r\n    } else if (hit.field === MatchField.PopularTitle) {\r\n      paramsElements.push(\"pttl=\" + hit.value);\r\n    }\r\n\r\n    const params = paramsElements.join(\"&\");\r\n    this.props.sendToSearch(params);\r\n  };\r\n}\r\n\r\nexport default connect(\r\n  ({ documentSearch }: AppState, ownProps: ISearchBoxContainerProps): ISearchBoxContainerProps => {\r\n    return {\r\n      ...ownProps,\r\n      activePageSize: +documentSearch.paramsParsed.ps!,\r\n    };\r\n  }\r\n)(SearchBoxContainer);\r\n","import React from \"react\";\r\nimport ProclamationContainer from \"../containers/proclamation/ProclamationContainer\";\r\nimport SearchBoxContainer from \"../containers/searchbox/SearchBoxContainer\";\r\nimport { RouteComponentProps } from \"react-router\";\r\nimport { Col, Row } from \"reactstrap\";\r\n\r\nconst Home: React.FC<RouteComponentProps<any>> = props => {\r\n  document.title = \"Lovtidende | Seneste kundgjorte forskrifter\";\r\n\r\n  return (\r\n    <React.Fragment>\r\n      <Row>\r\n        <Col className=\"px-xs-0\">\r\n          <SearchBoxContainer sendToSearch={(queryString: string) => props.history.push(\"/documents?\" + queryString)} />\r\n        </Col>\r\n      </Row>\r\n      <Row>\r\n        <Col>\r\n          <ProclamationContainer />\r\n        </Col>\r\n      </Row>\r\n    </React.Fragment>\r\n  );\r\n};\r\nexport default Home;\r\n","import * as React from \"react\";\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button, Row, Col } from \"reactstrap\";\r\nimport { IReprintNote } from \"../../models/IReprintNote\";\r\nimport { AppState } from \"../../store\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { connect } from \"react-redux\";\r\nimport { IReprintInformationActions, ReprintInformationActions } from \"../../store/notes/notesReducer\";\r\nimport \"./ReprintNotes.scss\";\r\nimport { Icon, IconType } from \"@lexdania/components\";\r\n\r\nexport interface IReprintNotesProps extends IReprintInformationActions {\r\n  docId: number;\r\n  isOpen: boolean;\r\n  toggleModal: () => void;\r\n  reprintNotes?: IReprintNote[];\r\n  title: string;\r\n  shortName: string;\r\n  ressort: string;\r\n}\r\n\r\nexport const ReprintNotes: React.FC<IReprintNotesProps> = props => {\r\n  const { toggleModal, isOpen, reprintNotes, getReprintNotes, docId, shortName, title, ressort } = props;\r\n\r\n  React.useEffect(() => {\r\n    if (isOpen) {\r\n      getReprintNotes(docId);\r\n    }\r\n  }, [docId, getReprintNotes, isOpen]);\r\n\r\n  return (\r\n    <Modal isOpen={isOpen} className=\"modal-xl reprint-notes-modal\">\r\n      <ModalHeader tag=\"div\">\r\n        <div>{shortName}</div>\r\n        <h3>{title}</h3>\r\n        <div className=\"text-muted\">{ressort}</div>\r\n      </ModalHeader>\r\n      <ModalBody className=\"background-secondary\">\r\n        {reprintNotes &&\r\n          reprintNotes.map((note, index) => (\r\n            <div key={index} className=\"reprint-note\">\r\n              <Row className=\"\">\r\n                <Col className=\"mb-2\">\r\n                  <span>{note.date}</span>\r\n                </Col>\r\n                <Col classname=\"mb-2\">\r\n                  <a href={`/api/pdf/${note.reprintOfId}`} className=\"float-right pr-2\">\r\n                    <span className=\"sr-only\">Åbn PDF af dokumentet inden dette omtryk</span>\r\n                    <Icon icon={IconType.FilePdf} iconSize={22}></Icon>\r\n                  </a>\r\n                </Col>\r\n              </Row>\r\n              <div dangerouslySetInnerHTML={{ __html: note.note.replace(\"\\\\r\\\\n\", \"<br />\") }} />\r\n            </div>\r\n          ))}\r\n      </ModalBody>\r\n      <ModalFooter>\r\n        <Button color=\"primary\" onClick={toggleModal}>\r\n          Ok\r\n        </Button>\r\n      </ModalFooter>\r\n    </Modal>\r\n  );\r\n};\r\n\r\nexport default connect(\r\n  ({ notes }: AppState, ownProps: any): IReprintNotesProps => {\r\n    return {\r\n      ...ownProps,\r\n      reprintNotes: notes.reprintNotes,\r\n    };\r\n  },\r\n  dispatch =>\r\n    bindActionCreators(\r\n      {\r\n        ...ReprintInformationActions,\r\n      },\r\n      dispatch\r\n    )\r\n)(ReprintNotes);\r\n","import { IDocumentTag } from \"models/IDocumentTag\";\r\nimport React from \"react\";\r\nimport { Col } from \"reactstrap\";\r\nimport \"./Tags.scss\";\r\n\r\ninterface IDocumentProps {\r\n  documentId: number;\r\n  heading: string;\r\n  tags: IDocumentTag[];\r\n  publicationMediaId: number;\r\n}\r\n\r\nexport const Tags: React.FC<IDocumentProps> = props => {\r\n  if (props.tags.length > 0) {\r\n    return (\r\n      <Col lg={6}>\r\n        <dl>\r\n          {props.publicationMediaId !== 20 && <dt>{props.heading}</dt>}\r\n          {props.tags.map(tag => (\r\n            <dd key={props.documentId + \"_tag_\" + tag.id} className=\"mb-0\">\r\n              {tag.emneord}{\" \"}\r\n              {tag.underskriftDato && props.publicationMediaId !== 10 && props.publicationMediaId !== 20 && (\r\n                <span className=\"tag-signature\">\r\n                  {tag.underskriftSted && (\r\n                    <>\r\n                      ({tag.underskriftDato}, {tag.underskriftSted})\r\n                    </>\r\n                  )}\r\n                  {!tag.underskriftSted && <>({tag.underskriftDato})</>}\r\n                </span>\r\n              )}\r\n            </dd>\r\n          ))}\r\n        </dl>\r\n      </Col>\r\n    );\r\n  } else {\r\n    return <></>;\r\n  }\r\n};\r\n","import * as React from \"react\";\r\nimport { Col, Row, Badge, Container, Button } from \"reactstrap\";\r\nimport { Icon, IconType } from \"@lexdania/components\";\r\nimport { IDocument } from \"./../../models/IDocument\";\r\nimport \"./Document.scss\";\r\nimport ReprintNotes from \"../reprintNotes/ReprintNotes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Tags } from \"./Tags\";\r\n\r\nfunction nlToBr(str: string = \"\"): string | JSX.Element[] {\r\n  const arr = str.split(\"\\\\n\");\r\n  if (arr.length < 2) {\r\n    return str;\r\n  }\r\n  const elmsArr = arr.flatMap((s, i) => [<span key={i}>{s}</span>, <br key={\"b\" + i} />]);\r\n  elmsArr.pop();\r\n  return elmsArr;\r\n}\r\n\r\ninterface IDocumentProps {\r\n  document: IDocument;\r\n  sidebarVisible: boolean;\r\n}\r\n\r\nconst Document: React.FC<IDocumentProps> = props => {\r\n  const { document: d } = props;\r\n  const [showReprintNotes, setShowReprintNotes] = React.useState(false);\r\n  const [showTags, setShowTags] = React.useState(false);\r\n\r\n  const toggleReprintNotes = () => {\r\n    setShowReprintNotes(!showReprintNotes);\r\n  };\r\n\r\n  React.useEffect(() => {\r\n    setShowTags(false);\r\n    setShowReprintNotes(false);\r\n  }, [d.id]);\r\n\r\n  return (\r\n    <Container className=\"document-entry py-3 px-sm-0 pl-sm-0\">\r\n      <ReprintNotes ressort={d.ressortName} isOpen={showReprintNotes} toggleModal={toggleReprintNotes} docId={d.id} title={d.title} shortName={d.shortName} />\r\n      <Row className=\"my-2\">\r\n        <Col lg={8} xl={7} className=\"px-xs-0\">\r\n          <div className=\"document-short-name d-block d-sm-inline pb-1 pb-sm-0 mr-sm-2\">{d.shortName}</div>\r\n          <div className=\"badge-container d-block d-sm-inline py-1 py-md-0 mr-sm-2\">\r\n            <Badge color=\"secondary\" className=\"py-2 px-3\">\r\n              {d.publicationMedia.name}\r\n            </Badge>\r\n          </div>\r\n          {d.isReprint && (\r\n            <Button color=\"primary\" className=\" py-2 px-3 omtrykt-badge badge btn-badge \" onClick={toggleReprintNotes}>\r\n              OMTRYKT\r\n            </Button>\r\n          )}\r\n        </Col>\r\n        <Col className=\"document-ressort text-lg-right text-sm-left py-1 py-md-0 px-xs-0 \">{d.ressortName}</Col>\r\n      </Row>\r\n      <Row>\r\n        <Col lg={12} className=\"px-xs-0\">\r\n          <a href={`/api/pdf/${d.id}`}>\r\n            <h3>{nlToBr(d.title)}</h3>\r\n          </a>\r\n        </Col>\r\n      </Row>\r\n      <Row className=\"mt-md-2\">\r\n        <Col md={props.sidebarVisible ? 5 : 6} className=\"document-popular-title my-2 my-md-0 px-xs-0\">\r\n          {d.offentliggoerelsesDato}\r\n          {d.popularTitle && d.offentliggoerelsesDato && <div className=\" seperator\" />}\r\n          {d.popularTitle}\r\n        </Col>\r\n\r\n        <Col md={props.sidebarVisible ? 7 : 6} className=\"text-right px-xs-0 d-flex d-md-block justify-content-between\">\r\n          {d.lovtidendeAEmneord.length + d.lovtidendeCBilateraleEmneord.length + d.lovtidendeCMultilateraleEmneord.length > 0 && (\r\n            <>\r\n              <Link\r\n                to=\"#\"\r\n                onClick={e => {\r\n                  e.preventDefault();\r\n                  setShowTags(!showTags);\r\n                }}\r\n                aria-controls=\"tags-area\"\r\n              >\r\n                <span className=\"sr-only\">{showTags ? \"Skjul \" : \"Vis \"}</span>Emneord\r\n                <div className=\"angle-container\">\r\n                  <Icon icon={IconType.AngleRight} iconSize={20} className={!showTags ? \"svg-rotate collapsed ml-2\" : \"svg-rotate ml-2\"} />\r\n                </div>\r\n              </Link>\r\n              <div className=\"seperator d-none d-md-inline-block\" />\r\n            </>\r\n          )}\r\n          {d.retsinfoLink && (\r\n            <a href={d.retsinfoLink} target=\"_blank\" rel=\"noopener noreferrer\" className=\"d-block d-md-inline mt-0\">\r\n              <span className=\"sr-only\">Åbn dokumentet på </span>Retsinformation\r\n              <Icon icon={IconType.ExternalLink} className=\"ml-2\" />\r\n            </a>\r\n          )}\r\n        </Col>\r\n      </Row>\r\n      {showTags && (\r\n        <Row id=\"tags-area\">\r\n          <Col>\r\n            <div className=\"tags\">\r\n              <Row>\r\n                <Tags publicationMediaId={d.publicationMedia.id} tags={d.lovtidendeAEmneord} documentId={d.id} heading=\"Lovtidende A\" />\r\n                <Tags\r\n                  publicationMediaId={d.publicationMedia.id}\r\n                  tags={d.lovtidendeCBilateraleEmneord}\r\n                  documentId={d.id}\r\n                  heading=\"Lovtidende C Bilaterale overenskomster\"\r\n                />\r\n                <Tags\r\n                  publicationMediaId={d.publicationMedia.id}\r\n                  tags={d.lovtidendeCMultilateraleEmneord}\r\n                  documentId={d.id}\r\n                  heading=\"Lovtidende C Multilaterale overenskomster\"\r\n                />\r\n              </Row>\r\n            </div>\r\n          </Col>\r\n        </Row>\r\n      )}\r\n    </Container>\r\n  );\r\n};\r\n\r\nexport default Document;\r\n","export enum ProclamationBatchTypeEnum {\r\n  NORMAL = 0,\r\n  REPRINT = 1,\r\n}\r\n","import * as React from \"react\";\r\nimport { IProclamationBatch } from \"../../models/IProclamationBatch\";\r\nimport { FormattedDateTimeSimple, Spinner } from \"@lexdania/components\";\r\nimport { IDocument } from \"../../models/IDocument\";\r\nimport Document from \"../../components/document/Document\";\r\nimport \"./ProclamationBatchList.scss\";\r\nimport { ProclamationBatchTypeEnum } from \"../../models/proclamationBatchTypeEnum\";\r\n\r\ninterface IProclamationBatchListProps {\r\n  batchList: IProclamationBatch[];\r\n  fetchingData: boolean;\r\n}\r\n\r\nexport const ProclamationBatchList = ({ batchList, fetchingData }: IProclamationBatchListProps) => (\r\n  <Spinner isLoading={fetchingData}>\r\n    {batchList.length > 0 &&\r\n      batchList.map((p: IProclamationBatch, i: number) => (\r\n        <div className=\"proclamation-list-element\" key={i + \"_proclamation-list-element\"}>\r\n          <div className=\"proclamation-time\">\r\n            {p.type === ProclamationBatchTypeEnum.REPRINT ? <span>Omtryk</span> : <FormattedDateTimeSimple date={new Date(p.proclamationTime)} />}\r\n          </div>\r\n          {p.documents && p.documents.map((d: IDocument, n: number) => <Document sidebarVisible={false} document={d} key={n} />)}\r\n        </div>\r\n      ))}\r\n    {!fetchingData && batchList.length === 0 && (\r\n      <div className=\"proclamation-list-element\">\r\n        <div className=\"proclamation-time\">\r\n          <div>Ingen resultater</div>\r\n        </div>\r\n      </div>\r\n    )}\r\n  </Spinner>\r\n);\r\n","import * as React from \"react\";\r\nimport { Nav, NavItem, NavLink } from \"reactstrap\";\r\nimport { connect } from \"react-redux\";\r\nimport { IProclamationReducerActions, ProclamationReducerActions } from \"../../store/proclamation/proclamationReducer\";\r\nimport { ProclamationBatchList } from \"./ProclamationBatchList\";\r\nimport { PublicationMediaEnum } from \"../../models/publicationMediaEnum\";\r\nimport { IProclamationBatch } from \"../../models/IProclamationBatch\";\r\nimport { AppState } from \"../../store\";\r\n\r\ninterface IProclamationContainerProps extends IProclamationReducerActions {\r\n  publicationMedia: PublicationMediaEnum;\r\n  batchList: IProclamationBatch[];\r\n  fetchingData: boolean;\r\n}\r\n\r\nclass ProclamationContainer extends React.Component<IProclamationContainerProps, {}> {\r\n  public componentDidMount(): void {\r\n    this.props.getLatest(PublicationMediaEnum.LOVTIDENDE_A);\r\n  }\r\n\r\n  public toggleMedia = (media: PublicationMediaEnum) => (e: React.SyntheticEvent) => {\r\n    this.props.getLatest(media);\r\n    e.preventDefault();\r\n  };\r\n\r\n  public render() {\r\n    return (\r\n      <div className=\"proclamation mt-3\">\r\n        <h1>Seneste kundgjorte forskrifter</h1>\r\n        <Nav tabs={true} className=\"mb-3\">\r\n          <NavItem className=\"d-md-none\">\r\n            <NavLink\r\n              active={this.props.publicationMedia === PublicationMediaEnum.LOVTIDENDE_A}\r\n              onClick={this.toggleMedia(PublicationMediaEnum.LOVTIDENDE_A)}\r\n              disabled={this.props.fetchingData}\r\n            >\r\n              A\r\n            </NavLink>\r\n          </NavItem>\r\n          <NavItem className=\"d-md-none\">\r\n            <NavLink\r\n              active={this.props.publicationMedia === PublicationMediaEnum.LOVTIDENDE_B}\r\n              onClick={this.toggleMedia(PublicationMediaEnum.LOVTIDENDE_B)}\r\n              disabled={this.props.fetchingData}\r\n            >\r\n              B\r\n            </NavLink>\r\n          </NavItem>\r\n          <NavItem className=\"d-md-none\">\r\n            <NavLink\r\n              active={this.props.publicationMedia === PublicationMediaEnum.LOVTIDENDE_C}\r\n              onClick={this.toggleMedia(PublicationMediaEnum.LOVTIDENDE_C)}\r\n              disabled={this.props.fetchingData}\r\n            >\r\n              C\r\n            </NavLink>\r\n          </NavItem>\r\n          <NavItem className=\"d-none d-md-block\">\r\n            <NavLink\r\n              href=\"#\"\r\n              active={this.props.publicationMedia === PublicationMediaEnum.LOVTIDENDE_A}\r\n              onClick={this.toggleMedia(PublicationMediaEnum.LOVTIDENDE_A)}\r\n              disabled={this.props.fetchingData}\r\n            >\r\n              Lovtidende A\r\n            </NavLink>\r\n          </NavItem>\r\n          <NavItem className=\"d-none d-md-block\">\r\n            <NavLink\r\n              href=\"#\"\r\n              active={this.props.publicationMedia === PublicationMediaEnum.LOVTIDENDE_B}\r\n              onClick={this.toggleMedia(PublicationMediaEnum.LOVTIDENDE_B)}\r\n              disabled={this.props.fetchingData}\r\n            >\r\n              Lovtidende B\r\n            </NavLink>\r\n          </NavItem>\r\n          <NavItem className=\"d-none d-md-block\">\r\n            <NavLink\r\n              href=\"#\"\r\n              active={this.props.publicationMedia === PublicationMediaEnum.LOVTIDENDE_C}\r\n              onClick={this.toggleMedia(PublicationMediaEnum.LOVTIDENDE_C)}\r\n              disabled={this.props.fetchingData}\r\n            >\r\n              Lovtidende C\r\n            </NavLink>\r\n          </NavItem>\r\n        </Nav>\r\n        <ProclamationBatchList fetchingData={this.props.fetchingData} batchList={this.props.batchList} />\r\n      </div>\r\n    );\r\n  }\r\n}\r\n\r\nexport default connect(\r\n  ({ proclamation }: AppState, ownProps: any): IProclamationContainerProps => ({\r\n    ...ownProps,\r\n    batchList: proclamation.batchList,\r\n    publicationMedia: proclamation.publicationMedia,\r\n    fetchingData: proclamation.fetchingData,\r\n  }),\r\n  { ...ProclamationReducerActions }\r\n)(ProclamationContainer);\r\n","const publicationMediaFilterData: any[] = [];\r\n\r\nconst lovA = {\r\n  id: 10,\r\n  value: \"A\",\r\n  label: \"Lovtidende A\",\r\n  children: [\r\n    {\r\n      value: \"\",\r\n      label: \"Love & lovbekendtgørelser\",\r\n      noCheckBox: true,\r\n    },\r\n    {\r\n      value: \"10\",\r\n      label: \"Lov\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"20\",\r\n      label: \"Ændringslov\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"30\",\r\n      label: \"Lovbekendtgørelse\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"\",\r\n      label: \"Administrative forskrifter\",\r\n      noCheckBox: true,\r\n    },\r\n    {\r\n      value: \"90\",\r\n      label: \"Ikrafttræd. bekendtgørelse\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"120\",\r\n      label: \"Ikrafttræd. anordning\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"270\",\r\n      label: \"Ikrafttræd. anordning (GL og FO)\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"60\",\r\n      label: \"Bekendtgørelse\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"100\",\r\n      label: \"Anordning\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"80\",\r\n      label: \"Ændringsbekendtgørelse\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"110\",\r\n      label: \"Ændringsanordning\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"130\",\r\n      label: \"Åbent brev\",\r\n      noCheckBox: false,\r\n    },\r\n    {\r\n      value: \"1510\",\r\n      label: \"Anordningsbekendtgørelse\",\r\n      noCheckBox: false,\r\n    },\r\n  ],\r\n};\r\npublicationMediaFilterData.push(lovA);\r\n\r\nconst lovB = {\r\n  id: 20,\r\n  value: \"B\",\r\n  label: \"Lovtidende B\",\r\n  children: [\r\n    {\r\n      value: \"1480\",\r\n      label: \"Lovtidende B dokument\",\r\n      noCheckBox: false,\r\n    },\r\n  ],\r\n};\r\npublicationMediaFilterData.push(lovB);\r\n\r\nconst lovC = {\r\n  id: 30,\r\n  value: \"C\",\r\n  label: \"Lovtidende C\",\r\n  children: [\r\n    {\r\n      value: \"220\",\r\n      label: \"Bekendtgørelse (international)\",\r\n      noCheckBox: false,\r\n    },\r\n  ],\r\n};\r\npublicationMediaFilterData.push(lovC);\r\n\r\nexport { publicationMediaFilterData };\r\n","export enum MatchField {\r\n  Title = 1,\r\n  PopularTitle = 2,\r\n}\r\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"tabs\", \"pills\", \"vertical\", \"horizontal\", \"justified\", \"fill\", \"navbar\", \"card\", \"tag\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n  tabs: PropTypes.bool,\n  pills: PropTypes.bool,\n  vertical: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n  horizontal: PropTypes.string,\n  justified: PropTypes.bool,\n  fill: PropTypes.bool,\n  navbar: PropTypes.bool,\n  card: PropTypes.bool,\n  tag: tagPropType,\n  className: PropTypes.string,\n  cssModule: PropTypes.object\n};\nvar defaultProps = {\n  tag: 'ul',\n  vertical: false\n};\n\nvar getVerticalClass = function getVerticalClass(vertical) {\n  if (vertical === false) {\n    return false;\n  } else if (vertical === true || vertical === 'xs') {\n    return 'flex-column';\n  }\n\n  return \"flex-\" + vertical + \"-column\";\n};\n\nvar Nav = function Nav(props) {\n  var className = props.className,\n      cssModule = props.cssModule,\n      tabs = props.tabs,\n      pills = props.pills,\n      vertical = props.vertical,\n      horizontal = props.horizontal,\n      justified = props.justified,\n      fill = props.fill,\n      navbar = props.navbar,\n      card = props.card,\n      Tag = props.tag,\n      attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n  var classes = mapToCssModules(classNames(className, navbar ? 'navbar-nav' : 'nav', horizontal ? \"justify-content-\" + horizontal : false, getVerticalClass(vertical), {\n    'nav-tabs': tabs,\n    'card-header-tabs': card && tabs,\n    'nav-pills': pills,\n    'card-header-pills': card && pills,\n    'nav-justified': justified,\n    'nav-fill': fill\n  }), cssModule);\n  return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n    className: classes\n  }));\n};\n\nNav.propTypes = propTypes;\nNav.defaultProps = defaultProps;\nexport default Nav;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"active\", \"tag\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n  tag: tagPropType,\n  active: PropTypes.bool,\n  className: PropTypes.string,\n  cssModule: PropTypes.object\n};\nvar defaultProps = {\n  tag: 'li'\n};\n\nvar NavItem = function NavItem(props) {\n  var className = props.className,\n      cssModule = props.cssModule,\n      active = props.active,\n      Tag = props.tag,\n      attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n  var classes = mapToCssModules(classNames(className, 'nav-item', active ? 'active' : false), cssModule);\n  return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n    className: classes\n  }));\n};\n\nNavItem.propTypes = propTypes;\nNavItem.defaultProps = defaultProps;\nexport default NavItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"active\", \"tag\", \"innerRef\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n  tag: tagPropType,\n  innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n  disabled: PropTypes.bool,\n  active: PropTypes.bool,\n  className: PropTypes.string,\n  cssModule: PropTypes.object,\n  onClick: PropTypes.func,\n  href: PropTypes.any\n};\nvar defaultProps = {\n  tag: 'a'\n};\n\nvar NavLink = /*#__PURE__*/function (_React$Component) {\n  _inheritsLoose(NavLink, _React$Component);\n\n  function NavLink(props) {\n    var _this;\n\n    _this = _React$Component.call(this, props) || this;\n    _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  var _proto = NavLink.prototype;\n\n  _proto.onClick = function onClick(e) {\n    if (this.props.disabled) {\n      e.preventDefault();\n      return;\n    }\n\n    if (this.props.href === '#') {\n      e.preventDefault();\n    }\n\n    if (this.props.onClick) {\n      this.props.onClick(e);\n    }\n  };\n\n  _proto.render = function render() {\n    var _this$props = this.props,\n        className = _this$props.className,\n        cssModule = _this$props.cssModule,\n        active = _this$props.active,\n        Tag = _this$props.tag,\n        innerRef = _this$props.innerRef,\n        attributes = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n    var classes = mapToCssModules(classNames(className, 'nav-link', {\n      disabled: attributes.disabled,\n      active: active\n    }), cssModule);\n    return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n      ref: innerRef,\n      onClick: this.onClick,\n      className: classes\n    }));\n  };\n\n  return NavLink;\n}(React.Component);\n\nNavLink.propTypes = propTypes;\nNavLink.defaultProps = defaultProps;\nexport default NavLink;","/**\n * A function that emits a side effect and does not return anything.\n */\nexport type Procedure = (...args: any[]) => void;\n\nexport type Options = {\n  isImmediate: boolean,\n}\n\nexport function debounce<F extends Procedure>(\n  func: F,\n  waitMilliseconds = 50,\n  options: Options = {\n    isImmediate: false\n  },\n): F {\n  let timeoutId: NodeJS.Timeout | undefined;\n\n  return function(this: any, ...args: any[]) {\n    const context = this;\n\n    const doLater = function() {\n      timeoutId = undefined;\n      if (!options.isImmediate) {\n        func.apply(context, args);\n      }\n    }\n\n    const shouldCallNow = options.isImmediate && timeoutId === undefined;\n\n    if (timeoutId !== undefined) {\n      clearTimeout(timeoutId);\n    }\n\n    timeoutId = setTimeout(doLater, waitMilliseconds);\n\n    if (shouldCallNow) {\n      func.apply(context, args);\n    }\n  } as any\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}"],"names":["defaultLiveSearchState","liveSearchTerm","hits","staticLiveSearchItemsCount","yearLow","yearHigh","Date","getFullYear","numberAndYearRegExp","allNumbersRegExp","validYearsRegExp","getNumberText","number","getYearText","year","getPubMediaText","publicationMedia","getNumberAndYearText","arr","buildText","undefined","buildUrlParamsFromPubMediaId","pmId","params","publicationMediaFilterData","x","id","toString","flatMap","children","filter","docType","noCheckBox","map","value","join","length","SearchBoxContainer","state","currentSearchTerm","liveSearchState","selectedPublicationMedia","PublicationMediaEnum","yearStart","yearEnd","documentNumberRange","onSearchButtonClicked","searchTerm","numberYearMatch","match","numberMatches","onYearAndNumberMatchClicked","validYearsMatch","replace","num","find","setParamsAndRedirect","handlePubMediaSelection","val","onLiveSearchTermChange","rawSearchTerm","publicationMediaEnum","trimmedSearchTerm","trim","newLiveSearchState","counter","push","text","onClick","aria","icon","IconType","test","setState","debounce","getDynamicLiveSearchItems","getLiveSearchSuggestionItems","numRange","paramsElements","props","activePageSize","sendToSearch","liveSearchHitSelected","hit","field","MatchField","this","Card","color","className","Row","Col","Button","role","tabIndex","LiveSearch","onChange","e","data","searchPlaceHolder","buttonStyle","autofocus","lst","parameterString","apiGET","qs","paramsSerializer","p","then","result","count","label","template","LiveResultTemplateEnum","catch","error","console","log","React","connect","ownProps","documentSearch","paramsParsed","ps","document","title","queryString","history","ProclamationContainer","notes","reprintNotes","dispatch","bindActionCreators","ReprintInformationActions","toggleModal","isOpen","getReprintNotes","docId","shortName","ressort","Modal","ModalHeader","tag","ModalBody","note","index","date","classname","href","reprintOfId","Icon","iconSize","dangerouslySetInnerHTML","__html","ModalFooter","Tags","tags","lg","publicationMediaId","heading","emneord","underskriftDato","underskriftSted","documentId","nlToBr","str","split","elmsArr","s","i","pop","d","showReprintNotes","setShowReprintNotes","showTags","setShowTags","toggleReprintNotes","Container","ressortName","xl","Badge","name","isReprint","md","sidebarVisible","offentliggoerelsesDato","popularTitle","lovtidendeAEmneord","lovtidendeCBilateraleEmneord","lovtidendeCMultilateraleEmneord","Link","to","preventDefault","retsinfoLink","target","rel","ProclamationBatchTypeEnum","ProclamationBatchList","batchList","fetchingData","Spinner","isLoading","type","REPRINT","FormattedDateTimeSimple","proclamationTime","documents","n","Document","toggleMedia","media","getLatest","Nav","tabs","NavItem","NavLink","active","disabled","proclamation","ProclamationReducerActions","_excluded","propTypes","PropTypes","pills","vertical","horizontal","justified","fill","navbar","card","tagPropType","cssModule","Tag","attributes","_objectWithoutPropertiesLoose","classes","mapToCssModules","classNames","getVerticalClass","_extends","defaultProps","innerRef","_React$Component","_this","call","bind","_assertThisInitialized","_inheritsLoose","_proto","prototype","render","_this$props","ref","func","waitMilliseconds","options","timeoutId","isImmediate","_i","args","context","shouldCallNow","clearTimeout","setTimeout","apply","_toConsumableArray","Array","isArray","arrayLikeToArray","iter","Symbol","iterator","from","unsupportedIterableToArray","TypeError"],"sourceRoot":""}