All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.b6fe2bb5-9910.6d35d33e083ddec7ec71.js.map Maven / Gradle / Ivy

{"version":3,"file":"b6fe2bb5-9910.6d35d33e083ddec7ec71.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/components/content-packs/ContentPackSelection.css?09b7","webpack://graylog-web-interface/./src/components/content-packs/ContentPackSelection.jsx","webpack://graylog-web-interface/./src/components/content-packs/ContentPackPreview.jsx","webpack://graylog-web-interface/./src/components/content-packs/ContentPackParameters.jsx","webpack://graylog-web-interface/./src/components/content-packs/ContentPackEdit.jsx","webpack://graylog-web-interface/./src/logic/content-packs/EntityIndex.js","webpack://graylog-web-interface/./src/stores/content-packs/CatalogStore.js","webpack://graylog-web-interface/./src/components/content-packs/ContentPackSelection.css"],"sourcesContent":["\n      import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!./ContentPackSelection.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].use[1]!./ContentPackSelection.css\";\n       export default content && content.locals ? content.locals : undefined;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport naturalSort from 'javascript-natural-sort';\nimport { cloneDeep } from 'lodash';\n\nimport { ExpandableList, ExpandableListItem, Icon, SearchForm } from 'components/common';\nimport { Col, HelpBlock, Panel, Row, Input } from 'components/bootstrap';\nimport { getValueFromInput } from 'util/FormsUtils';\nimport Entity from 'logic/content-packs/Entity';\nimport { hasAcceptedProtocol } from 'util/URLUtils';\n\nimport style from './ContentPackSelection.css';\n\nclass ContentPackSelection extends React.Component {\n  static propTypes = {\n    contentPack: PropTypes.object.isRequired,\n    onStateChange: PropTypes.func,\n    entities: PropTypes.object,\n    selectedEntities: PropTypes.object,\n    edit: PropTypes.bool,\n  };\n\n  static defaultProps = {\n    edit: false,\n    onStateChange: () => {},\n    entities: {},\n    selectedEntities: {},\n  };\n\n  static _toDisplayTitle(title) {\n    const newTitle = title.split('_').join(' ');\n\n    return newTitle[0].toUpperCase() + newTitle.substr(1);\n  }\n\n  constructor(props) {\n    super(props);\n\n    const { entities, contentPack } = this.props;\n\n    this.state = {\n      contentPack: contentPack,\n      filteredEntities: entities,\n      filter: '',\n      isFiltered: false,\n      errors: {},\n    };\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    this.setState({ filteredEntities: nextProps.entities, contentPack: nextProps.contentPack });\n    const { filter, isFiltered } = this.state;\n\n    if (isFiltered) {\n      this._filterEntities(filter);\n    }\n  }\n\n  _updateField = (name, value) => {\n    const { contentPack } = this.state;\n    const { onStateChange } = this.props;\n    const updatedPack = contentPack.toBuilder()[name](value).build();\n\n    onStateChange({ contentPack: updatedPack });\n    this.setState({ contentPack: updatedPack }, this._validate);\n  };\n\n  _validate = (newSelection) => {\n    const mandatoryFields = ['name', 'summary', 'vendor'];\n    const { contentPack } = this.state;\n    const { selectedEntities: prevSelectedEntities } = this.props;\n    const selectedEntities = newSelection || prevSelectedEntities;\n\n    const errors = mandatoryFields.reduce((acc, field) => {\n      const newErrors = acc;\n\n      if (!contentPack[field] || contentPack[field].length <= 0) {\n        newErrors[field] = 'Must be filled out.';\n      }\n\n      return newErrors;\n    }, {});\n\n    if (contentPack.url) {\n      try {\n        if (!hasAcceptedProtocol(contentPack.url)) {\n          errors.url = 'Must use a URL starting with http or https.';\n        }\n      } catch (e) {\n        errors.url = 'Invalid URL';\n      }\n    }\n\n    const selectionEmpty = Object.keys(selectedEntities)\n      .reduce((acc, entityGroup) => { return acc + selectedEntities[entityGroup].length; }, 0) <= 0;\n\n    if (selectionEmpty) {\n      errors.selection = 'Select at least one entity.';\n    }\n\n    this.setState({ errors });\n  };\n\n  _bindValue = (event) => {\n    this._updateField(event.target.name, getValueFromInput(event.target));\n  };\n\n  _updateSelectionEntity = (entity) => {\n    const { selectedEntities, onStateChange } = this.props;\n    const typeName = entity.type.name;\n    const newSelection = cloneDeep(selectedEntities);\n\n    newSelection[typeName] = (newSelection[typeName] || []);\n    const index = newSelection[typeName].findIndex((e) => { return e.id === entity.id; });\n\n    if (index < 0) {\n      newSelection[typeName].push(entity);\n    } else {\n      newSelection[typeName].splice(index, 1);\n    }\n\n    this._validate(newSelection);\n    onStateChange({ selectedEntities: newSelection });\n  };\n\n  _updateSelectionGroup = (type) => {\n    const { selectedEntities, entities, onStateChange } = this.props;\n    const { isFiltered, filteredEntities } = this.state;\n\n    const newSelection = cloneDeep(selectedEntities);\n\n    if (isFiltered) {\n      if (newSelection[type]) {\n        newSelection[type] = [...newSelection[type], ...filteredEntities[type]];\n      } else {\n        newSelection[type] = filteredEntities[type];\n      }\n    } else if (this._isGroupSelected(type)) {\n      newSelection[type] = [];\n    } else {\n      newSelection[type] = entities[type];\n    }\n\n    this._validate(newSelection);\n    onStateChange({ selectedEntities: newSelection });\n  };\n\n  _isUndetermined = (type) => {\n    const { selectedEntities, entities } = this.props;\n\n    if (!selectedEntities[type]) {\n      return false;\n    }\n\n    return !(selectedEntities[type].length === entities[type].length\n       || selectedEntities[type].length === 0);\n  };\n\n  _isSelected = (entity) => {\n    const { selectedEntities } = this.props;\n    const typeName = entity.type.name;\n\n    if (!selectedEntities[typeName]) {\n      return false;\n    }\n\n    return selectedEntities[typeName].findIndex((e) => { return e.id === entity.id; }) >= 0;\n  };\n\n  _isGroupSelected = (type) => {\n    const { selectedEntities, entities } = this.props;\n\n    if (!selectedEntities[type]) {\n      return false;\n    }\n\n    return selectedEntities[type].length === entities[type].length;\n  };\n\n  _onSetFilter = (filter) => {\n    this._filterEntities(filter);\n  };\n\n  _onClearFilter = () => {\n    this._filterEntities('');\n  };\n\n  _filterEntities = (filterArg) => {\n    const { entities } = this.props;\n    const filter = filterArg;\n\n    if (filter.length <= 0) {\n      this.setState({ filteredEntities: cloneDeep(entities), isFiltered: false, filter: filter });\n\n      return;\n    }\n\n    const filtered = Object.keys(entities).reduce((result, type) => {\n      const filteredEntities = cloneDeep(result);\n\n      filteredEntities[type] = entities[type].filter((entity) => {\n        const regexp = RegExp(filter, 'i');\n\n        return regexp.test(entity.title);\n      });\n\n      return filteredEntities;\n    }, {});\n\n    this.setState({ filteredEntities: filtered, isFiltered: true, filter: filter });\n  };\n\n  _entityItemHeader = (entity) => {\n    if (entity instanceof Entity) {\n      return {' '}{entity.title};\n    }\n\n    return {' '}{entity.title};\n  };\n\n  render() {\n    const { filteredEntities = {}, errors, isFiltered, contentPack } = this.state;\n    const { edit } = this.props;\n\n    const entitiesComponent = Object.keys(filteredEntities)\n      .sort((a, b) => naturalSort(a, b))\n      .map((entityType) => {\n        const group = filteredEntities[entityType];\n        const entities = group.sort((a, b) => naturalSort(a.title, b.title)).map((entity) => {\n          const checked = this._isSelected(entity);\n          const header = this._entityItemHeader(entity);\n\n          return (\n             this._updateSelectionEntity(entity)}\n                                key={entity.id}\n                                checked={checked}\n                                expandable={false}\n                                padded={false}\n                                header={header} />\n          );\n        });\n\n        if (group.length <= 0) {\n          return null;\n        }\n\n        return (\n           this._updateSelectionGroup(entityType)}\n                              indetermined={this._isUndetermined(entityType)}\n                              checked={this._isGroupSelected(entityType)}\n                              stayExpanded={isFiltered}\n                              expanded={isFiltered}\n                              padded={false}\n                              header={ContentPackSelection._toDisplayTitle(entityType)}>\n            \n              {entities}\n            \n          \n        );\n      });\n\n    return (\n      
\n \n \n

General Information

\n
\n
{ e.preventDefault(); }}>\n
\n \n \n \n \n \n
\n
\n \n
\n \n \n

Content Pack selection

\n {edit && (\n You can select between installed entities from the server () or\n entities from the former content pack revision ().\n \n )}\n \n
\n \n \n \n \n \n \n \n {errors.selection && {errors.selection}}\n \n {entitiesComponent}\n \n \n \n
\n );\n }\n}\n\nexport default ContentPackSelection;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { Row, Col, Button } from 'components/bootstrap';\nimport ContentPackDetails from 'components/content-packs/ContentPackDetails';\nimport ContentPackConstraints from 'components/content-packs/ContentPackConstraints';\n\nimport ContentPackEntitiesList from './ContentPackEntitiesList';\nimport ContentPackParameterList from './ContentPackParameterList';\n\nclass ContentPackPreview extends React.Component {\n static propTypes = {\n contentPack: PropTypes.object.isRequired,\n onSave: PropTypes.func,\n };\n\n static defaultProps = {\n onSave: () => {},\n };\n\n _renderDownload() {\n const contentPackEncoded = encodeURIComponent(JSON.stringify(this.props.contentPack, null, 2));\n const href = `data:text/plain;charset=utf-8,${contentPackEncoded}`;\n const filename = `content-pack-${this.props.contentPack.id}-${this.props.contentPack.rev}.json`;\n\n return (\n \n \n \n );\n }\n\n render() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n  \n {this._renderDownload()}\n \n \n
\n );\n }\n}\n\nexport default ContentPackPreview;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport lodash from 'lodash';\n\nimport { Row, Col, BootstrapModalConfirm } from 'components/bootstrap';\nimport ObjectUtils from 'util/ObjectUtils';\n\nimport ContentPackEntitiesList from './ContentPackEntitiesList';\nimport ContentPackParameterList from './ContentPackParameterList';\n\nclass ContentPackParameters extends React.Component {\n static propTypes = {\n contentPack: PropTypes.object.isRequired,\n onStateChange: PropTypes.func,\n appliedParameter: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n onStateChange: () => {},\n };\n\n static emptyParameter = {\n name: '',\n title: '',\n description: '',\n type: 'string',\n default_value: '',\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n newParameter: ObjectUtils.clone(ContentPackParameters.emptyParameter),\n parameterToDelete: undefined,\n defaultValueError: undefined,\n nameError: undefined,\n };\n }\n\n _addNewParameter = (newParameter, oldParameter) => {\n let newContentPackBuilder = this.props.contentPack.toBuilder();\n const newAppliedParameter = ObjectUtils.clone(this.props.appliedParameter);\n\n if (oldParameter) {\n /* If the name of the parameter changed we need to update the reference in appliedParameter */\n Object.keys(newAppliedParameter).forEach((id) => {\n newAppliedParameter[id] = newAppliedParameter[id].map((paramMap) => {\n if (paramMap.paramName === oldParameter.name) {\n return { configKey: paramMap.configKey, paramName: newParameter.name };\n }\n\n return paramMap;\n });\n });\n\n /* If we update a parameter we remove the old one first */\n newContentPackBuilder = newContentPackBuilder.removeParameter(oldParameter);\n }\n\n newContentPackBuilder.addParameter(newParameter);\n this.props.onStateChange({ contentPack: newContentPackBuilder.build(), appliedParameter: newAppliedParameter });\n };\n\n _onParameterApply = (id, configKey, paramName) => {\n const paramMap = { configKey: configKey, paramName: paramName };\n const newAppliedParameter = ObjectUtils.clone(this.props.appliedParameter);\n\n newAppliedParameter[id] = newAppliedParameter[id] || [];\n newAppliedParameter[id].push(paramMap);\n this.props.onStateChange({ appliedParameter: newAppliedParameter });\n };\n\n _onParameterClear = (id, configKey) => {\n const newAppliedParameter = ObjectUtils.clone(this.props.appliedParameter);\n\n lodash.remove(newAppliedParameter[id], (paramMap) => { return paramMap.configKey === configKey; });\n this.props.onStateChange({ appliedParameter: newAppliedParameter });\n };\n\n _deleteParameter = (parameter) => {\n const { contentPack } = this.props;\n const newAppliedParameter = ObjectUtils.clone(this.props.appliedParameter);\n\n /* If we delete a parameter we need to remove the reference from appliedParameter */\n Object.keys(newAppliedParameter).forEach((id) => {\n lodash.remove(newAppliedParameter[id], (paramMap) => { return paramMap.paramName === parameter.name; });\n\n if (newAppliedParameter[id].length <= 0) {\n delete newAppliedParameter[id];\n }\n });\n\n const newContentPack = contentPack.toBuilder().removeParameter(parameter).build();\n\n this.props.onStateChange({ contentPack: newContentPack, appliedParameter: newAppliedParameter });\n this._closeConfirmModal();\n };\n\n _confirmationModal = () => {\n return (\n { this.modal = c; }}\n title=\"Confirm deletion\"\n onConfirm={() => { this._deleteParameter(this.state.parameterToDelete); }}\n onCancel={this._closeConfirmModal}>\n {`Are you sure you want to do delete this parameter: ${(this.state.parameterToDelete || {}).title}?`}\n \n );\n };\n\n _openConfirmModal = (parameter) => {\n this.setState({ parameterToDelete: parameter });\n this.modal.open();\n };\n\n _closeConfirmModal = () => {\n this.setState({ parameterToDelete: undefined });\n this.modal.close();\n };\n\n render() {\n return (\n
\n \n \n \n {this._confirmationModal()}\n \n \n \n \n \n \n \n
\n );\n }\n}\n\nexport default ContentPackParameters;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { AutoAffix } from 'react-overlays';\n\nimport { Spinner, Wizard, ScrollButton } from 'components/common';\nimport ValueReferenceData from 'util/ValueReferenceData';\nimport ContentPackSelection from 'components/content-packs/ContentPackSelection';\nimport ContentPackDetails from 'components/content-packs/ContentPackDetails';\nimport ContentPackPreview from 'components/content-packs/ContentPackPreview';\nimport ContentPackParameters from 'components/content-packs/ContentPackParameters';\n\nclass ContentPackEdit extends React.Component {\n static propTypes = {\n contentPack: PropTypes.object,\n onGetEntities: PropTypes.func,\n onStateChange: PropTypes.func,\n onSave: PropTypes.func,\n fetchedEntities: PropTypes.array,\n entityIndex: PropTypes.object,\n selectedEntities: PropTypes.object,\n appliedParameter: PropTypes.object,\n edit: PropTypes.bool,\n };\n\n static defaultProps = {\n edit: false,\n contentPack: undefined,\n onGetEntities: () => {},\n onStateChange: () => {},\n onSave: () => {},\n fetchedEntities: [],\n entityIndex: {},\n selectedEntities: {},\n appliedParameter: {},\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedStep: 'selection',\n };\n }\n\n _disableParameters() {\n const content = this.props.contentPack;\n const { selectedEntities } = this.props;\n const selection = Object.keys(selectedEntities)\n .reduce((acc, key) => { return acc + selectedEntities[key].length; }, 0) > 0;\n\n return !(content.name && content.summary && content.vendor && selection);\n }\n\n _disablePreview() {\n return this.state.selectedStep === 'selection' || !this.state.selectedStep;\n }\n\n _prepareForPreview() {\n const newEntities = this.props.fetchedEntities.map((entity) => {\n const parameters = this.props.appliedParameter[entity.id] || [];\n const newEntityBuilder = entity.toBuilder();\n const entityData = new ValueReferenceData(entity.data);\n const configPaths = entityData.getPaths();\n\n Object.keys(configPaths).forEach((path) => {\n const index = parameters.findIndex((paramMap) => { return paramMap.configKey === path; });\n\n if (index >= 0) {\n configPaths[path].setParameter(parameters[index].paramName);\n }\n });\n\n newEntityBuilder.data(entityData.getData()).parameters(this.props.contentPack.parameters);\n\n return newEntityBuilder.build();\n });\n const newContentPack = this.props.contentPack.toBuilder()\n .entities(newEntities)\n .build();\n\n this.props.onStateChange({ contentPack: newContentPack });\n }\n\n _stepChanged = (selectedStep) => {\n switch (selectedStep) {\n case 'parameters': {\n const newContentPack = this.props.contentPack.toBuilder()\n .entities(this.props.fetchedEntities || [])\n .build();\n\n this.props.onStateChange({ contentPack: newContentPack });\n\n if (Object.keys(this.props.selectedEntities).length > 0) {\n this.props.onGetEntities(this.props.selectedEntities);\n }\n\n break;\n }\n\n case 'preview': {\n this._prepareForPreview();\n break;\n }\n\n default: {\n break;\n }\n }\n\n this.setState({ selectedStep: selectedStep });\n };\n\n render() {\n if (!this.props.contentPack) {\n return ();\n }\n\n const selectionComponent = (\n \n );\n const parameterComponent = (\n \n );\n const previewComponent = (\n \n );\n const steps = [\n { key: 'selection', title: 'Content Selection', component: selectionComponent },\n { key: 'parameters', title: 'Parameters', component: parameterComponent, disabled: this._disableParameters() },\n { key: 'preview', title: 'Preview', component: previewComponent, disabled: this._disablePreview() },\n ];\n\n return (\n
\n \n {this.state.selectedStep !== 'preview' ? (\n \n
\n \n
\n
\n ) : undefined}\n
\n \n
\n );\n }\n}\n\nexport default ContentPackEdit;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Immutable from 'immutable';\n\nexport default class EntityIndex {\n constructor(id, title, type) {\n this._value = { id, title, type };\n }\n\n get id() {\n return this._value.id;\n }\n\n get type() {\n return this._value.type;\n }\n\n get title() {\n return this._value.title;\n }\n\n toBuilder() {\n const { id, title, type } = this._value;\n\n // eslint-disable-next-line no-use-before-define\n return new Builder(Immutable.Map({ id, title, type }));\n }\n\n static create(id, title, type) {\n return new EntityIndex(id, title, type);\n }\n\n toJSON() {\n const { id, type } = this._value;\n\n return {\n id,\n type,\n };\n }\n\n /* eslint-disable-next-line class-methods-use-this */\n get isEntityIndex() {\n return true;\n }\n\n /* implement custom instanceof */\n static [Symbol.hasInstance](obj) {\n if (obj.isEntityIndex) {\n return true;\n }\n\n return false;\n }\n\n static fromJSON(value) {\n const { id, title, type } = value;\n\n return EntityIndex.create(id, title, type);\n }\n}\n\nclass Builder {\n constructor(value = Immutable.Map()) {\n this.value = value;\n }\n\n id(value) {\n return new Builder(this.value.set('id', value));\n }\n\n title(value) {\n return new Builder(this.value.set('title', value));\n }\n\n type(value) {\n return new Builder(this.value.set('type', value));\n }\n\n build() {\n const { id, title, type } = this.value.toObject();\n\n return new EntityIndex(id, title, type);\n }\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport Reflux from 'reflux';\nimport lodash from 'lodash';\n\nimport * as URLUtils from 'util/URLUtils';\nimport ApiRoutes from 'routing/ApiRoutes';\nimport fetch from 'logic/rest/FetchProvider';\nimport EntityIndex from 'logic/content-packs/EntityIndex';\nimport { singletonStore, singletonActions } from 'logic/singleton';\n\nexport const CatalogActions = singletonActions(\n 'core.Catalog',\n () => Reflux.createActions({\n showEntityIndex: { asyncResult: true },\n getSelectedEntities: { asyncResult: true },\n }),\n);\n\nexport const CatalogStore = singletonStore(\n 'core.Catalog',\n () => Reflux.createStore({\n listenables: [CatalogActions],\n\n showEntityIndex() {\n const url = URLUtils.qualifyUrl(ApiRoutes.CatalogsController.showEntityIndex().url);\n const promise = fetch('GET', url)\n .then((result) => {\n const entityIndex = lodash.groupBy(result.entities.map((e) => EntityIndex.fromJSON(e)), 'type.name');\n\n this.trigger({ entityIndex: entityIndex });\n\n return result;\n });\n\n CatalogActions.showEntityIndex.promise(promise);\n },\n\n getSelectedEntities(requestedEntities) {\n const payload = Object.keys(requestedEntities).reduce((result, key) => {\n return result.concat(requestedEntities[key]\n .filter((entitiy) => entitiy instanceof EntityIndex)\n .map((entity) => entity.toJSON()));\n }, []);\n const url = URLUtils.qualifyUrl(ApiRoutes.CatalogsController.queryEntities().url);\n const promise = fetch('POST', url, { entities: payload });\n\n CatalogActions.getSelectedEntities.promise(promise);\n },\n }),\n);\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".px9Gw1DZOqXRLhrnJC1w {\\n color: rgba(158, 31, 99, 0.43);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/content-packs/ContentPackSelection.css\"],\"names\":[],\"mappings\":\"AAAA;IACI,8BAA8B;AAClC\",\"sourcesContent\":[\":local(.contentPackEntity) {\\n color: rgba(158, 31, 99, 0.43);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"contentPackEntity\": \"px9Gw1DZOqXRLhrnJC1w\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","ContentPackSelection","props","name","value","contentPack","state","onStateChange","updatedPack","toBuilder","build","setState","_validate","newSelection","prevSelectedEntities","selectedEntities","errors","reduce","acc","field","newErrors","length","url","hasAcceptedProtocol","e","Object","keys","entityGroup","selection","event","_updateField","target","getValueFromInput","entity","typeName","type","cloneDeep","index","findIndex","id","push","splice","entities","isFiltered","filteredEntities","_isGroupSelected","filter","_filterEntities","filterArg","filtered","result","RegExp","test","title","Entity","className","style","newTitle","split","join","toUpperCase","substr","nextProps","this","edit","entitiesComponent","sort","a","b","naturalSort","map","entityType","group","checked","_isSelected","header","_entityItemHeader","onChange","_updateSelectionEntity","key","expandable","padded","_updateSelectionGroup","indetermined","_isUndetermined","stayExpanded","expanded","_toDisplayTitle","smOffset","lg","onSubmit","preventDefault","maxLength","_bindValue","label","help","error","required","summary","description","rows","vendor","onSearch","_onSetFilter","onReset","_onClearFilter","searchButtonLabel","sm","bsStyle","React","PropTypes","ContentPackPreview","contentPackEncoded","encodeURIComponent","JSON","stringify","href","filename","rev","download","onClick","onSave","ContentPackDetails","ContentPackConstraints","constraints","isFulfilled","ContentPackEntitiesList","readOnly","ContentPackParameterList","_renderDownload","ContentPackParameters","newParameter","oldParameter","newContentPackBuilder","newAppliedParameter","ObjectUtils","appliedParameter","forEach","paramMap","paramName","configKey","removeParameter","addParameter","lodash","parameter","newContentPack","_closeConfirmModal","ref","c","modal","onConfirm","_deleteParameter","parameterToDelete","onCancel","open","close","emptyParameter","defaultValueError","nameError","onAddParameter","_addNewParameter","onDeleteParameter","_openConfirmModal","_confirmationModal","onParameterClear","_onParameterClear","onParameterApply","_onParameterApply","default_value","ContentPackEdit","selectedStep","fetchedEntities","onGetEntities","_prepareForPreview","content","newEntities","parameters","newEntityBuilder","entityData","ValueReferenceData","data","configPaths","getPaths","path","setParameter","getData","selectionComponent","entityIndex","parameterComponent","previewComponent","steps","component","disabled","_disableParameters","_disablePreview","onStepChange","_stepChanged","affixed","viewportOffsetTop","position","EntityIndex","_value","Builder","Immutable","Symbol","hasInstance","obj","isEntityIndex","create","set","toObject","CatalogActions","singletonActions","Reflux","showEntityIndex","asyncResult","getSelectedEntities","CatalogStore","singletonStore","listenables","URLUtils","ApiRoutes","promise","fetch","then","fromJSON","trigger","requestedEntities","payload","concat","entitiy","toJSON","___CSS_LOADER_EXPORT___","module","locals"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy