Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Khalid Ali
schedules
Commits
e5015dc3
Commit
e5015dc3
authored
Apr 25, 2018
by
Zac Wood
Browse files
Cleaned out dist from git
parent
3bfce3f8
Changes
2
Hide whitespace changes
Inline
Side-by-side
schedules_web/dist/bundle.js
deleted
100644 → 0
View file @
3bfce3f8
/******/
(
function
(
modules
)
{
// webpackBootstrap
/******/
// The module cache
/******/
var
installedModules
=
{};
/******/
/******/
// The require function
/******/
function
__webpack_require__
(
moduleId
)
{
/******/
/******/
// Check if module is in cache
/******/
if
(
installedModules
[
moduleId
])
{
/******/
return
installedModules
[
moduleId
].
exports
;
/******/
}
/******/
// Create a new module (and put it into the cache)
/******/
var
module
=
installedModules
[
moduleId
]
=
{
/******/
i
:
moduleId
,
/******/
l
:
false
,
/******/
exports
:
{}
/******/
};
/******/
/******/
// Execute the module function
/******/
modules
[
moduleId
].
call
(
module
.
exports
,
module
,
module
.
exports
,
__webpack_require__
);
/******/
/******/
// Flag the module as loaded
/******/
module
.
l
=
true
;
/******/
/******/
// Return the exports of the module
/******/
return
module
.
exports
;
/******/
}
/******/
/******/
/******/
// expose the modules object (__webpack_modules__)
/******/
__webpack_require__
.
m
=
modules
;
/******/
/******/
// expose the module cache
/******/
__webpack_require__
.
c
=
installedModules
;
/******/
/******/
// define getter function for harmony exports
/******/
__webpack_require__
.
d
=
function
(
exports
,
name
,
getter
)
{
/******/
if
(
!
__webpack_require__
.
o
(
exports
,
name
))
{
/******/
Object
.
defineProperty
(
exports
,
name
,
{
/******/
configurable
:
false
,
/******/
enumerable
:
true
,
/******/
get
:
getter
/******/
});
/******/
}
/******/
};
/******/
/******/
// define __esModule on exports
/******/
__webpack_require__
.
r
=
function
(
exports
)
{
/******/
Object
.
defineProperty
(
exports
,
'
__esModule
'
,
{
value
:
true
});
/******/
};
/******/
/******/
// getDefaultExport function for compatibility with non-harmony modules
/******/
__webpack_require__
.
n
=
function
(
module
)
{
/******/
var
getter
=
module
&&
module
.
__esModule
?
/******/
function
getDefault
()
{
return
module
[
'
default
'
];
}
:
/******/
function
getModuleExports
()
{
return
module
;
};
/******/
__webpack_require__
.
d
(
getter
,
'
a
'
,
getter
);
/******/
return
getter
;
/******/
};
/******/
/******/
// Object.prototype.hasOwnProperty.call
/******/
__webpack_require__
.
o
=
function
(
object
,
property
)
{
return
Object
.
prototype
.
hasOwnProperty
.
call
(
object
,
property
);
};
/******/
/******/
// __webpack_public_path__
/******/
__webpack_require__
.
p
=
""
;
/******/
/******/
/******/
// Load entry module and return exports
/******/
return
__webpack_require__
(
__webpack_require__
.
s
=
"
./src/index.tsx
"
);
/******/
})
/************************************************************************/
/******/
({
/***/
"
./src/components/App.tsx
"
:
/*!********************************!*\
!*** ./src/components/App.tsx ***!
\********************************/
/*! no static exports found */
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
const
React
=
__webpack_require__
(
/*! react */
"
react
"
);
const
SectionList_1
=
__webpack_require__
(
/*! ./SectionList */
"
./src/components/SectionList.tsx
"
);
const
Search_1
=
__webpack_require__
(
/*! ./Search */
"
./src/components/Search.tsx
"
);
class
App
extends
React
.
Component
{
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
currentSchedule
:
[]
};
this
.
addSectionToCurrentScheduleIfUnique
=
this
.
addSectionToCurrentScheduleIfUnique
.
bind
(
this
);
}
addSectionToCurrentScheduleIfUnique
(
section
)
{
if
(
!
this
.
state
.
currentSchedule
.
find
(
sectionInSchedule
=>
section
===
sectionInSchedule
))
{
this
.
setState
({
currentSchedule
:
[...
this
.
state
.
currentSchedule
,
section
],
});
}
}
render
()
{
return
(
React
.
createElement
(
"
div
"
,
null
,
React
.
createElement
(
"
h1
"
,
null
,
"
Schedules
"
),
React
.
createElement
(
Search_1
.
default
,
{
addSearchResultCallback
:
this
.
addSectionToCurrentScheduleIfUnique
}),
React
.
createElement
(
SectionList_1
.
default
,
{
sections
:
this
.
state
.
currentSchedule
})));
}
}
exports
.
default
=
App
;
/***/
}),
/***/
"
./src/components/Search.tsx
"
:
/*!***********************************!*\
!*** ./src/components/Search.tsx ***!
\***********************************/
/*! no static exports found */
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
const
React
=
__webpack_require__
(
/*! react */
"
react
"
);
const
section_1
=
__webpack_require__
(
/*! ../section */
"
./src/section.ts
"
);
const
SearchBar_1
=
__webpack_require__
(
/*! ./SearchBar */
"
./src/components/SearchBar.tsx
"
);
const
SectionList_1
=
__webpack_require__
(
/*! ./SectionList */
"
./src/components/SectionList.tsx
"
);
class
Search
extends
React
.
Component
{
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
sections
:
[]
};
this
.
searchForSections
=
this
.
searchForSections
.
bind
(
this
);
}
searchForSections
(
crn
)
{
section_1
.
fetchSectionWithCRN
(
crn
).
then
(
section
=>
this
.
setState
({
sections
:
[
section
]
}));
}
render
()
{
return
(
React
.
createElement
(
"
div
"
,
null
,
React
.
createElement
(
SearchBar_1
.
default
,
{
onSearch
:
this
.
searchForSections
}),
React
.
createElement
(
SectionList_1
.
default
,
{
sections
:
this
.
state
.
sections
,
selectSectionCallback
:
this
.
props
.
addSearchResultCallback
})));
}
}
exports
.
default
=
Search
;
/***/
}),
/***/
"
./src/components/SearchBar.tsx
"
:
/*!**************************************!*\
!*** ./src/components/SearchBar.tsx ***!
\**************************************/
/*! no static exports found */
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
const
React
=
__webpack_require__
(
/*! react */
"
react
"
);
class
SearchBar
extends
React
.
Component
{
constructor
(
props
)
{
super
(
props
);
this
.
state
=
{
searchTerm
:
''
};
this
.
onSearch
=
this
.
onSearch
.
bind
(
this
);
this
.
updateSearchTerm
=
this
.
updateSearchTerm
.
bind
(
this
);
}
updateSearchTerm
(
event
)
{
this
.
setState
({
searchTerm
:
event
.
target
.
value
,
});
}
onSearch
(
event
)
{
this
.
props
.
onSearch
(
this
.
state
.
searchTerm
);
event
.
preventDefault
();
}
render
()
{
return
(
React
.
createElement
(
"
form
"
,
{
onSubmit
:
this
.
onSearch
},
React
.
createElement
(
"
input
"
,
{
type
:
"
text
"
,
placeholder
:
"
Enter CRN...
"
,
value
:
this
.
state
.
searchTerm
,
onChange
:
this
.
updateSearchTerm
}),
React
.
createElement
(
"
input
"
,
{
type
:
"
submit
"
,
value
:
"
Search
"
})));
}
}
exports
.
default
=
SearchBar
;
/***/
}),
/***/
"
./src/components/SectionList.tsx
"
:
/*!****************************************!*\
!*** ./src/components/SectionList.tsx ***!
\****************************************/
/*! no static exports found */
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
const
React
=
__webpack_require__
(
/*! react */
"
react
"
);
class
SectionList
extends
React
.
Component
{
constructor
(
props
)
{
super
(
props
);
this
.
renderSelectSectionColumn
=
this
.
renderSelectSectionColumn
.
bind
(
this
);
this
.
getSectionWithCRN
=
this
.
getSectionWithCRN
.
bind
(
this
);
}
render
()
{
return
(
React
.
createElement
(
"
table
"
,
null
,
React
.
createElement
(
"
tbody
"
,
null
,
React
.
createElement
(
"
tr
"
,
null
,
React
.
createElement
(
"
th
"
,
null
,
"
Course
"
),
React
.
createElement
(
"
th
"
,
null
,
"
Section Name
"
),
React
.
createElement
(
"
th
"
,
null
,
"
CRN
"
),
React
.
createElement
(
"
th
"
,
null
,
"
Days
"
),
React
.
createElement
(
"
th
"
,
null
,
"
Instructor
"
),
React
.
createElement
(
"
th
"
,
null
,
"
Location
"
),
React
.
createElement
(
"
th
"
,
null
,
"
Time
"
),
React
.
createElement
(
"
th
"
,
null
)),
this
.
renderRowsForSections
(
this
.
props
.
sections
))));
}
renderRowsForSections
(
sections
)
{
return
sections
.
map
(
section
=>
{
return
(
React
.
createElement
(
"
tr
"
,
{
key
:
section
.
id
},
React
.
createElement
(
"
td
"
,
null
,
section
.
name
),
React
.
createElement
(
"
td
"
,
null
,
section
.
title
),
React
.
createElement
(
"
td
"
,
null
,
section
.
crn
),
React
.
createElement
(
"
td
"
,
null
,
section
.
days
),
React
.
createElement
(
"
td
"
,
null
,
section
.
instructor
),
React
.
createElement
(
"
td
"
,
null
,
section
.
location
),
React
.
createElement
(
"
td
"
,
null
,
[
section
.
startTime
,
section
.
endTime
].
join
(
'
-
'
)),
this
.
renderSelectSectionColumn
(
section
.
crn
)));
});
}
renderSelectSectionColumn
(
rowCRN
)
{
if
(
this
.
props
.
selectSectionCallback
)
{
const
sectionWithCRN
=
this
.
getSectionWithCRN
(
rowCRN
);
return
(
React
.
createElement
(
"
td
"
,
null
,
React
.
createElement
(
"
button
"
,
{
onClick
:
()
=>
this
.
props
.
selectSectionCallback
(
sectionWithCRN
)
},
"
Add to schedule
"
)));
}
else
{
return
React
.
createElement
(
"
td
"
,
null
);
}
}
getSectionWithCRN
(
crn
)
{
return
this
.
props
.
sections
.
find
(
section
=>
section
.
crn
===
crn
);
}
}
exports
.
default
=
SectionList
;
/***/
}),
/***/
"
./src/index.tsx
"
:
/*!***********************!*\
!*** ./src/index.tsx ***!
\***********************/
/*! no static exports found */
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"
use strict
"
;
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
const
React
=
__webpack_require__
(
/*! react */
"
react
"
);
const
ReactDOM
=
__webpack_require__
(
/*! react-dom */
"
react-dom
"
);
const
App_1
=
__webpack_require__
(
/*! ./components/App */
"
./src/components/App.tsx
"
);
ReactDOM
.
render
(
React
.
createElement
(
App_1
.
default
,
null
),
document
.
getElementById
(
'
root
'
));
/***/
}),
/***/
"
./src/section.ts
"
:
/*!************************!*\
!*** ./src/section.ts ***!
\************************/
/*! no static exports found */
/***/
(
function
(
module
,
exports
,
__webpack_require__
)
{
"
use strict
"
;
var
__awaiter
=
(
this
&&
this
.
__awaiter
)
||
function
(
thisArg
,
_arguments
,
P
,
generator
)
{
return
new
(
P
||
(
P
=
Promise
))(
function
(
resolve
,
reject
)
{
function
fulfilled
(
value
)
{
try
{
step
(
generator
.
next
(
value
));
}
catch
(
e
)
{
reject
(
e
);
}
}
function
rejected
(
value
)
{
try
{
step
(
generator
[
"
throw
"
](
value
));
}
catch
(
e
)
{
reject
(
e
);
}
}
function
step
(
result
)
{
result
.
done
?
resolve
(
result
.
value
)
:
new
P
(
function
(
resolve
)
{
resolve
(
result
.
value
);
}).
then
(
fulfilled
,
rejected
);
}
step
((
generator
=
generator
.
apply
(
thisArg
,
_arguments
||
[])).
next
());
});
};
Object
.
defineProperty
(
exports
,
"
__esModule
"
,
{
value
:
true
});
function
fetchSectionWithCRN
(
crn
)
{
return
__awaiter
(
this
,
void
0
,
void
0
,
function
*
()
{
const
response
=
yield
fetch
(
`http://localhost:3001/api/search?crn=
${
crn
}
`
);
const
object
=
yield
response
.
json
();
return
{
id
:
object
.
id
,
name
:
object
.
name
,
title
:
object
.
title
,
crn
:
object
.
crn
,
instructor
:
object
.
instructor
,
location
:
object
.
location
,
days
:
object
.
days
,
startTime
:
object
.
start_time
,
endTime
:
object
.
end_time
,
};
});
}
exports
.
fetchSectionWithCRN
=
fetchSectionWithCRN
;
/***/
}),
/***/
"
react
"
:
/*!************************!*\
!*** external "React" ***!
\************************/
/*! no static exports found */
/***/
(
function
(
module
,
exports
)
{
module
.
exports
=
React
;
/***/
}),
/***/
"
react-dom
"
:
/*!***************************!*\
!*** external "ReactDOM" ***!
\***************************/
/*! no static exports found */
/***/
(
function
(
module
,
exports
)
{
module
.
exports
=
ReactDOM
;
/***/
})
/******/
});
//# sourceMappingURL=bundle.js.map
\ No newline at end of file
schedules_web/dist/bundle.js.map
deleted
100644 → 0
View file @
3bfce3f8
{
"version"
:
3
,
"sources"
:
[
"webpack:///webpack/bootstrap"
,
"webpack:///./src/components/App.tsx"
,
"webpack:///./src/components/Search.tsx"
,
"webpack:///./src/components/SearchBar.tsx"
,
"webpack:///./src/components/SectionList.tsx"
,
"webpack:///./src/index.tsx"
,
"webpack:///./src/section.ts"
,
"webpack:///external
\"
React
\"
"
,
"webpack:///external
\"
ReactDOM
\"
"
],
"names"
:
[],
"mappings"
:
"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"
,
"file"
:
"bundle.js"
,
"sourcesContent"
:
[
"
\t
// The module cache
\n
\t
var installedModules = {};
\n\n
\t
// The require function
\n
\t
function __webpack_require__(moduleId) {\n
\n
\t\t
// Check if module is in cache
\n
\t\t
if(installedModules[moduleId]) {\n
\t\t\t
return installedModules[moduleId].exports;
\n
\t\t
}
\n
\t\t
// Create a new module (and put it into the cache)
\n
\t\t
var module = installedModules[moduleId] = {\n
\t\t\t
i: moduleId,
\n
\t\t\t
l: false,
\n
\t\t\t
exports: {}
\n
\t\t
};
\n\n
\t\t
// Execute the module function
\n
\t\t
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
\n\n
\t\t
// Flag the module as loaded
\n
\t\t
module.l = true;
\n\n
\t\t
// Return the exports of the module
\n
\t\t
return module.exports;
\n
\t
}
\n\n\n
\t
// expose the modules object (__webpack_modules__)
\n
\t
__webpack_require__.m = modules;
\n\n
\t
// expose the module cache
\n
\t
__webpack_require__.c = installedModules;
\n\n
\t
// define getter function for harmony exports
\n
\t
__webpack_require__.d = function(exports, name, getter) {\n
\t\t
if(!__webpack_require__.o(exports, name)) {\n
\t\t\t
Object.defineProperty(exports, name, {\n
\t\t\t\t
configurable: false,
\n
\t\t\t\t
enumerable: true,
\n
\t\t\t\t
get: getter
\n
\t\t\t
});
\n
\t\t
}
\n
\t
};
\n\n
\t
// define __esModule on exports
\n
\t
__webpack_require__.r = function(exports) {\n
\t\t
Object.defineProperty(exports, '__esModule', { value: true });
\n
\t
};
\n\n
\t
// getDefaultExport function for compatibility with non-harmony modules
\n
\t
__webpack_require__.n = function(module) {\n
\t\t
var getter = module && module.__esModule ?
\n
\t\t\t
function getDefault() { return module['default']; } :
\n
\t\t\t
function getModuleExports() { return module; };
\n
\t\t
__webpack_require__.d(getter, 'a', getter);
\n
\t\t
return getter;
\n
\t
};
\n\n
\t
// Object.prototype.hasOwnProperty.call
\n
\t
__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
\n\n
\t
// __webpack_public_path__
\n
\t
__webpack_require__.p =
\"\"
;
\n\n\n
\t
// Load entry module and return exports
\n
\t
return __webpack_require__(__webpack_require__.s =
\"
./src/index.tsx
\"
);
\n
"
,
"import * as React from 'react';
\n
import Section from '../section';
\n
import SectionList from './SectionList';
\n
import Search from './Search';
\n\n
interface State {\n currentSchedule: Section[];
\n
}
\n\n
class App extends React.Component<any, State> {\n constructor(props: any) {\n super(props);
\n
this.state = { currentSchedule: [] };
\n\n
this.addSectionToCurrentScheduleIfUnique = this.addSectionToCurrentScheduleIfUnique.bind(this);
\n
}
\n\n
addSectionToCurrentScheduleIfUnique(section: Section) {\n if (!this.state.currentSchedule.find(sectionInSchedule => section === sectionInSchedule)) {\n this.setState({\n currentSchedule: [...this.state.currentSchedule, section],
\n
});
\n
}
\n
}
\n\n
render() {\n return (
\n
<div>
\n
<h1>Schedules</h1>
\n
<Search addSearchResultCallback=
{
this.addSectionToCurrentScheduleIfUnique
}
/>
\n
<SectionList sections=
{
this.state.currentSchedule
}
/>
\n
</div>
\n
);
\n
}
\n
}
\n
export default App;
\n
"
,
"import * as React from 'react';
\n
import Section, { fetchSectionWithCRN } from '../section';
\n
import SearchBar from './SearchBar';
\n
import SectionList from './SectionList';
\n\n
interface Props {\n addSearchResultCallback?: (section: Section) => void;
\n
}
\n\n
interface State {\n sections: Section[];
\n
}
\n\n
export default class Search extends React.Component<Props, State> {\n constructor(props: Props) {\n super(props);
\n\n
this.state = { sections: [] };
\n
this.searchForSections = this.searchForSections.bind(this);
\n
}
\n\n
searchForSections(crn: string) {\n fetchSectionWithCRN(crn).then(section => this.setState({ sections: [section] }));
\n
}
\n\n
render() {\n return (
\n
<div>
\n
<SearchBar onSearch=
{
this.searchForSections
}
/>
\n
<SectionList
\n
sections=
{
this.state.sections
}
\n
selectSectionCallback=
{
this.props.addSearchResultCallback
}
\n
/>
\n
</div>
\n
);
\n
}
\n
}
\n
"
,
"import * as React from 'react';
\n\n
interface Props {\n onSearch: (searchTerm: string) => void;
\n
}
\n\n
interface State {\n searchTerm: string;
\n
}
\n\n
export default class SearchBar extends React.Component<Props, State> {\n constructor(props: Props) {\n super(props);
\n
this.state = { searchTerm: '' };
\n\n
this.onSearch = this.onSearch.bind(this);
\n
this.updateSearchTerm = this.updateSearchTerm.bind(this);
\n
}
\n\n
updateSearchTerm(event: any) {\n this.setState({\n searchTerm: event.target.value,
\n
});
\n
}
\n\n
onSearch(event: any) {\n this.props.onSearch(this.state.searchTerm);
\n
event.preventDefault();
\n
}
\n\n
render() {\n return (
\n
<form onSubmit=
{
this.onSearch
}
>
\n
<input
\n
type=
\"
text
\"\n
placeholder=
\"
Enter CRN...
\"\n
value=
{
this.state.searchTerm
}
\n
onChange=
{
this.updateSearchTerm
}
\n
/>
\n
<input type=
\"
submit
\"
value=
\"
Search
\"
/>
\n
</form>
\n
);
\n
}
\n
}
\n
"
,
"import * as React from 'react';
\n
import Section from '../section';
\n\n
interface Props {\n sections: Section[];
\n
selectSectionCallback?: (section: Section) => void;
\n
}
\n\n
export default class SectionList extends React.Component<Props, any> {\n constructor(props: Props) {\n super(props);
\n\n
this.renderSelectSectionColumn = this.renderSelectSectionColumn.bind(this);
\n
this.getSectionWithCRN = this.getSectionWithCRN.bind(this);
\n
}
\n
render() {\n return (
\n
<table>
\n
<tbody>
\n
<tr>
\n
<th>Course</th>
\n
<th>Section Name</th>
\n
<th>CRN</th>
\n
<th>Days</th>
\n
<th>Instructor</th>
\n
<th>Location</th>
\n
<th>Time</th>
\n
<th />
\n
</tr>
\n
{
this.renderRowsForSections(this.props.sections)
}
\n
</tbody>
\n
</table>
\n
);
\n
}
\n\n
renderRowsForSections(sections: Section[]): JSX.Element[] {\n return sections.map(section => {\n return (
\n
<tr key=
{
section.id
}
>
\n
<td>
{
section.name
}
</td>
\n
<td>
{
section.title
}
</td>
\n
<td>
{
section.crn
}
</td>
\n
<td>
{
section.days
}
</td>
\n
<td>
{
section.instructor
}
</td>
\n
<td>
{
section.location
}
</td>
\n
<td>{[section.startTime, section.endTime].join(' - ')}</td>
\n
{
this.renderSelectSectionColumn(section.crn)
}
\n
</tr>
\n
);
\n
});
\n
}
\n\n
renderSelectSectionColumn(rowCRN: string): JSX.Element {\n if (this.props.selectSectionCallback) {\n const sectionWithCRN = this.getSectionWithCRN(rowCRN);
\n
return (
\n
<td>
\n
<button onClick={() => this.props.selectSectionCallback(sectionWithCRN)}>Add to schedule</button>
\n
</td>
\n
);
\n
} else {\n return <td />;
\n
}
\n
}
\n\n
getSectionWithCRN(crn: string): Section {\n return this.props.sections.find(section => section.crn === crn);
\n
}
\n
}
\n
"
,
"import * as React from 'react';
\n
import * as ReactDOM from 'react-dom';
\n\n
import App from './components/App';
\n\n
ReactDOM.render(<App />, document.getElementById('root'));
\n
"
,
"export default interface Section {\n id: number;
\n
name: string;
\n
title: string;
\n
crn: string;
\n
instructor: string;
\n
location: string;
\n
days: string;
\n
startTime: string;
\n
endTime: string;
\n
}
\n\n
export async function fetchSectionWithCRN(crn: string): Promise<Section> {\n const response = await fetch(`http://localhost:3001/api/search?crn=${crn}`);
\n
const object = await response.json();
\n\n
return {\n id: object.id,
\n
name: object.name,
\n
title: object.title,
\n
crn: object.crn,
\n
instructor: object.instructor,
\n
location: object.location,
\n
days: object.days,
\n
startTime: object.start_time,
\n
endTime: object.end_time,
\n
};
\n
}
\n
"
,
"module.exports = React;"
,
"module.exports = ReactDOM;"
],
"sourceRoot"
:
""
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment