mirror of
https://github.com/Telecominfraproject/oopt-gnpy-web-gui.git
synced 2025-11-01 02:28:06 +00:00
Removed unwanted files - 1
This commit is contained in:
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"CurrentProjectSetting": null
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
BIN
.vs/slnx.sqlite
BIN
.vs/slnx.sqlite
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,195 +0,0 @@
|
|||||||
{
|
|
||||||
"project": {
|
|
||||||
"network_platform_layout": [
|
|
||||||
"ANSI",
|
|
||||||
"ETSI"
|
|
||||||
],
|
|
||||||
"eqpt_config_file_path": "https://uatassess.hiremee.co.in/Data/eqpt_config.json"
|
|
||||||
},
|
|
||||||
"node": {
|
|
||||||
"site_length": 20,
|
|
||||||
"dir": "../Assets/img/",
|
|
||||||
"roadm_type": [
|
|
||||||
"Default"
|
|
||||||
],
|
|
||||||
|
|
||||||
"Roadm": {
|
|
||||||
"is_degree_validation": false,
|
|
||||||
"default": {
|
|
||||||
"label": "Site ",
|
|
||||||
"FV_label": "ROADM ",
|
|
||||||
"node_degree": 100,
|
|
||||||
"node_type": "Roadm",
|
|
||||||
"roadm_type": "",
|
|
||||||
"pre_amp_type": "",
|
|
||||||
"booster_type": "",
|
|
||||||
"component_type": "node"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ILA": {
|
|
||||||
"is_degree_validation": true,
|
|
||||||
"default": {
|
|
||||||
"label": "Site ",
|
|
||||||
"FV_label": "ILA ",
|
|
||||||
"node_degree": 2,
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "ILA",
|
|
||||||
"pre_amp_type": "",
|
|
||||||
"booster_type": "",
|
|
||||||
"component_type": "node"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Amplifier": {
|
|
||||||
"is_degree_validation": true,
|
|
||||||
"default": {
|
|
||||||
"label": "Site ",
|
|
||||||
"FV_label": "Amplifier ",
|
|
||||||
"node_degree": 2,
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "Amplifier",
|
|
||||||
"pre_amp_type": "",
|
|
||||||
"component_type": "node"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RamanAmplifier": {
|
|
||||||
"is_degree_validation": true,
|
|
||||||
"default": {
|
|
||||||
"label": "Site ",
|
|
||||||
"FV_label": "RamanAmp ",
|
|
||||||
"node_degree": 2,
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "RamanAmplifier",
|
|
||||||
"pre_amp_type": "",
|
|
||||||
"component_type": "node"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Fused": {
|
|
||||||
"is_degree_validation": true,
|
|
||||||
"default": {
|
|
||||||
"label": "Site ",
|
|
||||||
"FV_label": "Attenuator ",
|
|
||||||
"node_degree": 2,
|
|
||||||
"node_type": "Fused",
|
|
||||||
"pre_amp_type": "none",
|
|
||||||
"booster_type": "none",
|
|
||||||
"component_type": "node"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Transceiver": {
|
|
||||||
"is_degree_validation": false,
|
|
||||||
"default": {
|
|
||||||
"label": "TCVR ",
|
|
||||||
"FV_label": "Transceiver ",
|
|
||||||
"node_degree": 100,
|
|
||||||
"node_type": "Transceiver",
|
|
||||||
"transceiver_type": "",
|
|
||||||
"transceiver_mode": "",
|
|
||||||
"component_type": "node"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DualFiber": {
|
|
||||||
"component_type": "Fiber",
|
|
||||||
"fiber_category": "Dual Fiber",
|
|
||||||
"fiber_type": [
|
|
||||||
"SSMF",
|
|
||||||
"LOF",
|
|
||||||
"NZDF"
|
|
||||||
],
|
|
||||||
"SSMF": {
|
|
||||||
"CD_coefficient": 16.7
|
|
||||||
},
|
|
||||||
"LOF": {
|
|
||||||
"CD_coefficient": 22.0
|
|
||||||
},
|
|
||||||
"NZDF": {
|
|
||||||
"CD_coefficient": 5.0
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"fiber_type": "SSMF",
|
|
||||||
"CD_coefficient": 16.7,
|
|
||||||
"PMD_coefficient": 0.0400028124,
|
|
||||||
"Span_length": 1.0,
|
|
||||||
"Loss_coefficient": 0.25,
|
|
||||||
"Connector_in": 0.0,
|
|
||||||
"Connector_out": 0.0,
|
|
||||||
"Ageing_loss": 0.0,
|
|
||||||
"Length_based_loss": false,
|
|
||||||
"Span_loss": 0.0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"SingleFiber": {
|
|
||||||
"component_type": "Fiber",
|
|
||||||
"fiber_category": "Single Fiber",
|
|
||||||
"fiber_type": [
|
|
||||||
"SSMF",
|
|
||||||
"LOF",
|
|
||||||
"NZDF"
|
|
||||||
],
|
|
||||||
"SSMF": {
|
|
||||||
"CD_coefficient": 16.7
|
|
||||||
},
|
|
||||||
"LOF": {
|
|
||||||
"CD_coefficient": 22.0
|
|
||||||
},
|
|
||||||
"NZDF": {
|
|
||||||
"CD_coefficient": 5.0
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"fiber_type": "SSMF",
|
|
||||||
"CD_coefficient": 16.7,
|
|
||||||
"PMD_coefficient": 0.0400028124,
|
|
||||||
"Span_length": 1.0,
|
|
||||||
"Loss_coefficient": 0.25,
|
|
||||||
"Connector_in": 0.0,
|
|
||||||
"Connector_out": 0.0,
|
|
||||||
"Ageing_Loss": 0.0,
|
|
||||||
"Length_based_loss": false,
|
|
||||||
"Span_loss": 0.0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"Service": {
|
|
||||||
"component_type": "Service",
|
|
||||||
"service_type": [
|
|
||||||
"OpenROADM MSA ver. 4.0"
|
|
||||||
],
|
|
||||||
"data_rate": [
|
|
||||||
"100G DP-QPSK",
|
|
||||||
"200G DP-QPSK",
|
|
||||||
"300G DP-8QAM",
|
|
||||||
"400G DP-16QAM"
|
|
||||||
],
|
|
||||||
"100G DP-QPSK": [
|
|
||||||
"27.95",
|
|
||||||
"31.57"
|
|
||||||
],
|
|
||||||
"200G DP-QPSK": [
|
|
||||||
"63.1"
|
|
||||||
],
|
|
||||||
"300G DP-8QAM": [
|
|
||||||
"63.1"
|
|
||||||
],
|
|
||||||
"400G DP-16QAM": [
|
|
||||||
"63.1"
|
|
||||||
],
|
|
||||||
"Central_frequency": [
|
|
||||||
"Auto"
|
|
||||||
],
|
|
||||||
"Grid_spacing_min": "Baud-rate",
|
|
||||||
"Grid_spacing_max": "150GHz",
|
|
||||||
"default": {
|
|
||||||
"service_type": "OpenROADM MSA ver. 4.0",
|
|
||||||
"Frequency_min": 0.0400028124,
|
|
||||||
"Frequency_max": 1.0,
|
|
||||||
"Data_rate": "100G DP-QPSK",
|
|
||||||
"Baud_rate": 27.95,
|
|
||||||
"Grid_spacing": "50GHz",
|
|
||||||
"band_width": 100
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"Patch": {
|
|
||||||
"component_type": "Patch"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,771 +0,0 @@
|
|||||||
{
|
|
||||||
"tip-photonic-equipment:amplifier": [
|
|
||||||
{
|
|
||||||
"type": "high_detail_model_example",
|
|
||||||
"gain-min": "15.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "25.0",
|
|
||||||
"max-power-out": "21.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"polynomial-NF": {
|
|
||||||
"a": "0.000168241",
|
|
||||||
"b": "0.0469961",
|
|
||||||
"c": "0.0359549",
|
|
||||||
"d": "5.82851"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Juniper_BoosterHG",
|
|
||||||
"gain-min": "10.0",
|
|
||||||
"frequency-min": "191.4",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "25.0",
|
|
||||||
"max-power-out": "21.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"polynomial-NF": {
|
|
||||||
"a": "0.0008",
|
|
||||||
"b": "0.0272",
|
|
||||||
"c": "-0.2249",
|
|
||||||
"d": "6.4902"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "operator_model_example",
|
|
||||||
"gain-min": "15.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "26.0",
|
|
||||||
"max-power-out": "23.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"min-max-NF": {
|
|
||||||
"nf-min": "6.0",
|
|
||||||
"nf-max": "10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "openroadm_ila_low_noise",
|
|
||||||
"gain-min": "0.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "27.0",
|
|
||||||
"max-power-out": "22.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"OpenROADM-ILA": {
|
|
||||||
"a": "-0.0008104",
|
|
||||||
"b": "-0.06221",
|
|
||||||
"c": "-0.5889",
|
|
||||||
"d": "37.62"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "openroadm_ila_standard",
|
|
||||||
"gain-min": "0.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "27.0",
|
|
||||||
"max-power-out": "22.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"OpenROADM-ILA": {
|
|
||||||
"a": "-0.0005952",
|
|
||||||
"b": "-0.0625",
|
|
||||||
"c": "-1.071",
|
|
||||||
"d": "28.99"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "openroadm_mw_mw_preamp",
|
|
||||||
"gain-min": "0.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "27.0",
|
|
||||||
"max-power-out": "22.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"OpenROADM-preamp": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "openroadm_mw_mw_booster",
|
|
||||||
"gain-min": "0.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "32.0",
|
|
||||||
"max-power-out": "22.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"OpenROADM-booster": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "std_high_gain",
|
|
||||||
"gain-min": "25.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "35.0",
|
|
||||||
"max-power-out": "21.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"min-max-NF": {
|
|
||||||
"nf-min": "5.5",
|
|
||||||
"nf-max": "7.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "std_medium_gain",
|
|
||||||
"gain-min": "15.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "26.0",
|
|
||||||
"max-power-out": "23.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"min-max-NF": {
|
|
||||||
"nf-min": "6.0",
|
|
||||||
"nf-max": "10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "std_low_gain",
|
|
||||||
"gain-min": "8.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "16.0",
|
|
||||||
"max-power-out": "23.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"min-max-NF": {
|
|
||||||
"nf-min": "6.5",
|
|
||||||
"nf-max": "11.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "high_power",
|
|
||||||
"gain-min": "8.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "16.0",
|
|
||||||
"max-power-out": "25.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"min-max-NF": {
|
|
||||||
"nf-min": "9.0",
|
|
||||||
"nf-max": "15.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "std_fixed_gain",
|
|
||||||
"gain-min": "20.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "21.0",
|
|
||||||
"max-power-out": "21.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"polynomial-NF": {
|
|
||||||
"a": "0.0",
|
|
||||||
"b": "0.0",
|
|
||||||
"c": "0.0",
|
|
||||||
"d": "5.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "4pumps_raman",
|
|
||||||
"gain-min": "12.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "12.0",
|
|
||||||
"max-power-out": "21.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"raman-approximation": {
|
|
||||||
"nf": "-1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "hybrid_4pumps_lowgain",
|
|
||||||
"gain-min": "25.0",
|
|
||||||
"composite": {
|
|
||||||
"preamp": "4pumps_raman",
|
|
||||||
"booster": "std_low_gain"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "hybrid_4pumps_mediumgain",
|
|
||||||
"gain-min": "25.0",
|
|
||||||
"composite": {
|
|
||||||
"preamp": "4pumps_raman",
|
|
||||||
"booster": "std_medium_gain"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "medium+low_gain",
|
|
||||||
"gain-min": "25.0",
|
|
||||||
"composite": {
|
|
||||||
"preamp": "std_medium_gain",
|
|
||||||
"booster": "std_low_gain"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "medium+high_power",
|
|
||||||
"gain-min": "25.0",
|
|
||||||
"composite": {
|
|
||||||
"preamp": "std_medium_gain",
|
|
||||||
"booster": "high_power"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tip-photonic-equipment:fiber": [
|
|
||||||
{
|
|
||||||
"type": "NZDF",
|
|
||||||
"chromatic-dispersion": "5.0",
|
|
||||||
"gamma": "1.46",
|
|
||||||
"pmd-coefficient": "0.0400028124"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "LOF",
|
|
||||||
"chromatic-dispersion": "22.0",
|
|
||||||
"gamma": "0.843",
|
|
||||||
"pmd-coefficient": "0.0400028124"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "SSMF",
|
|
||||||
"chromatic-dispersion": "16.7",
|
|
||||||
"gamma": "1.27",
|
|
||||||
"pmd-coefficient": "0.0400028124",
|
|
||||||
"raman-efficiency": [
|
|
||||||
{
|
|
||||||
"delta-frequency": "0.0",
|
|
||||||
"cr": "0.0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "0.5",
|
|
||||||
"cr": "0.0000094"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "1.0",
|
|
||||||
"cr": "0.0000292"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "1.5",
|
|
||||||
"cr": "0.0000488"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "2.0",
|
|
||||||
"cr": "0.0000682"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "2.5",
|
|
||||||
"cr": "0.0000831"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "3.0",
|
|
||||||
"cr": "0.000094"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "3.5",
|
|
||||||
"cr": "0.0001014"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "4.0",
|
|
||||||
"cr": "0.0001069"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "4.5",
|
|
||||||
"cr": "0.0001119"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "5.0",
|
|
||||||
"cr": "0.0001217"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "5.5",
|
|
||||||
"cr": "0.0001268"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "6.0",
|
|
||||||
"cr": "0.0001365"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "6.5",
|
|
||||||
"cr": "0.000149"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "7.0",
|
|
||||||
"cr": "0.000165"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "7.5",
|
|
||||||
"cr": "0.000181"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "8.0",
|
|
||||||
"cr": "0.0001977"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "8.5",
|
|
||||||
"cr": "0.0002192"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "9.0",
|
|
||||||
"cr": "0.0002469"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "9.5",
|
|
||||||
"cr": "0.0002749"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "10.0",
|
|
||||||
"cr": "0.0002999"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "10.5",
|
|
||||||
"cr": "0.0003206"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "11.0",
|
|
||||||
"cr": "0.0003405"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "11.5",
|
|
||||||
"cr": "0.0003592"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "12.0",
|
|
||||||
"cr": "0.000374"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "12.5",
|
|
||||||
"cr": "0.0003826"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "12.75",
|
|
||||||
"cr": "0.0003841"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "13.0",
|
|
||||||
"cr": "0.0003826"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "13.25",
|
|
||||||
"cr": "0.0003802"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "13.5",
|
|
||||||
"cr": "0.0003756"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "14.0",
|
|
||||||
"cr": "0.0003549"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "14.5",
|
|
||||||
"cr": "0.0003795"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "14.75",
|
|
||||||
"cr": "0.000344"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "15.0",
|
|
||||||
"cr": "0.0002933"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "15.5",
|
|
||||||
"cr": "0.0002024"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "16.0",
|
|
||||||
"cr": "0.0001158"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "16.5",
|
|
||||||
"cr": "0.0000846"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "17.0",
|
|
||||||
"cr": "0.0000714"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "17.5",
|
|
||||||
"cr": "0.0000686"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "18.0",
|
|
||||||
"cr": "0.000085"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "18.25",
|
|
||||||
"cr": "0.0000893"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "18.5",
|
|
||||||
"cr": "0.0000901"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "18.75",
|
|
||||||
"cr": "0.0000815"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "19.0",
|
|
||||||
"cr": "0.0000667"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "19.5",
|
|
||||||
"cr": "0.0000437"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "20.0",
|
|
||||||
"cr": "0.0000328"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "20.5",
|
|
||||||
"cr": "0.0000296"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "21.0",
|
|
||||||
"cr": "0.0000265"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "21.5",
|
|
||||||
"cr": "0.0000257"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "22.0",
|
|
||||||
"cr": "0.0000281"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "22.5",
|
|
||||||
"cr": "0.0000308"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "23.0",
|
|
||||||
"cr": "0.0000367"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "23.5",
|
|
||||||
"cr": "0.0000585"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "24.0",
|
|
||||||
"cr": "0.0000663"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "24.5",
|
|
||||||
"cr": "0.0000636"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "25.0",
|
|
||||||
"cr": "0.000055"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "25.5",
|
|
||||||
"cr": "0.0000406"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "26.0",
|
|
||||||
"cr": "0.0000277"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "26.5",
|
|
||||||
"cr": "0.0000242"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "27.0",
|
|
||||||
"cr": "0.0000187"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "27.5",
|
|
||||||
"cr": "0.000016"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "28.0",
|
|
||||||
"cr": "0.000014"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "28.5",
|
|
||||||
"cr": "0.0000113"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "29.0",
|
|
||||||
"cr": "0.0000105"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "29.5",
|
|
||||||
"cr": "0.0000098"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "30.0",
|
|
||||||
"cr": "0.0000098"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "30.5",
|
|
||||||
"cr": "0.0000113"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "31.0",
|
|
||||||
"cr": "0.0000164"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "31.5",
|
|
||||||
"cr": "0.0000195"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "32.0",
|
|
||||||
"cr": "0.0000238"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "32.5",
|
|
||||||
"cr": "0.0000226"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "33.0",
|
|
||||||
"cr": "0.0000203"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "33.5",
|
|
||||||
"cr": "0.0000148"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "34.0",
|
|
||||||
"cr": "0.0000109"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "34.5",
|
|
||||||
"cr": "0.0000098"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "35.0",
|
|
||||||
"cr": "0.0000105"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "35.5",
|
|
||||||
"cr": "0.0000117"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "36.0",
|
|
||||||
"cr": "0.0000125"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "36.5",
|
|
||||||
"cr": "0.0000121"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "37.0",
|
|
||||||
"cr": "0.0000109"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "37.5",
|
|
||||||
"cr": "0.0000098"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "38.0",
|
|
||||||
"cr": "0.0000082"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "38.5",
|
|
||||||
"cr": "0.0000066"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "39.0",
|
|
||||||
"cr": "0.0000047"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "39.5",
|
|
||||||
"cr": "0.0000027"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "40.0",
|
|
||||||
"cr": "0.0000019"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "40.5",
|
|
||||||
"cr": "0.0000012"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "41.0",
|
|
||||||
"cr": "4.00000E-7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "41.5",
|
|
||||||
"cr": "2.00000E-7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"delta-frequency": "42.0",
|
|
||||||
"cr": "1.00000E-7"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tip-photonic-equipment:transceiver": [
|
|
||||||
{
|
|
||||||
"type": "vendorA_trx-type1",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"mode": [
|
|
||||||
{
|
|
||||||
"name": "mode 1",
|
|
||||||
"bit-rate": 100,
|
|
||||||
"baud-rate": "32.0",
|
|
||||||
"required-osnr": "11.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "37.5",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mode 2",
|
|
||||||
"bit-rate": 200,
|
|
||||||
"baud-rate": "66.0",
|
|
||||||
"required-osnr": "15.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "75.0",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Voyager",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"mode": [
|
|
||||||
{
|
|
||||||
"name": "mode 1",
|
|
||||||
"bit-rate": 100,
|
|
||||||
"baud-rate": "32.0",
|
|
||||||
"required-osnr": "12.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "37.5",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mode 3",
|
|
||||||
"bit-rate": 300,
|
|
||||||
"baud-rate": "44.0",
|
|
||||||
"required-osnr": "18.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "62.5",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mode 2",
|
|
||||||
"bit-rate": 400,
|
|
||||||
"baud-rate": "66.0",
|
|
||||||
"required-osnr": "21.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "75.0",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mode 4",
|
|
||||||
"bit-rate": 200,
|
|
||||||
"baud-rate": "66.0",
|
|
||||||
"required-osnr": "16.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "75.0",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tip-photonic-equipment:roadm": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"add-drop-osnr": "38.0",
|
|
||||||
"polarization-mode-dispersion": "0.0",
|
|
||||||
"target-channel-out-power": "-20.0",
|
|
||||||
"compatible-preamp": [],
|
|
||||||
"compatible-booster": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tip-photonic-simulation:simulation": {
|
|
||||||
"grid": {
|
|
||||||
"frequency-min": "191.3",
|
|
||||||
"frequency-max": "195.1",
|
|
||||||
"spacing": "50.0",
|
|
||||||
"power": "0.0",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tx-osnr": "40.0",
|
|
||||||
"baud-rate": "32.0"
|
|
||||||
},
|
|
||||||
"autodesign": {
|
|
||||||
"allowed-inline-edfa": [
|
|
||||||
"std_high_gain",
|
|
||||||
"std_medium_gain",
|
|
||||||
"std_low_gain",
|
|
||||||
"hybrid_4pumps_lowgain",
|
|
||||||
"hybrid_4pumps_mediumgain",
|
|
||||||
"medium+low_gain"
|
|
||||||
],
|
|
||||||
"power-adjustment-for-span-loss": {
|
|
||||||
"maximal-reduction": "-2.0",
|
|
||||||
"maximal-boost": "3.0",
|
|
||||||
"excursion-step-size": "0.5"
|
|
||||||
},
|
|
||||||
"power-mode": {
|
|
||||||
"power-sweep": {
|
|
||||||
"start": "0.0",
|
|
||||||
"stop": "0.0",
|
|
||||||
"step-size": "1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"system-margin": "2.0"
|
|
||||||
},
|
|
||||||
"ietf-network:networks": {
|
|
||||||
"network": [
|
|
||||||
{
|
|
||||||
"network-id": "GNPy",
|
|
||||||
"network-types": {
|
|
||||||
"tip-photonic-topology:photonic-topology": {}
|
|
||||||
},
|
|
||||||
"node": [
|
|
||||||
{
|
|
||||||
"node-id": "Site_A",
|
|
||||||
"tip-photonic-topology:transceiver": {
|
|
||||||
"model": "vendorA_trx-type1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "Edfa1",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "std_low_gain",
|
|
||||||
"gain-target": "17.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "Site_B",
|
|
||||||
"tip-photonic-topology:transceiver": {
|
|
||||||
"model": "vendorA_trx-type1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ietf-network-topology:link": [
|
|
||||||
{
|
|
||||||
"link-id": "Span1",
|
|
||||||
"source": {
|
|
||||||
"source-node": "Site_A"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "Edfa1"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "80.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "patch{Edfa1, Site_B}",
|
|
||||||
"source": {
|
|
||||||
"source-node": "Edfa1"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "Site_B"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,462 +0,0 @@
|
|||||||
{
|
|
||||||
"common": {
|
|
||||||
"background_color": "white",
|
|
||||||
"font": "14px Helvetica black",
|
|
||||||
"border": "1px solid black",
|
|
||||||
"font_variant": "normal"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"physics": false,
|
|
||||||
|
|
||||||
"interaction": {
|
|
||||||
"navigationButtons": true,
|
|
||||||
"keyboard": false,
|
|
||||||
"dragView": true,
|
|
||||||
"multiselect": true,
|
|
||||||
"hover": true
|
|
||||||
},
|
|
||||||
"edges": {
|
|
||||||
"color": {
|
|
||||||
"color": "blue",
|
|
||||||
"highlight": "blue",
|
|
||||||
"hover": "blue",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "blue",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow",
|
|
||||||
"scaleFactor": ".5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "continuous"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
"Roadm": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 16,
|
|
||||||
"err_size": 22,
|
|
||||||
"image": "newroadm.svg",
|
|
||||||
"err_image": "err_roadm.png",
|
|
||||||
"w_image": "w_roadm.png",
|
|
||||||
"h_image": "h_roadm.png",
|
|
||||||
"node_type": "Roadm",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
"ILA": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 16,
|
|
||||||
"err_size": 22,
|
|
||||||
"image": "ILA.svg",
|
|
||||||
"err_image": "ILA.svg",
|
|
||||||
"w_image": "ILA.svg",
|
|
||||||
"h_image": "ILA.svg",
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "ILA",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Amplifier": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 16,
|
|
||||||
"err_size": 22,
|
|
||||||
"image": "newamp.svg",
|
|
||||||
"err_image": "err_amplifier.png",
|
|
||||||
"w_image": "w_amplifier.png",
|
|
||||||
"h_image": "h_amplifier.png",
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "Amplifier",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RamanAmplifier": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 16,
|
|
||||||
"err_size": 22,
|
|
||||||
"image": "ramanamp.svg",
|
|
||||||
"err_image": "err_raman.png",
|
|
||||||
"w_image": "w_raman.png",
|
|
||||||
"h_image": "h_raman.png",
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "RamanAmplifier",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Fused": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 16,
|
|
||||||
"err_size": 22,
|
|
||||||
"image": "newattenuator.svg",
|
|
||||||
"err_image": "err_attenuator.png",
|
|
||||||
"w_image": "w_attenuator.png",
|
|
||||||
"h_image": "h_attenuator.png",
|
|
||||||
"node_type": "Fused",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
"Transceiver": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 16,
|
|
||||||
"err_size": 22,
|
|
||||||
"image": "newtransceiver.svg",
|
|
||||||
"err_image": "err_transceiver.png",
|
|
||||||
"w_image": "w_transceiver.png",
|
|
||||||
"h_image": "h_transceiver.png",
|
|
||||||
"node_type": "Transceiver",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
"Fiber": {
|
|
||||||
"options": {
|
|
||||||
"smooth": {
|
|
||||||
"enabled": false,
|
|
||||||
"roundness": 0.5,
|
|
||||||
"type": "continuous"
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DualFiber": {
|
|
||||||
"dashes": false,
|
|
||||||
"component_type": "Fiber",
|
|
||||||
"fiber_category": "Dual Fiber",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "blue",
|
|
||||||
"highlight": "blue",
|
|
||||||
"hover": "blue",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "blue",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": true,
|
|
||||||
"roundness": 0.1,
|
|
||||||
"type": "curvedCW"
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"SingleFiber": {
|
|
||||||
"dashes": true,
|
|
||||||
"component_type": "Fiber",
|
|
||||||
"fiber_category": "Single Fiber",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"w_color": {
|
|
||||||
"color": "gray",
|
|
||||||
"highlight": "gray",
|
|
||||||
"hover": "gray",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"err_color": {
|
|
||||||
"color": "orange",
|
|
||||||
"highlight": "orange",
|
|
||||||
"hover": "orange",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"color": {
|
|
||||||
"color": "blue",
|
|
||||||
"highlight": "blue",
|
|
||||||
"hover": "blue",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "blue",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow",
|
|
||||||
"scaleFactor": ".5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": true,
|
|
||||||
"roundness": 0.1,
|
|
||||||
"type": "curvedCW"
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"Service": {
|
|
||||||
"dashes": true,
|
|
||||||
"component_type": "Service",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "red",
|
|
||||||
"highlight": "red",
|
|
||||||
"hover": "red",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "red",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow",
|
|
||||||
"scaleFactor": ".5"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow",
|
|
||||||
"scaleFactor": ".5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": true,
|
|
||||||
"roundness": "0.1",
|
|
||||||
"type": "curvedCW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"SinglePatch": {
|
|
||||||
"dashes": true,
|
|
||||||
"component_type": "Patch",
|
|
||||||
"patch_category": "Single Patch",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "black",
|
|
||||||
"highlight": "black",
|
|
||||||
"hover": "black",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "black",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow",
|
|
||||||
"scaleFactor": ".5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": false,
|
|
||||||
"roundness": 0.1,
|
|
||||||
"type": "curvedCW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"DualPatch": {
|
|
||||||
"dashes": false,
|
|
||||||
"component_type": "Patch",
|
|
||||||
"patch_category": "Dual Patch",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "black",
|
|
||||||
"highlight": "black",
|
|
||||||
"hover": "black",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "black",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": false,
|
|
||||||
"roundness": 0.1,
|
|
||||||
"type": "curvedCW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,390 +0,0 @@
|
|||||||
{
|
|
||||||
"common": {
|
|
||||||
"background_color": "white",
|
|
||||||
"font": "14px Helvetica black",
|
|
||||||
"border": "1px solid black",
|
|
||||||
"font_variant": "small-caps"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"physis": false,
|
|
||||||
|
|
||||||
"interaction": {
|
|
||||||
"navigationButtons": true,
|
|
||||||
"keyboard": true,
|
|
||||||
"dragView": true,
|
|
||||||
"multiselect": true,
|
|
||||||
"hover": true
|
|
||||||
},
|
|
||||||
"edges": {
|
|
||||||
"smooth": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "continuous"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
"Roadm": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 14,
|
|
||||||
"image": "newroadm.svg",
|
|
||||||
"node_type": "Roadm",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
"ILA": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 14,
|
|
||||||
"image": "ILA.svg",
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "ILA",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Amplifier": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 14,
|
|
||||||
"image": "newamp.svg",
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "Amplifier",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"RamanAmplifier": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 14,
|
|
||||||
"image": "ramanamp.svg",
|
|
||||||
"node_type": "Amplifier",
|
|
||||||
"amp_category": "RamanAmplifier",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Fused": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 14,
|
|
||||||
"image": "newattenuator.svg",
|
|
||||||
"node_type": "Fused",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
"Transceiver": {
|
|
||||||
"shape": "image",
|
|
||||||
"size": 14,
|
|
||||||
"image": "newtransceiver.svg",
|
|
||||||
"node_type": "Transceiver",
|
|
||||||
"component_type": "node",
|
|
||||||
"icon": {},
|
|
||||||
"font": "12px verdana black",
|
|
||||||
"color": {
|
|
||||||
"border": "#2B7CE9",
|
|
||||||
"background": "#97C2FC",
|
|
||||||
"highlight": {
|
|
||||||
"border": "green",
|
|
||||||
"background": "green"
|
|
||||||
},
|
|
||||||
"hover": {
|
|
||||||
"border": "yellow",
|
|
||||||
"background": "yellow"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
"Fiber": {
|
|
||||||
"options": {
|
|
||||||
"smooth": {
|
|
||||||
"enabled": false,
|
|
||||||
"roundness": 0.5,
|
|
||||||
"type": "continuous"
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"DualFiber": {
|
|
||||||
"dashes": false,
|
|
||||||
"component_type": "Fiber",
|
|
||||||
"fiber_category": "Dual Fiber",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "blue",
|
|
||||||
"highlight": "blue",
|
|
||||||
"hover": "blue",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "blue",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": true,
|
|
||||||
"roundness": 0.1,
|
|
||||||
"type": "curvedCW"
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"SingleFiber": {
|
|
||||||
"dashes": true,
|
|
||||||
"component_type": "Fiber",
|
|
||||||
"fiber_category": "Single Fiber",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "blue",
|
|
||||||
"highlight": "blue",
|
|
||||||
"hover": "blue",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "blue",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": true,
|
|
||||||
"roundness": 0.1,
|
|
||||||
"type": "curvedCW"
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"Service": {
|
|
||||||
"dashes": true,
|
|
||||||
"component_type": "Service",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "red",
|
|
||||||
"highlight": "red",
|
|
||||||
"hover": "red",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "red",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": true,
|
|
||||||
"roundness": "0.1",
|
|
||||||
"type": "curvedCW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"SinglePatch": {
|
|
||||||
"dashes": true,
|
|
||||||
"component_type": "Patch",
|
|
||||||
"patch_category": "Single Patch",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "black",
|
|
||||||
"highlight": "black",
|
|
||||||
"hover": "black",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "black",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": true,
|
|
||||||
"type": "arrow"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": false,
|
|
||||||
"roundness": 0.1,
|
|
||||||
"type": "curvedCW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"DualPatch": {
|
|
||||||
"dashes": false,
|
|
||||||
"component_type": "Patch",
|
|
||||||
"patch_category": "Dual Patch",
|
|
||||||
"width": 2,
|
|
||||||
"options": {
|
|
||||||
"color": {
|
|
||||||
"color": "black",
|
|
||||||
"highlight": "black",
|
|
||||||
"hover": "black",
|
|
||||||
"inherit": false,
|
|
||||||
"opacity": 1
|
|
||||||
},
|
|
||||||
"background": {
|
|
||||||
"color": "black",
|
|
||||||
"dashes": false,
|
|
||||||
"enabled": false,
|
|
||||||
"size": 10
|
|
||||||
},
|
|
||||||
"arrows": {
|
|
||||||
"from": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"enabled": false,
|
|
||||||
"type": "arrow"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"font": {
|
|
||||||
"color": "gray",
|
|
||||||
"size": 11,
|
|
||||||
"face": "verdana",
|
|
||||||
"align": "top"
|
|
||||||
},
|
|
||||||
"smooth": {
|
|
||||||
"enabled": false,
|
|
||||||
"roundness": 0.1,
|
|
||||||
"type": "curvedCW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,527 +0,0 @@
|
|||||||
{
|
|
||||||
|
|
||||||
"Edfa": [
|
|
||||||
{
|
|
||||||
"type_variety": "high_detail_model_example",
|
|
||||||
"type_def": "advanced_model",
|
|
||||||
"gain_flatmax": 25,
|
|
||||||
"gain_min": 15,
|
|
||||||
"p_max": 21,
|
|
||||||
"advanced_config_from_json": "std_medium_gain_advanced_config.json",
|
|
||||||
"out_voa_auto": false,
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "Juniper_BoosterHG",
|
|
||||||
"type_def": "advanced_model",
|
|
||||||
"gain_flatmax": 25,
|
|
||||||
"gain_min": 10,
|
|
||||||
"p_max": 21,
|
|
||||||
"advanced_config_from_json": "Juniper-BoosterHG.json",
|
|
||||||
"out_voa_auto": false,
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "operator_model_example",
|
|
||||||
"type_def": "variable_gain",
|
|
||||||
"gain_flatmax": 26,
|
|
||||||
"gain_min": 15,
|
|
||||||
"p_max": 23,
|
|
||||||
"nf_min": 6,
|
|
||||||
"nf_max": 10,
|
|
||||||
"out_voa_auto": false,
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "openroadm_ila_low_noise",
|
|
||||||
"type_def": "openroadm",
|
|
||||||
"gain_flatmax": 27,
|
|
||||||
"gain_min": 0,
|
|
||||||
"p_max": 22,
|
|
||||||
"nf_coef": [ -8.104e-4, -6.221e-2, -5.889e-1, 37.62 ],
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "openroadm_ila_standard",
|
|
||||||
"type_def": "openroadm",
|
|
||||||
"gain_flatmax": 27,
|
|
||||||
"gain_min": 0,
|
|
||||||
"p_max": 22,
|
|
||||||
"nf_coef": [ -5.952e-4, -6.250e-2, -1.071, 28.99 ],
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "openroadm_mw_mw_preamp",
|
|
||||||
"type_def": "openroadm_preamp",
|
|
||||||
"gain_flatmax": 27,
|
|
||||||
"gain_min": 0,
|
|
||||||
"p_max": 22,
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "openroadm_mw_mw_preamp_typical_ver5",
|
|
||||||
"type_def": "openroadm",
|
|
||||||
"gain_flatmax": 27,
|
|
||||||
"gain_min": 0,
|
|
||||||
"p_max": 22,
|
|
||||||
"nf_coef": [ -5.952e-4, -6.250e-2, -1.071, 28.99 ],
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "openroadm_mw_mw_preamp_worstcase_ver5",
|
|
||||||
"type_def": "openroadm",
|
|
||||||
"gain_flatmax": 27,
|
|
||||||
"gain_min": 0,
|
|
||||||
"p_max": 22,
|
|
||||||
"nf_coef": [ -5.952e-4, -6.250e-2, -1.071, 27.99 ],
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "openroadm_mw_mw_booster",
|
|
||||||
"type_def": "openroadm_booster",
|
|
||||||
"gain_flatmax": 32,
|
|
||||||
"gain_min": 0,
|
|
||||||
"p_max": 22,
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "std_high_gain",
|
|
||||||
"type_def": "variable_gain",
|
|
||||||
"gain_flatmax": 35,
|
|
||||||
"gain_min": 25,
|
|
||||||
"p_max": 21,
|
|
||||||
"nf_min": 5.5,
|
|
||||||
"nf_max": 7,
|
|
||||||
"out_voa_auto": false,
|
|
||||||
"allowed_for_design": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "std_medium_gain",
|
|
||||||
"type_def": "variable_gain",
|
|
||||||
"gain_flatmax": 26,
|
|
||||||
"gain_min": 15,
|
|
||||||
"p_max": 23,
|
|
||||||
"nf_min": 6,
|
|
||||||
"nf_max": 10,
|
|
||||||
"out_voa_auto": false,
|
|
||||||
"allowed_for_design": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "std_low_gain",
|
|
||||||
"type_def": "variable_gain",
|
|
||||||
"gain_flatmax": 16,
|
|
||||||
"gain_min": 8,
|
|
||||||
"p_max": 23,
|
|
||||||
"nf_min": 6.5,
|
|
||||||
"nf_max": 11,
|
|
||||||
"out_voa_auto": false,
|
|
||||||
"allowed_for_design": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "high_power",
|
|
||||||
"type_def": "variable_gain",
|
|
||||||
"gain_flatmax": 16,
|
|
||||||
"gain_min": 8,
|
|
||||||
"p_max": 25,
|
|
||||||
"nf_min": 9,
|
|
||||||
"nf_max": 15,
|
|
||||||
"out_voa_auto": false,
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "std_fixed_gain",
|
|
||||||
"type_def": "fixed_gain",
|
|
||||||
"gain_flatmax": 21,
|
|
||||||
"gain_min": 20,
|
|
||||||
"p_max": 21,
|
|
||||||
"nf0": 5.5,
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "4pumps_raman",
|
|
||||||
"type_def": "fixed_gain",
|
|
||||||
"gain_flatmax": 12,
|
|
||||||
"gain_min": 12,
|
|
||||||
"p_max": 21,
|
|
||||||
"nf0": -1,
|
|
||||||
"allowed_for_design": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "hybrid_4pumps_lowgain",
|
|
||||||
"type_def": "dual_stage",
|
|
||||||
"raman": true,
|
|
||||||
"gain_min": 25,
|
|
||||||
"preamp_variety": "4pumps_raman",
|
|
||||||
"booster_variety": "std_low_gain",
|
|
||||||
"allowed_for_design": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "hybrid_4pumps_mediumgain",
|
|
||||||
"type_def": "dual_stage",
|
|
||||||
"raman": true,
|
|
||||||
"gain_min": 25,
|
|
||||||
"preamp_variety": "4pumps_raman",
|
|
||||||
"booster_variety": "std_medium_gain",
|
|
||||||
"allowed_for_design": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "medium+low_gain",
|
|
||||||
"type_def": "dual_stage",
|
|
||||||
"gain_min": 25,
|
|
||||||
"preamp_variety": "std_medium_gain",
|
|
||||||
"booster_variety": "std_low_gain",
|
|
||||||
"allowed_for_design": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "medium+high_power",
|
|
||||||
"type_def": "dual_stage",
|
|
||||||
"gain_min": 25,
|
|
||||||
"preamp_variety": "std_medium_gain",
|
|
||||||
"booster_variety": "high_power",
|
|
||||||
"allowed_for_design": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Fiber": [
|
|
||||||
{
|
|
||||||
"type_variety": "SSMF",
|
|
||||||
"dispersion": 1.67e-05,
|
|
||||||
"gamma": 0.00127,
|
|
||||||
"pmd_coef": 1.265e-15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "NZDF",
|
|
||||||
"dispersion": 0.5e-05,
|
|
||||||
"gamma": 0.00146,
|
|
||||||
"pmd_coef": 1.265e-15
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "LOF",
|
|
||||||
"dispersion": 2.2e-05,
|
|
||||||
"gamma": 0.000843,
|
|
||||||
"pmd_coef": 1.265e-15
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"RamanFiber": [
|
|
||||||
{
|
|
||||||
"type_variety": "SSMF",
|
|
||||||
"dispersion": 1.67e-05,
|
|
||||||
"gamma": 0.00127,
|
|
||||||
"pmd_coef": 1.265e-15,
|
|
||||||
"raman_efficiency": {
|
|
||||||
"cr": [
|
|
||||||
0,
|
|
||||||
9.4E-06,
|
|
||||||
2.92E-05,
|
|
||||||
4.88E-05,
|
|
||||||
6.82E-05,
|
|
||||||
8.31E-05,
|
|
||||||
9.4E-05,
|
|
||||||
0.0001014,
|
|
||||||
0.0001069,
|
|
||||||
0.0001119,
|
|
||||||
0.0001217,
|
|
||||||
0.0001268,
|
|
||||||
0.0001365,
|
|
||||||
0.000149,
|
|
||||||
0.000165,
|
|
||||||
0.000181,
|
|
||||||
0.0001977,
|
|
||||||
0.0002192,
|
|
||||||
0.0002469,
|
|
||||||
0.0002749,
|
|
||||||
0.0002999,
|
|
||||||
0.0003206,
|
|
||||||
0.0003405,
|
|
||||||
0.0003592,
|
|
||||||
0.000374,
|
|
||||||
0.0003826,
|
|
||||||
0.0003841,
|
|
||||||
0.0003826,
|
|
||||||
0.0003802,
|
|
||||||
0.0003756,
|
|
||||||
0.0003549,
|
|
||||||
0.0003795,
|
|
||||||
0.000344,
|
|
||||||
0.0002933,
|
|
||||||
0.0002024,
|
|
||||||
0.0001158,
|
|
||||||
8.46E-05,
|
|
||||||
7.14E-05,
|
|
||||||
6.86E-05,
|
|
||||||
8.5E-05,
|
|
||||||
8.93E-05,
|
|
||||||
9.01E-05,
|
|
||||||
8.15E-05,
|
|
||||||
6.67E-05,
|
|
||||||
4.37E-05,
|
|
||||||
3.28E-05,
|
|
||||||
2.96E-05,
|
|
||||||
2.65E-05,
|
|
||||||
2.57E-05,
|
|
||||||
2.81E-05,
|
|
||||||
3.08E-05,
|
|
||||||
3.67E-05,
|
|
||||||
5.85E-05,
|
|
||||||
6.63E-05,
|
|
||||||
6.36E-05,
|
|
||||||
5.5E-05,
|
|
||||||
4.06E-05,
|
|
||||||
2.77E-05,
|
|
||||||
2.42E-05,
|
|
||||||
1.87E-05,
|
|
||||||
1.6E-05,
|
|
||||||
1.4E-05,
|
|
||||||
1.13E-05,
|
|
||||||
1.05E-05,
|
|
||||||
9.8E-06,
|
|
||||||
9.8E-06,
|
|
||||||
1.13E-05,
|
|
||||||
1.64E-05,
|
|
||||||
1.95E-05,
|
|
||||||
2.38E-05,
|
|
||||||
2.26E-05,
|
|
||||||
2.03E-05,
|
|
||||||
1.48E-05,
|
|
||||||
1.09E-05,
|
|
||||||
9.8E-06,
|
|
||||||
1.05E-05,
|
|
||||||
1.17E-05,
|
|
||||||
1.25E-05,
|
|
||||||
1.21E-05,
|
|
||||||
1.09E-05,
|
|
||||||
9.8E-06,
|
|
||||||
8.2E-06,
|
|
||||||
6.6E-06,
|
|
||||||
4.7E-06,
|
|
||||||
2.7E-06,
|
|
||||||
1.9E-06,
|
|
||||||
1.2E-06,
|
|
||||||
4E-07,
|
|
||||||
2E-07,
|
|
||||||
1E-07
|
|
||||||
],
|
|
||||||
"frequency_offset": [
|
|
||||||
0,
|
|
||||||
0.5e12,
|
|
||||||
1e12,
|
|
||||||
1.5e12,
|
|
||||||
2e12,
|
|
||||||
2.5e12,
|
|
||||||
3e12,
|
|
||||||
3.5e12,
|
|
||||||
4e12,
|
|
||||||
4.5e12,
|
|
||||||
5e12,
|
|
||||||
5.5e12,
|
|
||||||
6e12,
|
|
||||||
6.5e12,
|
|
||||||
7e12,
|
|
||||||
7.5e12,
|
|
||||||
8e12,
|
|
||||||
8.5e12,
|
|
||||||
9e12,
|
|
||||||
9.5e12,
|
|
||||||
10e12,
|
|
||||||
10.5e12,
|
|
||||||
11e12,
|
|
||||||
11.5e12,
|
|
||||||
12e12,
|
|
||||||
12.5e12,
|
|
||||||
12.75e12,
|
|
||||||
13e12,
|
|
||||||
13.25e12,
|
|
||||||
13.5e12,
|
|
||||||
14e12,
|
|
||||||
14.5e12,
|
|
||||||
14.75e12,
|
|
||||||
15e12,
|
|
||||||
15.5e12,
|
|
||||||
16e12,
|
|
||||||
16.5e12,
|
|
||||||
17e12,
|
|
||||||
17.5e12,
|
|
||||||
18e12,
|
|
||||||
18.25e12,
|
|
||||||
18.5e12,
|
|
||||||
18.75e12,
|
|
||||||
19e12,
|
|
||||||
19.5e12,
|
|
||||||
20e12,
|
|
||||||
20.5e12,
|
|
||||||
21e12,
|
|
||||||
21.5e12,
|
|
||||||
22e12,
|
|
||||||
22.5e12,
|
|
||||||
23e12,
|
|
||||||
23.5e12,
|
|
||||||
24e12,
|
|
||||||
24.5e12,
|
|
||||||
25e12,
|
|
||||||
25.5e12,
|
|
||||||
26e12,
|
|
||||||
26.5e12,
|
|
||||||
27e12,
|
|
||||||
27.5e12,
|
|
||||||
28e12,
|
|
||||||
28.5e12,
|
|
||||||
29e12,
|
|
||||||
29.5e12,
|
|
||||||
30e12,
|
|
||||||
30.5e12,
|
|
||||||
31e12,
|
|
||||||
31.5e12,
|
|
||||||
32e12,
|
|
||||||
32.5e12,
|
|
||||||
33e12,
|
|
||||||
33.5e12,
|
|
||||||
34e12,
|
|
||||||
34.5e12,
|
|
||||||
35e12,
|
|
||||||
35.5e12,
|
|
||||||
36e12,
|
|
||||||
36.5e12,
|
|
||||||
37e12,
|
|
||||||
37.5e12,
|
|
||||||
38e12,
|
|
||||||
38.5e12,
|
|
||||||
39e12,
|
|
||||||
39.5e12,
|
|
||||||
40e12,
|
|
||||||
40.5e12,
|
|
||||||
41e12,
|
|
||||||
41.5e12,
|
|
||||||
42e12
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Span": [
|
|
||||||
{
|
|
||||||
"power_mode": true,
|
|
||||||
"delta_power_range_db": [ -2, 3, 0.5 ],
|
|
||||||
"max_fiber_lineic_loss_for_raman": 0.25,
|
|
||||||
"target_extended_gain": 2.5,
|
|
||||||
"max_length": 150,
|
|
||||||
"length_units": "km",
|
|
||||||
"max_loss": 28,
|
|
||||||
"padding": 10,
|
|
||||||
"EOL": 0,
|
|
||||||
"con_in": 0,
|
|
||||||
"con_out": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Roadm": [
|
|
||||||
{
|
|
||||||
"target_pch_out_db": -20,
|
|
||||||
"add_drop_osnr": 38,
|
|
||||||
"pmd": 0,
|
|
||||||
"restrictions": {
|
|
||||||
"preamp_variety_list": [
|
|
||||||
"openroadm_ila_low_noise",
|
|
||||||
"openroadm_ila_standard",
|
|
||||||
"openroadm_mw_mw_preamp"
|
|
||||||
],
|
|
||||||
"booster_variety_list": [
|
|
||||||
"openroadm_ila_low_noise",
|
|
||||||
"openroadm_ila_standard",
|
|
||||||
"openroadm_mw_mw_booster"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"SI": [
|
|
||||||
{
|
|
||||||
"f_min": 191.3e12,
|
|
||||||
"baud_rate": 32e9,
|
|
||||||
"f_max": 195.1e12,
|
|
||||||
"spacing": 50e9,
|
|
||||||
"power_dbm": 0,
|
|
||||||
"power_range_db": [ 0, 0, 1 ],
|
|
||||||
"roll_off": 0.15,
|
|
||||||
"tx_osnr": 40,
|
|
||||||
"sys_margins": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Transceiver": [
|
|
||||||
{
|
|
||||||
"type_variety": "vendorA_trx-type1",
|
|
||||||
"frequency": {
|
|
||||||
"min": 191.35e12,
|
|
||||||
"max": 196.1e12
|
|
||||||
},
|
|
||||||
"mode": [
|
|
||||||
{
|
|
||||||
|
|
||||||
"format": "mode 1",
|
|
||||||
"baud_rate": 32e9,
|
|
||||||
"OSNR": 11,
|
|
||||||
"bit_rate": 100e9,
|
|
||||||
"roll_off": 0.15,
|
|
||||||
"tx_osnr": 40,
|
|
||||||
"min_spacing": 37.5e9,
|
|
||||||
"cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"format": "mode 2",
|
|
||||||
"baud_rate": 66e9,
|
|
||||||
"OSNR": 15,
|
|
||||||
"bit_rate": 200e9,
|
|
||||||
"roll_off": 0.15,
|
|
||||||
"tx_osnr": 40,
|
|
||||||
"min_spacing": 75e9,
|
|
||||||
"cost": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type_variety": "Voyager",
|
|
||||||
"frequency": {
|
|
||||||
"min": 191.35e12,
|
|
||||||
"max": 196.1e12
|
|
||||||
},
|
|
||||||
"mode": [
|
|
||||||
{
|
|
||||||
"format": "mode 1",
|
|
||||||
"baud_rate": 32e9,
|
|
||||||
"OSNR": 12,
|
|
||||||
"bit_rate": 100e9,
|
|
||||||
"roll_off": 0.15,
|
|
||||||
"tx_osnr": 40,
|
|
||||||
"min_spacing": 37.5e9,
|
|
||||||
"cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"format": "mode 3",
|
|
||||||
"baud_rate": 44e9,
|
|
||||||
"OSNR": 18,
|
|
||||||
"bit_rate": 300e9,
|
|
||||||
"roll_off": 0.15,
|
|
||||||
"tx_osnr": 40,
|
|
||||||
"min_spacing": 62.5e9,
|
|
||||||
"cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"format": "mode 2",
|
|
||||||
"baud_rate": 66e9,
|
|
||||||
"OSNR": 21,
|
|
||||||
"bit_rate": 400e9,
|
|
||||||
"roll_off": 0.15,
|
|
||||||
"tx_osnr": 40,
|
|
||||||
"min_spacing": 75e9,
|
|
||||||
"cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"format": "mode 4",
|
|
||||||
"baud_rate": 66e9,
|
|
||||||
"OSNR": 16,
|
|
||||||
"bit_rate": 200e9,
|
|
||||||
"roll_off": 0.15,
|
|
||||||
"tx_osnr": 40,
|
|
||||||
"min_spacing": 75e9,
|
|
||||||
"cost": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,985 +0,0 @@
|
|||||||
{
|
|
||||||
"tip-photonic-equipment:amplifier": [
|
|
||||||
{
|
|
||||||
"type": "fixed27",
|
|
||||||
"gain-min": "27.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "27.0",
|
|
||||||
"max-power-out": "21.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"polynomial-NF": {
|
|
||||||
"a": "0.0",
|
|
||||||
"b": "0.0",
|
|
||||||
"c": "0.0",
|
|
||||||
"d": "5.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "fixed22",
|
|
||||||
"gain-min": "22.0",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"gain-flatmax": "22.0",
|
|
||||||
"max-power-out": "21.0",
|
|
||||||
"has-output-voa": false,
|
|
||||||
"polynomial-NF": {
|
|
||||||
"a": "0.0",
|
|
||||||
"b": "0.0",
|
|
||||||
"c": "0.0",
|
|
||||||
"d": "5.5"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tip-photonic-equipment:fiber": [
|
|
||||||
{
|
|
||||||
"type": "SSMF",
|
|
||||||
"chromatic-dispersion": "16.7",
|
|
||||||
"gamma": "1.27",
|
|
||||||
"pmd-coefficient": "0.0400028124"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tip-photonic-equipment:transceiver": [
|
|
||||||
{
|
|
||||||
"type": "Cassini",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"mode": [
|
|
||||||
{
|
|
||||||
"name": "dp-qpsk",
|
|
||||||
"bit-rate": 100,
|
|
||||||
"baud-rate": "32.0",
|
|
||||||
"required-osnr": "11.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "37.5",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "16-qam",
|
|
||||||
"bit-rate": 200,
|
|
||||||
"baud-rate": "66.0",
|
|
||||||
"required-osnr": "15.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "75.0",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "Voyager",
|
|
||||||
"frequency-min": "191.35",
|
|
||||||
"frequency-max": "196.1",
|
|
||||||
"mode": [
|
|
||||||
{
|
|
||||||
"name": "mode 1",
|
|
||||||
"bit-rate": 100,
|
|
||||||
"baud-rate": "32.0",
|
|
||||||
"required-osnr": "12.0",
|
|
||||||
"in-band-tx-osnr": "40.0",
|
|
||||||
"grid-spacing": "37.5",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tip-photonic-simulation:cost": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tip-photonic-equipment:roadm": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"add-drop-osnr": "30.0",
|
|
||||||
"polarization-mode-dispersion": "0.0",
|
|
||||||
"target-channel-out-power": "-25.0",
|
|
||||||
"compatible-preamp": [],
|
|
||||||
"compatible-booster": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tip-photonic-simulation:simulation": {
|
|
||||||
"grid": {
|
|
||||||
"frequency-min": "191.6",
|
|
||||||
"frequency-max": "195.1",
|
|
||||||
"spacing": "50.0",
|
|
||||||
"power": "0.0",
|
|
||||||
"tx-roll-off": "0.15",
|
|
||||||
"tx-osnr": "40.0",
|
|
||||||
"baud-rate": "32.0"
|
|
||||||
},
|
|
||||||
"autodesign": {
|
|
||||||
"allowed-inline-edfa": [],
|
|
||||||
"power-adjustment-for-span-loss": {
|
|
||||||
"maximal-reduction": "-2.0",
|
|
||||||
"maximal-boost": "3.0",
|
|
||||||
"excursion-step-size": "0.5"
|
|
||||||
},
|
|
||||||
"gain-mode": [
|
|
||||||
null
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"system-margin": "2.0"
|
|
||||||
},
|
|
||||||
"ietf-network:networks": {
|
|
||||||
"network": [
|
|
||||||
{
|
|
||||||
"network-id": "GNPy",
|
|
||||||
"network-types": {
|
|
||||||
"tip-photonic-topology:photonic-topology": {}
|
|
||||||
},
|
|
||||||
"node": [
|
|
||||||
{
|
|
||||||
"node-id": "TCVR 1",
|
|
||||||
"tip-photonic-topology:transceiver": {
|
|
||||||
"model": "Cassini"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -415,
|
|
||||||
"Y-co-ordinate": -73,
|
|
||||||
"city": "TCVR 1",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "TCVR 2",
|
|
||||||
"tip-photonic-topology:transceiver": {
|
|
||||||
"model": "Cassini"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 543,
|
|
||||||
"Y-co-ordinate": -88,
|
|
||||||
"city": "TCVR 2",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "ROADM 1",
|
|
||||||
"tip-photonic-topology:roadm": {
|
|
||||||
"model": ""
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 38,
|
|
||||||
"Y-co-ordinate": -195,
|
|
||||||
"city": "ROADM 1",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "ROADM 2",
|
|
||||||
"tip-photonic-topology:roadm": {
|
|
||||||
"model": ""
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -127,
|
|
||||||
"Y-co-ordinate": 143,
|
|
||||||
"city": "ROADM 2",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "ROADM 3",
|
|
||||||
"tip-photonic-topology:roadm": {
|
|
||||||
"model": ""
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 164,
|
|
||||||
"Y-co-ordinate": 171,
|
|
||||||
"city": "ROADM 3",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "ROADM 4",
|
|
||||||
"tip-photonic-topology:roadm": {
|
|
||||||
"model": ""
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -270,
|
|
||||||
"Y-co-ordinate": -34,
|
|
||||||
"city": "ROADM 4",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "ROADM 5",
|
|
||||||
"tip-photonic-topology:roadm": {
|
|
||||||
"model": ""
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 365,
|
|
||||||
"Y-co-ordinate": -34,
|
|
||||||
"city": "ROADM 5",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 1",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -206,
|
|
||||||
"Y-co-ordinate": -144,
|
|
||||||
"city": "EDFA 1",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 2",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -165,
|
|
||||||
"Y-co-ordinate": -80,
|
|
||||||
"city": "EDFA 2",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 3",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -77,
|
|
||||||
"Y-co-ordinate": -186,
|
|
||||||
"city": "EDFA 3",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 4",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -43,
|
|
||||||
"Y-co-ordinate": -111,
|
|
||||||
"city": "EDFA 4",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 5",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 99,
|
|
||||||
"Y-co-ordinate": -119,
|
|
||||||
"city": "EDFA 5",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 6",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 126,
|
|
||||||
"Y-co-ordinate": -196,
|
|
||||||
"city": "EDFA 6",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 7",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 255,
|
|
||||||
"Y-co-ordinate": -49,
|
|
||||||
"city": "EDFA 7",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 8",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 315,
|
|
||||||
"Y-co-ordinate": -123,
|
|
||||||
"city": "EDFA 8",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 9",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 302,
|
|
||||||
"Y-co-ordinate": 26,
|
|
||||||
"city": "EDFA 9",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 10",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 387,
|
|
||||||
"Y-co-ordinate": 74,
|
|
||||||
"city": "EDFA 10",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 11",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 219,
|
|
||||||
"Y-co-ordinate": 97,
|
|
||||||
"city": "EDFA 11",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 12",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 279,
|
|
||||||
"Y-co-ordinate": 168,
|
|
||||||
"city": "EDFA 12",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 13",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 80,
|
|
||||||
"Y-co-ordinate": 101,
|
|
||||||
"city": "EDFA 13",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 14",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": 53,
|
|
||||||
"Y-co-ordinate": 195,
|
|
||||||
"city": "EDFA 14",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 15",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -44,
|
|
||||||
"Y-co-ordinate": 101,
|
|
||||||
"city": "EDFA 15",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 16",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -72,
|
|
||||||
"Y-co-ordinate": 195,
|
|
||||||
"city": "EDFA 16",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 17",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -220,
|
|
||||||
"Y-co-ordinate": 149,
|
|
||||||
"city": "EDFA 17",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 18",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -156,
|
|
||||||
"Y-co-ordinate": 75,
|
|
||||||
"city": "EDFA 18",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 19",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -286,
|
|
||||||
"Y-co-ordinate": 72,
|
|
||||||
"city": "EDFA 19",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"node-id": "EDFA 20",
|
|
||||||
"tip-photonic-topology:amplifier": {
|
|
||||||
"model": "",
|
|
||||||
"gain-target": "0.0",
|
|
||||||
"tilt-target": "0.0",
|
|
||||||
"out-voa-target": "0.0"
|
|
||||||
},
|
|
||||||
"metadata": {
|
|
||||||
"Positions": {
|
|
||||||
"X-co-ordinate": -214,
|
|
||||||
"Y-co-ordinate": 21,
|
|
||||||
"city": "EDFA 20",
|
|
||||||
"region": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ietf-network-topology:link": [
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 1 - 3",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 1"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 3"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 4 - 2",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 4"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 2"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 6 - 8",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 6"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 8"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 7 - 5",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 7"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 5"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 10 - 12",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 10"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 12"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 11 - 9",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 11"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 9"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 14 - 16",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 14"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 16"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 15 - 13",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 15"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 13"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 20 - 18",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 20"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 18"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Fiber 17 - 19",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 17"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 19"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:fiber": {
|
|
||||||
"type": "SSMF",
|
|
||||||
"length": "1.0",
|
|
||||||
"attenuation-in": "0.0",
|
|
||||||
"conn-att-in": "0.5",
|
|
||||||
"conn-att-out": "0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 1 - 4",
|
|
||||||
"source": {
|
|
||||||
"source-node": "TCVR 1"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 4"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 4 - 1",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 4"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "TCVR 1"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 4 - 1",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 4"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 1"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 3 - 1",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 3"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 1"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 1 - 6",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 1"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 6"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 8 - 5",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 8"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 5"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 5 - 2",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 5"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "TCVR 2"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 2 - 5",
|
|
||||||
"source": {
|
|
||||||
"source-node": "TCVR 2"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 5"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 5 - 10",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 5"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 10"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 12 - 3",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 12"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 3"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 3 - 14",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 3"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 14"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 16 - 2",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 16"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 2"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 2 - 17",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 2"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 17"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 19 - 4",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 19"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 4"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 4 - 20",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 4"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 20"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 18 - 2",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 18"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 2"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 2 - 15",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 2"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 15"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 13 - 3",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 13"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 3"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 3 - 11",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 3"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 11"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 9 - 5",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 9"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 5"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 5 - 7",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 5"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 7"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 5 - 1",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 5"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 1"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 1 - 4",
|
|
||||||
"source": {
|
|
||||||
"source-node": "ROADM 1"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "EDFA 4"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Patch 2 - 4",
|
|
||||||
"source": {
|
|
||||||
"source-node": "EDFA 2"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "ROADM 4"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:patch": {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"link-id": "1-Service 1 - 2",
|
|
||||||
"source": {
|
|
||||||
"source-node": "TCVR 1"
|
|
||||||
},
|
|
||||||
"destination": {
|
|
||||||
"dest-node": "TCVR 2"
|
|
||||||
},
|
|
||||||
"tip-photonic-topology:service": {
|
|
||||||
"band-width": 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1810
Data/yang.json
1810
Data/yang.json
File diff suppressed because it is too large
Load Diff
@@ -11,44 +11,23 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link rel="icon" href="Assets/img/telecom-favicon.ico" type="image/gif" sizes="16x16">
|
<link rel="icon" href="Assets/img/telecom-favicon.ico" type="image/gif" sizes="16x16">
|
||||||
<script src="js/Helper/Helper.js"></script>
|
<script src="js/Helper/Helper.js"></script>
|
||||||
|
|
||||||
<link href="css/cdn/bootstrap.min.css" rel="stylesheet" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous" />
|
<link href="css/cdn/bootstrap.min.css" rel="stylesheet" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous" />
|
||||||
|
|
||||||
<link rel="stylesheet" href="css/Style.css" />
|
<link rel="stylesheet" href="css/Style.css" />
|
||||||
<link href="css/cdn/font-awesome.min.css" rel="stylesheet" />
|
<link href="css/cdn/font-awesome.min.css" rel="stylesheet" />
|
||||||
|
|
||||||
<link href="css/cdn/roboto-css.css" rel="stylesheet" />
|
<link href="css/cdn/roboto-css.css" rel="stylesheet" />
|
||||||
<link href="css/cdn/oswald-css.css" rel="stylesheet" />
|
<link href="css/cdn/oswald-css.css" rel="stylesheet" />
|
||||||
<link href="css/cdn/icon.css" rel="stylesheet" />
|
<link href="css/cdn/icon.css" rel="stylesheet" />
|
||||||
|
|
||||||
<script src="js/CdnURL/polyfill.min.js" integrity="sha512-uzOpZ74myvXTYZ+mXUsPhDF+/iL/n32GDxdryI2SJronkEyKC8FBFRLiBQ7l7U/PTYebDbgTtbqTa6/vGtU23A==" crossorigin="anonymous"></script>
|
|
||||||
<script src="js/CdnURL/runtime.js"></script>
|
|
||||||
|
|
||||||
<script src="js/Network Graph/FileSaver.js"></script>
|
<script src="js/Network Graph/FileSaver.js"></script>
|
||||||
<script src="js/Network Graph/jsstore.js"></script>
|
|
||||||
<script src="js/Network Graph/jsstore.worker.js"></script>
|
|
||||||
|
|
||||||
<!--<script src="js/vis-network.min.js"></script>-->
|
|
||||||
<!--<script src="js/CdnURL/vis.js"></script>-->
|
|
||||||
<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.js"></script>-->
|
|
||||||
|
|
||||||
<script src="js/visunminify.js"></script>
|
<script src="js/visunminify.js"></script>
|
||||||
<link href="css/cdn/vis-network.min.css" rel="stylesheet" type="text/css" />
|
<link href="css/cdn/vis-network.min.css" rel="stylesheet" type="text/css" />
|
||||||
<script src="js/CdnURL/lodash.min.js"></script>
|
<script src="js/CdnURL/lodash.min.js"></script>
|
||||||
<script src="js/CdnURL/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
|
<script src="js/CdnURL/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
|
||||||
<link href="css/cdn/all.css" rel="stylesheet" />
|
<link href="css/cdn/all.css" rel="stylesheet" />
|
||||||
|
|
||||||
<script src="js/alea.js"></script>
|
<script src="js/alea.js"></script>
|
||||||
<script src="js/exampleUtil.js"></script>
|
<script src="js/exampleUtil.js"></script>
|
||||||
<script src="js/LocalDB/taffy.js"></script>
|
<script src="js/LocalDB/taffy.js"></script>
|
||||||
<script src="js/LocalDB/taffy-min.js"></script>
|
|
||||||
<script src="js/jquery-2.0.3.js"></script>
|
|
||||||
<script src="js/sweetalert2@9.js"></script>
|
|
||||||
<script src="js/Network Graph/stylenetwork.js"></script>
|
<script src="js/Network Graph/stylenetwork.js"></script>
|
||||||
|
|
||||||
<script src="js/Network Graph/canvas-toBlob.js"></script>
|
|
||||||
<script src="js/CdnURL/html2canvas.min.js" integrity="sha256-c3RzsUWg+y2XljunEQS0LqWdQ04X1D3j22fd/8JCAKw=" crossorigin="anonymous"></script>
|
<script src="js/CdnURL/html2canvas.min.js" integrity="sha256-c3RzsUWg+y2XljunEQS0LqWdQ04X1D3j22fd/8JCAKw=" crossorigin="anonymous"></script>
|
||||||
<script src="js/CdnURL/FileSaver.min.js" integrity="sha256-FPJJt8nA+xL4RU6/gsriA8p8xAeLGatoyTjldvQKGdE=" crossorigin="anonymous"></script>
|
|
||||||
<script src="js/validation.js"></script>
|
<script src="js/validation.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -1330,10 +1309,6 @@
|
|||||||
|
|
||||||
<!-- Script language -->
|
<!-- Script language -->
|
||||||
<script src="js/main.js"></script>
|
<script src="js/main.js"></script>
|
||||||
|
|
||||||
|
|
||||||
<!--<script src="js/CdnURL/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
|
|
||||||
crossorigin="anonymous"></script>-->
|
|
||||||
<script src="js/CdnURL/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN"
|
<script src="js/CdnURL/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN"
|
||||||
crossorigin="anonymous"></script>
|
crossorigin="anonymous"></script>
|
||||||
<script src="js/CdnURL/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2"
|
<script src="js/CdnURL/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2"
|
||||||
|
|||||||
2
js/CdnURL/FileSaver.min.js
vendored
2
js/CdnURL/FileSaver.min.js
vendored
@@ -1,2 +0,0 @@
|
|||||||
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
|
|
||||||
var saveAs=saveAs||function(e){"use strict";if(typeof e==="undefined"||typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var t=e.document,n=function(){return e.URL||e.webkitURL||e},r=t.createElementNS("http://www.w3.org/1999/xhtml","a"),o="download"in r,a=function(e){var t=new MouseEvent("click");e.dispatchEvent(t)},i=/constructor/i.test(e.HTMLElement)||e.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent),u=function(t){(e.setImmediate||e.setTimeout)(function(){throw t},0)},s="application/octet-stream",d=1e3*40,c=function(e){var t=function(){if(typeof e==="string"){n().revokeObjectURL(e)}else{e.remove()}};setTimeout(t,d)},l=function(e,t,n){t=[].concat(t);var r=t.length;while(r--){var o=e["on"+t[r]];if(typeof o==="function"){try{o.call(e,n||e)}catch(a){u(a)}}}},p=function(e){if(/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)){return new Blob([String.fromCharCode(65279),e],{type:e.type})}return e},v=function(t,u,d){if(!d){t=p(t)}var v=this,w=t.type,m=w===s,y,h=function(){l(v,"writestart progress write writeend".split(" "))},S=function(){if((f||m&&i)&&e.FileReader){var r=new FileReader;r.onloadend=function(){var t=f?r.result:r.result.replace(/^data:[^;]*;/,"data:attachment/file;");var n=e.open(t,"_blank");if(!n)e.location.href=t;t=undefined;v.readyState=v.DONE;h()};r.readAsDataURL(t);v.readyState=v.INIT;return}if(!y){y=n().createObjectURL(t)}if(m){e.location.href=y}else{var o=e.open(y,"_blank");if(!o){e.location.href=y}}v.readyState=v.DONE;h();c(y)};v.readyState=v.INIT;if(o){y=n().createObjectURL(t);setTimeout(function(){r.href=y;r.download=u;a(r);h();c(y);v.readyState=v.DONE});return}S()},w=v.prototype,m=function(e,t,n){return new v(e,t||e.name||"download",n)};if(typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob){return function(e,t,n){t=t||e.name||"download";if(!n){e=p(e)}return navigator.msSaveOrOpenBlob(e,t)}}w.abort=function(){};w.readyState=w.INIT=0;w.WRITING=1;w.DONE=2;w.error=w.onwritestart=w.onprogress=w.onwrite=w.onabort=w.onerror=w.onwriteend=null;return m}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!==null){define("FileSaver.js",function(){return saveAs})}
|
|
||||||
1
js/CdnURL/polyfill.min.js
vendored
1
js/CdnURL/polyfill.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,657 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2014, Facebook, Inc.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the BSD-style license found in the
|
|
||||||
* https://raw.github.com/facebook/regenerator/master/LICENSE file. An
|
|
||||||
* additional grant of patent rights can be found in the PATENTS file in
|
|
||||||
* the same directory.
|
|
||||||
*/
|
|
||||||
|
|
||||||
!(function(global) {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
var hasOwn = Object.prototype.hasOwnProperty;
|
|
||||||
var undefined; // More compressible than void 0.
|
|
||||||
var iteratorSymbol =
|
|
||||||
typeof Symbol === "function" && Symbol.iterator || "@@iterator";
|
|
||||||
|
|
||||||
var inModule = typeof module === "object";
|
|
||||||
var runtime = global.regeneratorRuntime;
|
|
||||||
if (runtime) {
|
|
||||||
if (inModule) {
|
|
||||||
// If regeneratorRuntime is defined globally and we're in a module,
|
|
||||||
// make the exports object identical to regeneratorRuntime.
|
|
||||||
module.exports = runtime;
|
|
||||||
}
|
|
||||||
// Don't bother evaluating the rest of this file if the runtime was
|
|
||||||
// already defined globally.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define the runtime globally (as expected by generated code) as either
|
|
||||||
// module.exports (if we're in a module) or a new, empty object.
|
|
||||||
runtime = global.regeneratorRuntime = inModule ? module.exports : {};
|
|
||||||
|
|
||||||
function wrap(innerFn, outerFn, self, tryLocsList) {
|
|
||||||
// If outerFn provided, then outerFn.prototype instanceof Generator.
|
|
||||||
var generator = Object.create((outerFn || Generator).prototype);
|
|
||||||
var context = new Context(tryLocsList || []);
|
|
||||||
|
|
||||||
// The ._invoke method unifies the implementations of the .next,
|
|
||||||
// .throw, and .return methods.
|
|
||||||
generator._invoke = makeInvokeMethod(innerFn, self, context);
|
|
||||||
|
|
||||||
return generator;
|
|
||||||
}
|
|
||||||
runtime.wrap = wrap;
|
|
||||||
|
|
||||||
// Try/catch helper to minimize deoptimizations. Returns a completion
|
|
||||||
// record like context.tryEntries[i].completion. This interface could
|
|
||||||
// have been (and was previously) designed to take a closure to be
|
|
||||||
// invoked without arguments, but in all the cases we care about we
|
|
||||||
// already have an existing method we want to call, so there's no need
|
|
||||||
// to create a new function object. We can even get away with assuming
|
|
||||||
// the method takes exactly one argument, since that happens to be true
|
|
||||||
// in every case, so we don't have to touch the arguments object. The
|
|
||||||
// only additional allocation required is the completion record, which
|
|
||||||
// has a stable shape and so hopefully should be cheap to allocate.
|
|
||||||
function tryCatch(fn, obj, arg) {
|
|
||||||
try {
|
|
||||||
return { type: "normal", arg: fn.call(obj, arg) };
|
|
||||||
} catch (err) {
|
|
||||||
return { type: "throw", arg: err };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var GenStateSuspendedStart = "suspendedStart";
|
|
||||||
var GenStateSuspendedYield = "suspendedYield";
|
|
||||||
var GenStateExecuting = "executing";
|
|
||||||
var GenStateCompleted = "completed";
|
|
||||||
|
|
||||||
// Returning this object from the innerFn has the same effect as
|
|
||||||
// breaking out of the dispatch switch statement.
|
|
||||||
var ContinueSentinel = {};
|
|
||||||
|
|
||||||
// Dummy constructor functions that we use as the .constructor and
|
|
||||||
// .constructor.prototype properties for functions that return Generator
|
|
||||||
// objects. For full spec compliance, you may wish to configure your
|
|
||||||
// minifier not to mangle the names of these two functions.
|
|
||||||
function Generator() {}
|
|
||||||
function GeneratorFunction() {}
|
|
||||||
function GeneratorFunctionPrototype() {}
|
|
||||||
|
|
||||||
var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype;
|
|
||||||
GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
|
|
||||||
GeneratorFunctionPrototype.constructor = GeneratorFunction;
|
|
||||||
GeneratorFunction.displayName = "GeneratorFunction";
|
|
||||||
|
|
||||||
// Helper for defining the .next, .throw, and .return methods of the
|
|
||||||
// Iterator interface in terms of a single ._invoke method.
|
|
||||||
function defineIteratorMethods(prototype) {
|
|
||||||
["next", "throw", "return"].forEach(function(method) {
|
|
||||||
prototype[method] = function(arg) {
|
|
||||||
return this._invoke(method, arg);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
runtime.isGeneratorFunction = function(genFun) {
|
|
||||||
var ctor = typeof genFun === "function" && genFun.constructor;
|
|
||||||
return ctor
|
|
||||||
? ctor === GeneratorFunction ||
|
|
||||||
// For the native GeneratorFunction constructor, the best we can
|
|
||||||
// do is to check its .name property.
|
|
||||||
(ctor.displayName || ctor.name) === "GeneratorFunction"
|
|
||||||
: false;
|
|
||||||
};
|
|
||||||
|
|
||||||
runtime.mark = function(genFun) {
|
|
||||||
if (Object.setPrototypeOf) {
|
|
||||||
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
|
|
||||||
} else {
|
|
||||||
genFun.__proto__ = GeneratorFunctionPrototype;
|
|
||||||
}
|
|
||||||
genFun.prototype = Object.create(Gp);
|
|
||||||
return genFun;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Within the body of any async function, `await x` is transformed to
|
|
||||||
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
|
|
||||||
// `value instanceof AwaitArgument` to determine if the yielded value is
|
|
||||||
// meant to be awaited. Some may consider the name of this method too
|
|
||||||
// cutesy, but they are curmudgeons.
|
|
||||||
runtime.awrap = function(arg) {
|
|
||||||
return new AwaitArgument(arg);
|
|
||||||
};
|
|
||||||
|
|
||||||
function AwaitArgument(arg) {
|
|
||||||
this.arg = arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
function AsyncIterator(generator) {
|
|
||||||
// This invoke function is written in a style that assumes some
|
|
||||||
// calling function (or Promise) will handle exceptions.
|
|
||||||
function invoke(method, arg) {
|
|
||||||
var result = generator[method](arg);
|
|
||||||
var value = result.value;
|
|
||||||
return value instanceof AwaitArgument
|
|
||||||
? Promise.resolve(value.arg).then(invokeNext, invokeThrow)
|
|
||||||
: Promise.resolve(value).then(function(unwrapped) {
|
|
||||||
// When a yielded Promise is resolved, its final value becomes
|
|
||||||
// the .value of the Promise<{value,done}> result for the
|
|
||||||
// current iteration. If the Promise is rejected, however, the
|
|
||||||
// result for this iteration will be rejected with the same
|
|
||||||
// reason. Note that rejections of yielded Promises are not
|
|
||||||
// thrown back into the generator function, as is the case
|
|
||||||
// when an awaited Promise is rejected. This difference in
|
|
||||||
// behavior between yield and await is important, because it
|
|
||||||
// allows the consumer to decide what to do with the yielded
|
|
||||||
// rejection (swallow it and continue, manually .throw it back
|
|
||||||
// into the generator, abandon iteration, whatever). With
|
|
||||||
// await, by contrast, there is no opportunity to examine the
|
|
||||||
// rejection reason outside the generator function, so the
|
|
||||||
// only option is to throw it from the await expression, and
|
|
||||||
// let the generator function handle the exception.
|
|
||||||
result.value = unwrapped;
|
|
||||||
return result;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof process === "object" && process.domain) {
|
|
||||||
invoke = process.domain.bind(invoke);
|
|
||||||
}
|
|
||||||
|
|
||||||
var invokeNext = invoke.bind(generator, "next");
|
|
||||||
var invokeThrow = invoke.bind(generator, "throw");
|
|
||||||
var invokeReturn = invoke.bind(generator, "return");
|
|
||||||
var previousPromise;
|
|
||||||
|
|
||||||
function enqueue(method, arg) {
|
|
||||||
function callInvokeWithMethodAndArg() {
|
|
||||||
return invoke(method, arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
return previousPromise =
|
|
||||||
// If enqueue has been called before, then we want to wait until
|
|
||||||
// all previous Promises have been resolved before calling invoke,
|
|
||||||
// so that results are always delivered in the correct order. If
|
|
||||||
// enqueue has not been called before, then it is important to
|
|
||||||
// call invoke immediately, without waiting on a callback to fire,
|
|
||||||
// so that the async generator function has the opportunity to do
|
|
||||||
// any necessary setup in a predictable way. This predictability
|
|
||||||
// is why the Promise constructor synchronously invokes its
|
|
||||||
// executor callback, and why async functions synchronously
|
|
||||||
// execute code before the first await. Since we implement simple
|
|
||||||
// async functions in terms of async generators, it is especially
|
|
||||||
// important to get this right, even though it requires care.
|
|
||||||
previousPromise ? previousPromise.then(
|
|
||||||
callInvokeWithMethodAndArg,
|
|
||||||
// Avoid propagating failures to Promises returned by later
|
|
||||||
// invocations of the iterator.
|
|
||||||
callInvokeWithMethodAndArg
|
|
||||||
) : new Promise(function (resolve) {
|
|
||||||
resolve(callInvokeWithMethodAndArg());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define the unified helper method that is used to implement .next,
|
|
||||||
// .throw, and .return (see defineIteratorMethods).
|
|
||||||
this._invoke = enqueue;
|
|
||||||
}
|
|
||||||
|
|
||||||
defineIteratorMethods(AsyncIterator.prototype);
|
|
||||||
|
|
||||||
// Note that simple async functions are implemented on top of
|
|
||||||
// AsyncIterator objects; they just return a Promise for the value of
|
|
||||||
// the final result produced by the iterator.
|
|
||||||
runtime.async = function(innerFn, outerFn, self, tryLocsList) {
|
|
||||||
var iter = new AsyncIterator(
|
|
||||||
wrap(innerFn, outerFn, self, tryLocsList)
|
|
||||||
);
|
|
||||||
|
|
||||||
return runtime.isGeneratorFunction(outerFn)
|
|
||||||
? iter // If outerFn is a generator, return the full iterator.
|
|
||||||
: iter.next().then(function(result) {
|
|
||||||
return result.done ? result.value : iter.next();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
function makeInvokeMethod(innerFn, self, context) {
|
|
||||||
var state = GenStateSuspendedStart;
|
|
||||||
|
|
||||||
return function invoke(method, arg) {
|
|
||||||
if (state === GenStateExecuting) {
|
|
||||||
throw new Error("Generator is already running");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state === GenStateCompleted) {
|
|
||||||
if (method === "throw") {
|
|
||||||
throw arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Be forgiving, per 25.3.3.3.3 of the spec:
|
|
||||||
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
|
|
||||||
return doneResult();
|
|
||||||
}
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
var delegate = context.delegate;
|
|
||||||
if (delegate) {
|
|
||||||
if (method === "return" ||
|
|
||||||
(method === "throw" && delegate.iterator[method] === undefined)) {
|
|
||||||
// A return or throw (when the delegate iterator has no throw
|
|
||||||
// method) always terminates the yield* loop.
|
|
||||||
context.delegate = null;
|
|
||||||
|
|
||||||
// If the delegate iterator has a return method, give it a
|
|
||||||
// chance to clean up.
|
|
||||||
var returnMethod = delegate.iterator["return"];
|
|
||||||
if (returnMethod) {
|
|
||||||
var record = tryCatch(returnMethod, delegate.iterator, arg);
|
|
||||||
if (record.type === "throw") {
|
|
||||||
// If the return method threw an exception, let that
|
|
||||||
// exception prevail over the original return or throw.
|
|
||||||
method = "throw";
|
|
||||||
arg = record.arg;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (method === "return") {
|
|
||||||
// Continue with the outer return, now that the delegate
|
|
||||||
// iterator has been terminated.
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var record = tryCatch(
|
|
||||||
delegate.iterator[method],
|
|
||||||
delegate.iterator,
|
|
||||||
arg
|
|
||||||
);
|
|
||||||
|
|
||||||
if (record.type === "throw") {
|
|
||||||
context.delegate = null;
|
|
||||||
|
|
||||||
// Like returning generator.throw(uncaught), but without the
|
|
||||||
// overhead of an extra function call.
|
|
||||||
method = "throw";
|
|
||||||
arg = record.arg;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delegate generator ran and handled its own exceptions so
|
|
||||||
// regardless of what the method was, we continue as if it is
|
|
||||||
// "next" with an undefined arg.
|
|
||||||
method = "next";
|
|
||||||
arg = undefined;
|
|
||||||
|
|
||||||
var info = record.arg;
|
|
||||||
if (info.done) {
|
|
||||||
context[delegate.resultName] = info.value;
|
|
||||||
context.next = delegate.nextLoc;
|
|
||||||
} else {
|
|
||||||
state = GenStateSuspendedYield;
|
|
||||||
return info;
|
|
||||||
}
|
|
||||||
|
|
||||||
context.delegate = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (method === "next") {
|
|
||||||
context._sent = arg;
|
|
||||||
|
|
||||||
if (state === GenStateSuspendedYield) {
|
|
||||||
context.sent = arg;
|
|
||||||
} else {
|
|
||||||
context.sent = undefined;
|
|
||||||
}
|
|
||||||
} else if (method === "throw") {
|
|
||||||
if (state === GenStateSuspendedStart) {
|
|
||||||
state = GenStateCompleted;
|
|
||||||
throw arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (context.dispatchException(arg)) {
|
|
||||||
// If the dispatched exception was caught by a catch block,
|
|
||||||
// then let that catch block handle the exception normally.
|
|
||||||
method = "next";
|
|
||||||
arg = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (method === "return") {
|
|
||||||
context.abrupt("return", arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
state = GenStateExecuting;
|
|
||||||
|
|
||||||
var record = tryCatch(innerFn, self, context);
|
|
||||||
if (record.type === "normal") {
|
|
||||||
// If an exception is thrown from innerFn, we leave state ===
|
|
||||||
// GenStateExecuting and loop back for another invocation.
|
|
||||||
state = context.done
|
|
||||||
? GenStateCompleted
|
|
||||||
: GenStateSuspendedYield;
|
|
||||||
|
|
||||||
var info = {
|
|
||||||
value: record.arg,
|
|
||||||
done: context.done
|
|
||||||
};
|
|
||||||
|
|
||||||
if (record.arg === ContinueSentinel) {
|
|
||||||
if (context.delegate && method === "next") {
|
|
||||||
// Deliberately forget the last sent value so that we don't
|
|
||||||
// accidentally pass it on to the delegate.
|
|
||||||
arg = undefined;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return info;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (record.type === "throw") {
|
|
||||||
state = GenStateCompleted;
|
|
||||||
// Dispatch the exception by looping back around to the
|
|
||||||
// context.dispatchException(arg) call above.
|
|
||||||
method = "throw";
|
|
||||||
arg = record.arg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Define Generator.prototype.{next,throw,return} in terms of the
|
|
||||||
// unified ._invoke helper method.
|
|
||||||
defineIteratorMethods(Gp);
|
|
||||||
|
|
||||||
Gp[iteratorSymbol] = function() {
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
|
|
||||||
Gp.toString = function() {
|
|
||||||
return "[object Generator]";
|
|
||||||
};
|
|
||||||
|
|
||||||
function pushTryEntry(locs) {
|
|
||||||
var entry = { tryLoc: locs[0] };
|
|
||||||
|
|
||||||
if (1 in locs) {
|
|
||||||
entry.catchLoc = locs[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (2 in locs) {
|
|
||||||
entry.finallyLoc = locs[2];
|
|
||||||
entry.afterLoc = locs[3];
|
|
||||||
}
|
|
||||||
|
|
||||||
this.tryEntries.push(entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
function resetTryEntry(entry) {
|
|
||||||
var record = entry.completion || {};
|
|
||||||
record.type = "normal";
|
|
||||||
delete record.arg;
|
|
||||||
entry.completion = record;
|
|
||||||
}
|
|
||||||
|
|
||||||
function Context(tryLocsList) {
|
|
||||||
// The root entry object (effectively a try statement without a catch
|
|
||||||
// or a finally block) gives us a place to store values thrown from
|
|
||||||
// locations where there is no enclosing try statement.
|
|
||||||
this.tryEntries = [{ tryLoc: "root" }];
|
|
||||||
tryLocsList.forEach(pushTryEntry, this);
|
|
||||||
this.reset(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
runtime.keys = function(object) {
|
|
||||||
var keys = [];
|
|
||||||
for (var key in object) {
|
|
||||||
keys.push(key);
|
|
||||||
}
|
|
||||||
keys.reverse();
|
|
||||||
|
|
||||||
// Rather than returning an object with a next method, we keep
|
|
||||||
// things simple and return the next function itself.
|
|
||||||
return function next() {
|
|
||||||
while (keys.length) {
|
|
||||||
var key = keys.pop();
|
|
||||||
if (key in object) {
|
|
||||||
next.value = key;
|
|
||||||
next.done = false;
|
|
||||||
return next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// To avoid creating an additional object, we just hang the .value
|
|
||||||
// and .done properties off the next function object itself. This
|
|
||||||
// also ensures that the minifier will not anonymize the function.
|
|
||||||
next.done = true;
|
|
||||||
return next;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
function values(iterable) {
|
|
||||||
if (iterable) {
|
|
||||||
var iteratorMethod = iterable[iteratorSymbol];
|
|
||||||
if (iteratorMethod) {
|
|
||||||
return iteratorMethod.call(iterable);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof iterable.next === "function") {
|
|
||||||
return iterable;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isNaN(iterable.length)) {
|
|
||||||
var i = -1, next = function next() {
|
|
||||||
while (++i < iterable.length) {
|
|
||||||
if (hasOwn.call(iterable, i)) {
|
|
||||||
next.value = iterable[i];
|
|
||||||
next.done = false;
|
|
||||||
return next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
next.value = undefined;
|
|
||||||
next.done = true;
|
|
||||||
|
|
||||||
return next;
|
|
||||||
};
|
|
||||||
|
|
||||||
return next.next = next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return an iterator with no values.
|
|
||||||
return { next: doneResult };
|
|
||||||
}
|
|
||||||
runtime.values = values;
|
|
||||||
|
|
||||||
function doneResult() {
|
|
||||||
return { value: undefined, done: true };
|
|
||||||
}
|
|
||||||
|
|
||||||
Context.prototype = {
|
|
||||||
constructor: Context,
|
|
||||||
|
|
||||||
reset: function(skipTempReset) {
|
|
||||||
this.prev = 0;
|
|
||||||
this.next = 0;
|
|
||||||
this.sent = undefined;
|
|
||||||
this.done = false;
|
|
||||||
this.delegate = null;
|
|
||||||
|
|
||||||
this.tryEntries.forEach(resetTryEntry);
|
|
||||||
|
|
||||||
if (!skipTempReset) {
|
|
||||||
for (var name in this) {
|
|
||||||
// Not sure about the optimal order of these conditions:
|
|
||||||
if (name.charAt(0) === "t" &&
|
|
||||||
hasOwn.call(this, name) &&
|
|
||||||
!isNaN(+name.slice(1))) {
|
|
||||||
this[name] = undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
stop: function() {
|
|
||||||
this.done = true;
|
|
||||||
|
|
||||||
var rootEntry = this.tryEntries[0];
|
|
||||||
var rootRecord = rootEntry.completion;
|
|
||||||
if (rootRecord.type === "throw") {
|
|
||||||
throw rootRecord.arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.rval;
|
|
||||||
},
|
|
||||||
|
|
||||||
dispatchException: function(exception) {
|
|
||||||
if (this.done) {
|
|
||||||
throw exception;
|
|
||||||
}
|
|
||||||
|
|
||||||
var context = this;
|
|
||||||
function handle(loc, caught) {
|
|
||||||
record.type = "throw";
|
|
||||||
record.arg = exception;
|
|
||||||
context.next = loc;
|
|
||||||
return !!caught;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
||||||
var entry = this.tryEntries[i];
|
|
||||||
var record = entry.completion;
|
|
||||||
|
|
||||||
if (entry.tryLoc === "root") {
|
|
||||||
// Exception thrown outside of any try block that could handle
|
|
||||||
// it, so set the completion value of the entire function to
|
|
||||||
// throw the exception.
|
|
||||||
return handle("end");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (entry.tryLoc <= this.prev) {
|
|
||||||
var hasCatch = hasOwn.call(entry, "catchLoc");
|
|
||||||
var hasFinally = hasOwn.call(entry, "finallyLoc");
|
|
||||||
|
|
||||||
if (hasCatch && hasFinally) {
|
|
||||||
if (this.prev < entry.catchLoc) {
|
|
||||||
return handle(entry.catchLoc, true);
|
|
||||||
} else if (this.prev < entry.finallyLoc) {
|
|
||||||
return handle(entry.finallyLoc);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (hasCatch) {
|
|
||||||
if (this.prev < entry.catchLoc) {
|
|
||||||
return handle(entry.catchLoc, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (hasFinally) {
|
|
||||||
if (this.prev < entry.finallyLoc) {
|
|
||||||
return handle(entry.finallyLoc);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
throw new Error("try statement without catch or finally");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
abrupt: function(type, arg) {
|
|
||||||
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
||||||
var entry = this.tryEntries[i];
|
|
||||||
if (entry.tryLoc <= this.prev &&
|
|
||||||
hasOwn.call(entry, "finallyLoc") &&
|
|
||||||
this.prev < entry.finallyLoc) {
|
|
||||||
var finallyEntry = entry;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (finallyEntry &&
|
|
||||||
(type === "break" ||
|
|
||||||
type === "continue") &&
|
|
||||||
finallyEntry.tryLoc <= arg &&
|
|
||||||
arg <= finallyEntry.finallyLoc) {
|
|
||||||
// Ignore the finally entry if control is not jumping to a
|
|
||||||
// location outside the try/catch block.
|
|
||||||
finallyEntry = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var record = finallyEntry ? finallyEntry.completion : {};
|
|
||||||
record.type = type;
|
|
||||||
record.arg = arg;
|
|
||||||
|
|
||||||
if (finallyEntry) {
|
|
||||||
this.next = finallyEntry.finallyLoc;
|
|
||||||
} else {
|
|
||||||
this.complete(record);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ContinueSentinel;
|
|
||||||
},
|
|
||||||
|
|
||||||
complete: function(record, afterLoc) {
|
|
||||||
if (record.type === "throw") {
|
|
||||||
throw record.arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (record.type === "break" ||
|
|
||||||
record.type === "continue") {
|
|
||||||
this.next = record.arg;
|
|
||||||
} else if (record.type === "return") {
|
|
||||||
this.rval = record.arg;
|
|
||||||
this.next = "end";
|
|
||||||
} else if (record.type === "normal" && afterLoc) {
|
|
||||||
this.next = afterLoc;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
finish: function(finallyLoc) {
|
|
||||||
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
||||||
var entry = this.tryEntries[i];
|
|
||||||
if (entry.finallyLoc === finallyLoc) {
|
|
||||||
this.complete(entry.completion, entry.afterLoc);
|
|
||||||
resetTryEntry(entry);
|
|
||||||
return ContinueSentinel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"catch": function(tryLoc) {
|
|
||||||
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
|
|
||||||
var entry = this.tryEntries[i];
|
|
||||||
if (entry.tryLoc === tryLoc) {
|
|
||||||
var record = entry.completion;
|
|
||||||
if (record.type === "throw") {
|
|
||||||
var thrown = record.arg;
|
|
||||||
resetTryEntry(entry);
|
|
||||||
}
|
|
||||||
return thrown;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// The context.catch method must only be called with a location
|
|
||||||
// argument that corresponds to a known catch block.
|
|
||||||
throw new Error("illegal catch attempt");
|
|
||||||
},
|
|
||||||
|
|
||||||
delegateYield: function(iterable, resultName, nextLoc) {
|
|
||||||
this.delegate = {
|
|
||||||
iterator: values(iterable),
|
|
||||||
resultName: resultName,
|
|
||||||
nextLoc: nextLoc
|
|
||||||
};
|
|
||||||
|
|
||||||
return ContinueSentinel;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
})(
|
|
||||||
// Among the various tricks for obtaining a reference to the global
|
|
||||||
// object, this seems to be the most reliable technique that does not
|
|
||||||
// use indirect eval (which violates Content Security Policy).
|
|
||||||
typeof global === "object" ? global :
|
|
||||||
typeof window === "object" ? window :
|
|
||||||
typeof self === "object" ? self : this
|
|
||||||
);
|
|
||||||
1
js/LocalDB/taffy-min.js
vendored
1
js/LocalDB/taffy-min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,166 +0,0 @@
|
|||||||
|
|
||||||
//prefixes of implementation that we want to test
|
|
||||||
window.indexedDB = window.indexedDB || window.mozIndexedDB ||
|
|
||||||
window.webkitIndexedDB || window.msIndexedDB;
|
|
||||||
|
|
||||||
//prefixes of window.IDB objects
|
|
||||||
window.IDBTransaction = window.IDBTransaction ||
|
|
||||||
window.webkitIDBTransaction || window.msIDBTransaction;
|
|
||||||
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange ||
|
|
||||||
window.msIDBKeyRange
|
|
||||||
|
|
||||||
if (!window.indexedDB) {
|
|
||||||
window.alert("Your browser doesn't support a stable version of IndexedDB.")
|
|
||||||
}
|
|
||||||
|
|
||||||
//const employeeData = [
|
|
||||||
// { id: "1", name: "gopal", age: 35, email: "gopal@tutorialspoint.com" },
|
|
||||||
// { id: "2", name: "prasad", age: 32, email: "prasad@tutorialspoint.com" }
|
|
||||||
//];
|
|
||||||
var db;
|
|
||||||
var request = window.indexedDB.open("newDatabase", 1);
|
|
||||||
|
|
||||||
request.onerror = function (event) {
|
|
||||||
console.log("error: ");
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onsuccess = function (event) {
|
|
||||||
db = request.result;
|
|
||||||
console.log("success: " + db);
|
|
||||||
readAll();
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onupgradeneeded = function (event) {
|
|
||||||
var db = event.target.result;
|
|
||||||
var objectStore = db.createObjectStore("employee", { keyPath: "id" });
|
|
||||||
|
|
||||||
//for (var i in employeeData) {
|
|
||||||
// objectStore.add(employeeData[i]);
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
var datas = "";
|
|
||||||
function read(id) {
|
|
||||||
var transaction = db.transaction(["employee"]);
|
|
||||||
var objectStore = transaction.objectStore("employee");
|
|
||||||
var request = objectStore.get(id);
|
|
||||||
//console.log(request);
|
|
||||||
datas = request;
|
|
||||||
request.onerror = function (event) {
|
|
||||||
alert("Unable to retrieve daa from database!");
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onsuccess = function (event) {
|
|
||||||
// Do something with the request.result!
|
|
||||||
if (request.result) {
|
|
||||||
$("#txtID").val(request.result.id);
|
|
||||||
$("#txtName").val(request.result.name);
|
|
||||||
$("#txtAge").val(request.result.age);
|
|
||||||
$("#txtEmail").val(request.result.email);
|
|
||||||
// alert("Name: " + request.result.name + " Age: " + request.result.age + ", Email: " + request.result.email);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
alert("given id couldn't be found in your database!");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function clear() {
|
|
||||||
$("#txtID").val('');
|
|
||||||
$("#txtName").val('');
|
|
||||||
$("#txtAge").val('');
|
|
||||||
$("#txtEmail").val('');
|
|
||||||
}
|
|
||||||
function readAll() {
|
|
||||||
var objectStore = db.transaction("employee").objectStore("employee");
|
|
||||||
$("#tblData tbody").empty();
|
|
||||||
objectStore.openCursor().onsuccess = function (event) {
|
|
||||||
var cursor = event.target.result;
|
|
||||||
|
|
||||||
|
|
||||||
if (cursor) {
|
|
||||||
var data = "<tr><td>" + cursor.key + "</td><td>" + cursor.value.name + "</td><td>" + cursor.value.age + "</td><td>" + cursor.value.email + "</td><td><input type ='button' onclick = read('" + cursor.key + "') value='Read'/><input type ='button' onclick = remove('" + cursor.key + "') value='Remove'/></td></tr>";
|
|
||||||
$("#tblData tbody").append(data);
|
|
||||||
cursor.continue();
|
|
||||||
}
|
|
||||||
//else {
|
|
||||||
// alert("No more entries!");
|
|
||||||
//}
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function add() {
|
|
||||||
var request = db.transaction(["employee"], "readwrite")
|
|
||||||
.objectStore("employee")
|
|
||||||
.add({ id: $("#txtID").val(), name: $("#txtName").val(), age: $("#txtAge").val(), email: $("#txtEmail").val() });
|
|
||||||
|
|
||||||
request.onsuccess = function (event) {
|
|
||||||
alert("record has been added to your database.");
|
|
||||||
clear();
|
|
||||||
readAll();
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onerror = function (event) {
|
|
||||||
alert("Unable to add data\r\n record is aready exist in your database! ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function update() {
|
|
||||||
|
|
||||||
|
|
||||||
readyByID($("#txtID").val());
|
|
||||||
datas.result.name = $("#txtName").val();
|
|
||||||
datas.result.age = $("#txtAge").val();
|
|
||||||
datas.result.email = $("#txtEmail").val();
|
|
||||||
|
|
||||||
//console.log(datas.result)
|
|
||||||
var request = db.transaction(["employee"], "readwrite")
|
|
||||||
.objectStore("employee")
|
|
||||||
//.put({ id: $("#txtID").val(), name: $("#txtName").val(), age: $("#txtAge").val(), email: $("#txtEmail").val() });
|
|
||||||
.put(datas.result);
|
|
||||||
|
|
||||||
request.onsuccess = function (event) {
|
|
||||||
alert("record has been updated to your database.");
|
|
||||||
clear();
|
|
||||||
readAll();
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onerror = function (event) {
|
|
||||||
alert("Unable to add data\r\n this record aready exist in your database! ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function readyByID(id) {
|
|
||||||
var transaction = db.transaction(["employee"]);
|
|
||||||
var objectStore = transaction.objectStore("employee");
|
|
||||||
var request = objectStore.get(id);
|
|
||||||
|
|
||||||
request.onerror = function (event) {
|
|
||||||
alert("Unable to retrieve daa from database!");
|
|
||||||
};
|
|
||||||
|
|
||||||
request.onsuccess = function (event) {
|
|
||||||
// Do something with the request.result!
|
|
||||||
//debugger;
|
|
||||||
if (request.result) {
|
|
||||||
datas = request;
|
|
||||||
//return datas
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
alert("given id couldn't be found in your database!");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function remove(id) {
|
|
||||||
var request = db.transaction(["employee"], "readwrite")
|
|
||||||
.objectStore("employee")
|
|
||||||
.delete(id);
|
|
||||||
|
|
||||||
request.onsuccess = function (event) {
|
|
||||||
alert("record entry has been removed from your database.");
|
|
||||||
clear();
|
|
||||||
readAll();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
1
js/Network Graph/NetworkGraph.min.js
vendored
1
js/Network Graph/NetworkGraph.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -1,125 +0,0 @@
|
|||||||
/* canvas-toBlob.js
|
|
||||||
* A canvas.toBlob() implementation.
|
|
||||||
* 2016-05-26
|
|
||||||
*
|
|
||||||
* By Eli Grey, http://eligrey.com and Devin Samarin, https://github.com/eboyjr
|
|
||||||
* License: MIT
|
|
||||||
* See https://github.com/eligrey/canvas-toBlob.js/blob/master/LICENSE.md
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*global self */
|
|
||||||
/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true,
|
|
||||||
plusplus: true */
|
|
||||||
|
|
||||||
/*! @source http://purl.eligrey.com/github/canvas-toBlob.js/blob/master/canvas-toBlob.js */
|
|
||||||
|
|
||||||
(function (view) {
|
|
||||||
"use strict";
|
|
||||||
var
|
|
||||||
Uint8Array = view.Uint8Array
|
|
||||||
, HTMLCanvasElement = view.HTMLCanvasElement
|
|
||||||
, canvas_proto = HTMLCanvasElement && HTMLCanvasElement.prototype
|
|
||||||
, is_base64_regex = /\s*;\s*base64\s*(?:;|$)/i
|
|
||||||
, to_data_url = "toDataURL"
|
|
||||||
, base64_ranks
|
|
||||||
, decode_base64 = function (base64) {
|
|
||||||
var
|
|
||||||
len = base64.length
|
|
||||||
, buffer = new Uint8Array(len / 4 * 3 | 0)
|
|
||||||
, i = 0
|
|
||||||
, outptr = 0
|
|
||||||
, last = [0, 0]
|
|
||||||
, state = 0
|
|
||||||
, save = 0
|
|
||||||
, rank
|
|
||||||
, code
|
|
||||||
, undef
|
|
||||||
;
|
|
||||||
while (len--) {
|
|
||||||
code = base64.charCodeAt(i++);
|
|
||||||
rank = base64_ranks[code - 43];
|
|
||||||
if (rank !== 255 && rank !== undef) {
|
|
||||||
last[1] = last[0];
|
|
||||||
last[0] = code;
|
|
||||||
save = (save << 6) | rank;
|
|
||||||
state++;
|
|
||||||
if (state === 4) {
|
|
||||||
buffer[outptr++] = save >>> 16;
|
|
||||||
if (last[1] !== 61 /* padding character */) {
|
|
||||||
buffer[outptr++] = save >>> 8;
|
|
||||||
}
|
|
||||||
if (last[0] !== 61 /* padding character */) {
|
|
||||||
buffer[outptr++] = save;
|
|
||||||
}
|
|
||||||
state = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 2/3 chance there's going to be some null bytes at the end, but that
|
|
||||||
// doesn't really matter with most image formats.
|
|
||||||
// If it somehow matters for you, truncate the buffer up outptr.
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
;
|
|
||||||
if (Uint8Array) {
|
|
||||||
base64_ranks = new Uint8Array([
|
|
||||||
62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1
|
|
||||||
, -1, -1, 0, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
|
|
||||||
, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25
|
|
||||||
, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35
|
|
||||||
, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
if (HTMLCanvasElement && (!canvas_proto.toBlob || !canvas_proto.toBlobHD)) {
|
|
||||||
if (!canvas_proto.toBlob)
|
|
||||||
canvas_proto.toBlob = function (callback, type /*, ...args*/) {
|
|
||||||
if (!type) {
|
|
||||||
type = "image/png";
|
|
||||||
} if (this.mozGetAsFile) {
|
|
||||||
callback(this.mozGetAsFile("canvas", type));
|
|
||||||
return;
|
|
||||||
} if (this.msToBlob && /^\s*image\/png\s*(?:$|;)/i.test(type)) {
|
|
||||||
callback(this.msToBlob());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var
|
|
||||||
args = Array.prototype.slice.call(arguments, 1)
|
|
||||||
, dataURI = this[to_data_url].apply(this, args)
|
|
||||||
, header_end = dataURI.indexOf(",")
|
|
||||||
, data = dataURI.substring(header_end + 1)
|
|
||||||
, is_base64 = is_base64_regex.test(dataURI.substring(0, header_end))
|
|
||||||
, blob
|
|
||||||
;
|
|
||||||
if (Blob.fake) {
|
|
||||||
// no reason to decode a data: URI that's just going to become a data URI again
|
|
||||||
blob = new Blob
|
|
||||||
if (is_base64) {
|
|
||||||
blob.encoding = "base64";
|
|
||||||
} else {
|
|
||||||
blob.encoding = "URI";
|
|
||||||
}
|
|
||||||
blob.data = data;
|
|
||||||
blob.size = data.length;
|
|
||||||
} else if (Uint8Array) {
|
|
||||||
if (is_base64) {
|
|
||||||
blob = new Blob([decode_base64(data)], { type: type });
|
|
||||||
} else {
|
|
||||||
blob = new Blob([decodeURIComponent(data)], { type: type });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
callback(blob);
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!canvas_proto.toBlobHD && canvas_proto.toDataURLHD) {
|
|
||||||
canvas_proto.toBlobHD = function () {
|
|
||||||
to_data_url = "toDataURLHD";
|
|
||||||
var blob = this.toBlob();
|
|
||||||
to_data_url = "toDataURL";
|
|
||||||
return blob;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
canvas_proto.toBlobHD = canvas_proto.toBlob;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}(typeof self !== "undefined" && self || typeof window !== "undefined" && window || this.content || this));
|
|
||||||
13
js/Network Graph/jquery.js
vendored
13
js/Network Graph/jquery.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
8829
js/jquery-2.0.3.js
vendored
8829
js/jquery-2.0.3.js
vendored
File diff suppressed because it is too large
Load Diff
16
js/jquery.min.js
vendored
16
js/jquery.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,519 +0,0 @@
|
|||||||
let attenuator = document.querySelector('#attenuator');
|
|
||||||
let roadm = document.querySelector('#roadm');
|
|
||||||
let ILA = document.querySelector('#ILA');
|
|
||||||
let amplifier = document.querySelector('#amplifier');
|
|
||||||
let dualfiber = document.querySelector('#dualfiber');
|
|
||||||
let service = document.querySelector('#service');
|
|
||||||
let transceiver = document.querySelector('#transceiver');
|
|
||||||
let singlefiber = document.querySelector('#singlefiber');
|
|
||||||
let singlepatch = document.querySelector('#singlepatch');
|
|
||||||
let dualpatch = document.querySelector('#dualpatch');
|
|
||||||
let ramanamp = document.querySelector('#ramanamp');
|
|
||||||
|
|
||||||
|
|
||||||
let drawerclose = document.getElementById('drawer-close')
|
|
||||||
|
|
||||||
function openDrawer(node) {
|
|
||||||
switch (node) {
|
|
||||||
case 'attenuator':
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
attenuator.classList.add('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'roadm':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
roadm.classList.add('d-visible');
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'ILA':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.add('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'amplifier':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.add('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'dualfiber':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.add('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'create':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'transceiver':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.add('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'singlefiber':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.add('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'dualpatch':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
dualpatch.classList.add('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'singlepatch':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.add('d-visible');
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'service':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.add('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
break;
|
|
||||||
case 'ramanamp':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.add("drawerleft")
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
ramanamp.classList.add('d-visible');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function closeDrawer(node) {
|
|
||||||
switch (node) {
|
|
||||||
case 'attenuator':
|
|
||||||
attenuator.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'roadm':
|
|
||||||
roadm.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'ILA':
|
|
||||||
ILA.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'amplifier':
|
|
||||||
amplifier.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'create':
|
|
||||||
create.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'singlefiber':
|
|
||||||
singlefiber.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'transceiver':
|
|
||||||
transceiver.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'singlepatch':
|
|
||||||
singlepatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'dualpatch':
|
|
||||||
dualpatch.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'dualfiber':
|
|
||||||
dualfiber.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
break;
|
|
||||||
case 'service':
|
|
||||||
service.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
case 'ramanamp':
|
|
||||||
ramanamp.classList.remove('d-visible');
|
|
||||||
// drawerclose.classList.remove("drawerleft")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//sidebar
|
|
||||||
|
|
||||||
// let sidebarleft = document.querySelector('#sidebar');
|
|
||||||
// let buttonleft = document.getElementById('lefttoggle');
|
|
||||||
// buttonleft.addEventListener("click",function(){
|
|
||||||
// sidebarleft.classList.toggle("d-left-none")
|
|
||||||
// buttonleft.classList.toggle('ml--btn')
|
|
||||||
// })
|
|
||||||
|
|
||||||
|
|
||||||
var tabcontent = document.querySelector(".stp-tab");
|
|
||||||
var arrowbtn1 = document.querySelector("#toggle-arrow-1");
|
|
||||||
var arrowbtn2 = document.querySelector("#toggle-arrow-2");
|
|
||||||
var arrowbtn3 = document.querySelector("#toggle-arrow-3");
|
|
||||||
var arrowbtn4 = document.querySelector("#toggle-arrow-4");
|
|
||||||
//var arrowbtn5 = document.querySelector("#toggle-arrow-5");
|
|
||||||
var sidebartext = document.querySelectorAll(".sidebar-text");
|
|
||||||
var sidebartext1 = document.querySelectorAll(".sidebar-text1");
|
|
||||||
var sidebartext2 = document.querySelectorAll(".sidebar-text2");
|
|
||||||
var sidebartext3 = document.querySelectorAll(".sidebar-text3");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
arrowbtn2.addEventListener("click", function () {
|
|
||||||
tabcontent.classList.toggle('left-59')
|
|
||||||
for (var i = 0; i < sidebartext1.length; i++) {
|
|
||||||
sidebartext1[i].classList.toggle("d-none")
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
arrowbtn3.addEventListener("click", function () {
|
|
||||||
tabcontent.classList.toggle('left-59')
|
|
||||||
for (var i = 0; i < sidebartext2.length; i++) {
|
|
||||||
sidebartext2[i].classList.toggle("d-none")
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
arrowbtn4.addEventListener("click", function () {
|
|
||||||
tabcontent.classList.toggle('left-59')
|
|
||||||
for (var i = 0; i < sidebartext3.length; i++) {
|
|
||||||
sidebartext3[i].classList.toggle("d-none")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
//arrowbtn5.addEventListener("click", function () {
|
|
||||||
// tabcontent.classList.toggle('left-59')
|
|
||||||
// for (var i = 0; i < sidebartext4.length; i++) {
|
|
||||||
// sidebartext4[i].classList.toggle("d-none")
|
|
||||||
// }
|
|
||||||
//})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function stepColor(index) {
|
|
||||||
|
|
||||||
showMenu = 0;
|
|
||||||
modeHighLight();
|
|
||||||
|
|
||||||
switch (index) {
|
|
||||||
case 1:
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
|
|
||||||
currentStepper = "stepCreateTopology";
|
|
||||||
showMenu = 1;
|
|
||||||
//let prev = document.querySelector("#step2").previousElementSibling;
|
|
||||||
//if (prev.id === "step1") {
|
|
||||||
// let step1 = document.getElementById("step1").childNodes;
|
|
||||||
// step1[1].classList.add("tab-nav-completed");
|
|
||||||
// step1[1].classList.add("text-tab-completed")
|
|
||||||
//}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
currentStepper = "stepAddService";
|
|
||||||
showMenu = 2;
|
|
||||||
//let prev1 = document.querySelector("#step3").previousElementSibling;
|
|
||||||
//if (prev1.id === "step2") {
|
|
||||||
// let step1 = document.getElementById("step2").childNodes;
|
|
||||||
// step1[1].classList.add("tab-nav-completed");
|
|
||||||
// step1[1].classList.add("text-tab-completed")
|
|
||||||
//}
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
currentStepper = "stepSaveNetwork";
|
|
||||||
//let prev2 = document.querySelector("#step4").previousElementSibling;
|
|
||||||
//if (prev2.id === "step3") {
|
|
||||||
// let step1 = document.getElementById("step3").childNodes;
|
|
||||||
// step1[1].classList.add("tab-nav-completed");
|
|
||||||
// step1[1].classList.add("text-tab-completed")
|
|
||||||
//}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var btnAddRoadm = "#btnAddRoadm";
|
|
||||||
var btnAddFused = "#btnAddFused";
|
|
||||||
var btnAddILA = "#btnAddILA";
|
|
||||||
var btnAddAmplifier = "#btnAddAmplifier";
|
|
||||||
var btnAddTransceiver = "#btnAddTransceiver";
|
|
||||||
var btnAddDualFiber = "#btnAddDualFiber";
|
|
||||||
var btnAddSingleFiber = "#btnAddSingleFiber";
|
|
||||||
var btnServiceActive = "#btnServiceActive";
|
|
||||||
var btnAddSinglePatch = "#btnAddSinglePatch";
|
|
||||||
var btnAddDualPatch = "#btnAddDualPatch";
|
|
||||||
var btnAddRamAmp = "#btnAddRamAmp";
|
|
||||||
function modeHighLight(node) {
|
|
||||||
disableFiberService();
|
|
||||||
showHideDrawerandMenu();
|
|
||||||
switch (node) {
|
|
||||||
case 'Roadm':
|
|
||||||
$(btnAddRoadm).addClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'ILA':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).addClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'amplifier':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).addClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'fused':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).addClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'transceiver':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).addClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'dualfiber':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).addClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'singlefiber':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).addClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'singlepatch':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).addClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'dualpatch':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).addClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'ramanamp':
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).addClass('highlight');
|
|
||||||
break;
|
|
||||||
case 'service':
|
|
||||||
$(btnServiceActive).addClass('highlight');
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$(btnAddRoadm).removeClass('highlight');
|
|
||||||
$(btnAddFused).removeClass('highlight');
|
|
||||||
$(btnAddILA).removeClass('highlight');
|
|
||||||
$(btnAddAmplifier).removeClass('highlight');
|
|
||||||
$(btnAddTransceiver).removeClass('highlight');
|
|
||||||
$(btnAddDualFiber).removeClass('highlight');
|
|
||||||
$(btnAddSingleFiber).removeClass('highlight');
|
|
||||||
$(btnServiceActive).removeClass('highlight');
|
|
||||||
$(btnAddSinglePatch).removeClass('highlight');
|
|
||||||
$(btnAddDualPatch).removeClass('highlight');
|
|
||||||
$(btnAddRamAmp).removeClass('highlight');
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function showHideDrawerandMenu() {
|
|
||||||
document.getElementById("roadmMenu").style.display = "none";
|
|
||||||
document.getElementById("attenuatorMenu").style.display = "none";
|
|
||||||
document.getElementById("ILAMenu").style.display = "none";
|
|
||||||
document.getElementById("amplifierMenu").style.display = "none";
|
|
||||||
document.getElementById("transceiverMenu").style.display = "none";
|
|
||||||
document.getElementById("serviceMenu").style.display = "none";
|
|
||||||
document.getElementById("singleFiberMenu").style.display = "none";
|
|
||||||
document.getElementById("dualFiberMenu").style.display = "none";
|
|
||||||
document.getElementById("singlePatchMenu").style.display = "none";
|
|
||||||
document.getElementById("dualPatchMenu").style.display = "none";
|
|
||||||
document.getElementById("ramanAmpMenu").style.display = "none";
|
|
||||||
|
|
||||||
closeDrawer('roadm');
|
|
||||||
closeDrawer('attenuator');
|
|
||||||
closeDrawer('ILA');
|
|
||||||
closeDrawer('amplifier');
|
|
||||||
closeDrawer('transceiver');
|
|
||||||
closeDrawer('service');
|
|
||||||
closeDrawer('dualfiber');
|
|
||||||
closeDrawer('singlefiber');
|
|
||||||
closeDrawer('singlepatch');
|
|
||||||
closeDrawer('dualpatch');
|
|
||||||
closeDrawer('ramanamp');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
File diff suppressed because one or more lines are too long
49
js/vis-network.min.js
vendored
49
js/vis-network.min.js
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user