@enervance/insight-cim-model 0.0.12 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (770) hide show
  1. package/dist/config/westnetz-integral7/integral7-load.config.js.map +1 -1
  2. package/dist/config/westnetz-neplan/neplan-load.config.js +6 -1
  3. package/dist/config/westnetz-neplan/neplan-load.config.js.map +1 -1
  4. package/dist/constants/cim-class-definition.js +19 -0
  5. package/dist/constants/cim-class-definition.js.map +1 -1
  6. package/dist/constants/cim-class-names.d.ts +10 -0
  7. package/dist/constants/cim-class-names.js +10 -0
  8. package/dist/constants/cim-class-names.js.map +1 -1
  9. package/dist/constants/init-data/ASSET_HEALTH_EVENTS.js +10 -0
  10. package/dist/constants/init-data/ASSET_HEALTH_EVENTS.js.map +1 -1
  11. package/dist/constants/init-data/PSR_TYPES.js +17 -0
  12. package/dist/constants/init-data/PSR_TYPES.js.map +1 -1
  13. package/dist/converter/cgmes-validator.d.ts +5 -0
  14. package/dist/converter/cgmes-validator.js +23 -0
  15. package/dist/converter/cgmes-validator.js.map +1 -0
  16. package/dist/converter/integral7/ConverterIntegral7.d.ts +26 -19
  17. package/dist/converter/integral7/ConverterIntegral7.js +595 -272
  18. package/dist/converter/integral7/ConverterIntegral7.js.map +1 -1
  19. package/dist/converter/integral7/model/integral/BaseClass.d.ts +1 -0
  20. package/dist/converter/integral7/model/integral/BaseClass.js.map +1 -1
  21. package/dist/converter/integral7/model/interfaces.d.ts +36 -0
  22. package/dist/converter/integral7/sql/integral.sql.d.ts +10 -0
  23. package/dist/converter/integral7/sql/integral.sql.js +25 -1
  24. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  25. package/dist/converter/integral7/utils.d.ts +3 -0
  26. package/dist/converter/integral7/utils.js +81 -17
  27. package/dist/converter/integral7/utils.js.map +1 -1
  28. package/dist/etl-neplan/etl-neplan-csv.d.ts +37 -0
  29. package/dist/etl-neplan/etl-neplan-csv.js +243 -0
  30. package/dist/etl-neplan/etl-neplan-csv.js.map +1 -0
  31. package/dist/etl-neplan/etl-neplan-geo.d.ts +12 -0
  32. package/dist/etl-neplan/etl-neplan-geo.js +74 -0
  33. package/dist/etl-neplan/etl-neplan-geo.js.map +1 -0
  34. package/dist/etl-neplan/neplan-contingency-analysis.js +0 -20
  35. package/dist/etl-neplan/neplan-contingency-analysis.js.map +1 -1
  36. package/dist/index.d.ts +8 -0
  37. package/dist/index.js +16 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/interfaces/default-values-config.d.ts +171 -0
  40. package/dist/interfaces/default-values-config.js +3 -0
  41. package/dist/interfaces/default-values-config.js.map +1 -0
  42. package/dist/interfaces/model/common/ILocation.d.ts +15 -0
  43. package/dist/interfaces/model/common/ILocation.js +3 -0
  44. package/dist/interfaces/model/common/ILocation.js.map +1 -0
  45. package/dist/interfaces/model/core/IIdentifiedObject.d.ts +3 -0
  46. package/dist/interfaces/model/wires/IACLineSegment.d.ts +10 -0
  47. package/dist/interfaces/model/wires/IConductor.d.ts +2 -1
  48. package/dist/model/assets/Asset.d.ts +12 -5
  49. package/dist/model/assets/Asset.js +86 -21
  50. package/dist/model/assets/Asset.js.map +1 -1
  51. package/dist/model/assets/LifecycleDate.d.ts +1 -0
  52. package/dist/model/assets/LifecycleDate.js +9 -1
  53. package/dist/model/assets/LifecycleDate.js.map +1 -1
  54. package/dist/model/common/CoordinateSystem.d.ts +3 -1
  55. package/dist/model/common/CoordinateSystem.js +13 -1
  56. package/dist/model/common/CoordinateSystem.js.map +1 -1
  57. package/dist/model/common/Location.d.ts +5 -3
  58. package/dist/model/common/Location.js +17 -11
  59. package/dist/model/common/Location.js.map +1 -1
  60. package/dist/model/common/PositionPoint.d.ts +9 -3
  61. package/dist/model/common/PositionPoint.js +23 -1
  62. package/dist/model/common/PositionPoint.js.map +1 -1
  63. package/dist/model/common/Status.d.ts +2 -1
  64. package/dist/model/common/Status.js +9 -1
  65. package/dist/model/common/Status.js.map +1 -1
  66. package/dist/model/core/ACDCTerminal.d.ts +2 -0
  67. package/dist/model/core/ACDCTerminal.js +9 -1
  68. package/dist/model/core/ACDCTerminal.js.map +1 -1
  69. package/dist/model/core/BaseVoltage.js.map +1 -1
  70. package/dist/model/core/Bay.js.map +1 -1
  71. package/dist/model/core/GeographicalRegion.js.map +1 -1
  72. package/dist/model/core/IdentifiedObject.d.ts +3 -1
  73. package/dist/model/core/IdentifiedObject.js +42 -21
  74. package/dist/model/core/IdentifiedObject.js.map +1 -1
  75. package/dist/model/core/PowerSystemResource.js.map +1 -1
  76. package/dist/model/core/SubGeographicalRegion.js.map +1 -1
  77. package/dist/model/core/Substation.d.ts +1 -0
  78. package/dist/model/core/Substation.js +3 -2
  79. package/dist/model/core/Substation.js.map +1 -1
  80. package/dist/model/core/Terminal.d.ts +3 -1
  81. package/dist/model/core/Terminal.js +14 -14
  82. package/dist/model/core/Terminal.js.map +1 -1
  83. package/dist/model/core/VoltageLevel.js +4 -2
  84. package/dist/model/core/VoltageLevel.js.map +1 -1
  85. package/dist/model/dc/ACDCConverter.d.ts +3 -0
  86. package/dist/model/dc/ACDCConverter.js +56 -14
  87. package/dist/model/dc/ACDCConverter.js.map +1 -1
  88. package/dist/model/dc/ACDCConverterDCTerminal.js +2 -6
  89. package/dist/model/dc/ACDCConverterDCTerminal.js.map +1 -1
  90. package/dist/model/dc/CsConverter.d.ts +2 -0
  91. package/dist/model/dc/CsConverter.js +45 -17
  92. package/dist/model/dc/CsConverter.js.map +1 -1
  93. package/dist/model/dc/DCConverterUnit.d.ts +2 -0
  94. package/dist/model/dc/DCConverterUnit.js +13 -7
  95. package/dist/model/dc/DCConverterUnit.js.map +1 -1
  96. package/dist/model/dc/DCLine.js.map +1 -1
  97. package/dist/model/dc/DCLineSegment.js +4 -8
  98. package/dist/model/dc/DCLineSegment.js.map +1 -1
  99. package/dist/model/dc/VsConverter.d.ts +2 -0
  100. package/dist/model/dc/VsConverter.js +53 -5
  101. package/dist/model/dc/VsConverter.js.map +1 -1
  102. package/dist/model/equivalents/EquivalentBranch.d.ts +2 -0
  103. package/dist/model/equivalents/EquivalentBranch.js +63 -0
  104. package/dist/model/equivalents/EquivalentBranch.js.map +1 -1
  105. package/dist/model/extensions/amprion/wires/AMPRIONSeriesCompensator.js +0 -3
  106. package/dist/model/extensions/amprion/wires/AMPRIONSeriesCompensator.js.map +1 -1
  107. package/dist/model/extensions/enervance/wires/EVACLineSegment.d.ts +16 -0
  108. package/{src/model/wires/PetersenCoil.ts → dist/model/extensions/enervance/wires/EVACLineSegment.js} +43 -47
  109. package/dist/model/extensions/enervance/wires/EVACLineSegment.js.map +1 -0
  110. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.d.ts +25 -0
  111. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js +126 -0
  112. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js.map +1 -0
  113. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js +4 -12
  114. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js.map +1 -1
  115. package/dist/model/extensions/neplan-westnetz/common/WNLocation.d.ts +18 -0
  116. package/dist/model/extensions/neplan-westnetz/common/WNLocation.js +82 -0
  117. package/dist/model/extensions/neplan-westnetz/common/WNLocation.js.map +1 -0
  118. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.d.ts +5 -0
  119. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +23 -0
  120. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  121. package/dist/model/generation/GeneratingUnit.d.ts +2 -0
  122. package/dist/model/generation/GeneratingUnit.js +23 -0
  123. package/dist/model/generation/GeneratingUnit.js.map +1 -1
  124. package/dist/model/generation/ThermalGeneratingUnit.js.map +1 -1
  125. package/dist/model/loadmodel/ConformLoad.d.ts +6 -1
  126. package/dist/model/loadmodel/ConformLoad.js +48 -3
  127. package/dist/model/loadmodel/ConformLoad.js.map +1 -1
  128. package/dist/model/loadmodel/ConformLoadGroup.d.ts +7 -0
  129. package/dist/model/loadmodel/ConformLoadGroup.js +48 -0
  130. package/dist/model/loadmodel/ConformLoadGroup.js.map +1 -0
  131. package/dist/model/loadmodel/EnergyArea.d.ts +3 -0
  132. package/dist/model/loadmodel/EnergyArea.js +8 -0
  133. package/dist/model/loadmodel/EnergyArea.js.map +1 -0
  134. package/dist/model/loadmodel/LoadArea.d.ts +10 -0
  135. package/dist/model/loadmodel/LoadArea.js +51 -0
  136. package/dist/model/loadmodel/LoadArea.js.map +1 -0
  137. package/dist/model/loadmodel/LoadGroup.d.ts +8 -0
  138. package/dist/model/loadmodel/LoadGroup.js +21 -0
  139. package/dist/model/loadmodel/LoadGroup.js.map +1 -0
  140. package/dist/model/loadmodel/SubLoadArea.d.ts +14 -0
  141. package/dist/model/loadmodel/SubLoadArea.js +63 -0
  142. package/dist/model/loadmodel/SubLoadArea.js.map +1 -0
  143. package/dist/model/model/Model.d.ts +40 -11
  144. package/dist/model/model/Model.js +100 -6
  145. package/dist/model/model/Model.js.map +1 -1
  146. package/dist/model/operationallimits/CurrentLimit.js.map +1 -1
  147. package/dist/model/operationallimits/OperationalLimitSet.js.map +1 -1
  148. package/dist/model/wires/ACLineSegment.d.ts +6 -2
  149. package/dist/model/wires/ACLineSegment.js +51 -44
  150. package/dist/model/wires/ACLineSegment.js.map +1 -1
  151. package/dist/model/wires/AsynchronousMachine.d.ts +2 -1
  152. package/dist/model/wires/AsynchronousMachine.js +34 -34
  153. package/dist/model/wires/AsynchronousMachine.js.map +1 -1
  154. package/dist/model/wires/BusbarSection.d.ts +2 -0
  155. package/dist/model/wires/BusbarSection.js +6 -0
  156. package/dist/model/wires/BusbarSection.js.map +1 -1
  157. package/dist/model/wires/Conductor.d.ts +4 -1
  158. package/dist/model/wires/Conductor.js +15 -6
  159. package/dist/model/wires/Conductor.js.map +1 -1
  160. package/dist/model/wires/EnergyConsumer.d.ts +6 -2
  161. package/dist/model/wires/EnergyConsumer.js +24 -3
  162. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  163. package/dist/model/wires/EnergySource.d.ts +8 -4
  164. package/dist/model/wires/EnergySource.js +37 -21
  165. package/dist/model/wires/EnergySource.js.map +1 -1
  166. package/dist/model/wires/ExternalNetworkInjection.d.ts +2 -0
  167. package/dist/model/wires/ExternalNetworkInjection.js +81 -1
  168. package/dist/model/wires/ExternalNetworkInjection.js.map +1 -1
  169. package/dist/model/wires/Line.js.map +1 -1
  170. package/dist/model/wires/LinearShuntCompensator.d.ts +15 -0
  171. package/dist/model/wires/LinearShuntCompensator.js +96 -0
  172. package/dist/model/wires/LinearShuntCompensator.js.map +1 -0
  173. package/dist/model/wires/PowerTransformer.js +0 -3
  174. package/dist/model/wires/PowerTransformer.js.map +1 -1
  175. package/dist/model/wires/PowerTransformerEnd.js.map +1 -1
  176. package/dist/model/wires/RatioTapChanger.js.map +1 -1
  177. package/dist/model/wires/RatioTapChangerTable.js.map +1 -1
  178. package/dist/model/wires/RegulatingCondEq.d.ts +3 -0
  179. package/dist/model/wires/RegulatingCondEq.js +17 -6
  180. package/dist/model/wires/RegulatingCondEq.js.map +1 -1
  181. package/dist/model/wires/RegulatingControl.d.ts +2 -0
  182. package/dist/model/wires/RegulatingControl.js +43 -7
  183. package/dist/model/wires/RegulatingControl.js.map +1 -1
  184. package/dist/model/wires/RotatingMachine.d.ts +2 -0
  185. package/dist/model/wires/RotatingMachine.js +17 -0
  186. package/dist/model/wires/RotatingMachine.js.map +1 -1
  187. package/dist/model/wires/SeriesCompensator.d.ts +2 -1
  188. package/dist/model/wires/SeriesCompensator.js +42 -42
  189. package/dist/model/wires/SeriesCompensator.js.map +1 -1
  190. package/dist/model/wires/ShuntCompensator.d.ts +17 -0
  191. package/dist/model/wires/ShuntCompensator.js +50 -0
  192. package/dist/model/wires/ShuntCompensator.js.map +1 -0
  193. package/dist/model/wires/SynchronousMachine.d.ts +2 -0
  194. package/dist/model/wires/SynchronousMachine.js +70 -5
  195. package/dist/model/wires/SynchronousMachine.js.map +1 -1
  196. package/dist/model/wires/TapChangerControl.js.map +1 -1
  197. package/dist/util/utils.d.ts +8 -1
  198. package/dist/util/utils.js +13 -38
  199. package/dist/util/utils.js.map +1 -1
  200. package/dist/util/xml/xml.serializer.d.ts +3 -1
  201. package/dist/util/xml/xml.serializer.js +46 -45
  202. package/dist/util/xml/xml.serializer.js.map +1 -1
  203. package/package.json +4 -1
  204. package/.nycrc +0 -28
  205. package/jasmine/jasmine_all.json +0 -13
  206. package/jasmine/jasmine_fuseki_interface.json +0 -13
  207. package/jasmine/jasmine_fuseki_psdm.json +0 -13
  208. package/jasmine/jasmine_integral_7.json +0 -13
  209. package/jasmine/jasmine_psdm.json +0 -13
  210. package/src/config/lew-sincal/lew-sincal-load.config.ts +0 -58
  211. package/src/config/power-system-datamodel/psdm-load.config.ts +0 -57
  212. package/src/config/westnetz-integral7/integral7-load.config.ts +0 -53
  213. package/src/config/westnetz-neplan/callbacks/cb-connectivitynode.ts +0 -159
  214. package/src/config/westnetz-neplan/callbacks/cb-psr.ts +0 -30
  215. package/src/config/westnetz-neplan/callbacks/cb-wnenergyconsumer.ts +0 -70
  216. package/src/config/westnetz-neplan/neplan-load.config.ts +0 -131
  217. package/src/config/westnetz-neplan/property-handler-westenergy.config.ts +0 -52
  218. package/src/constants/cim-class-definition.ts +0 -169
  219. package/src/constants/cim-class-names.ts +0 -118
  220. package/src/constants/cim-constants.ts +0 -5
  221. package/src/constants/init-data/ASSET_HEALTH_EVENTS.ts +0 -45
  222. package/src/constants/init-data/ASSSET_OWNER.ts +0 -11
  223. package/src/constants/init-data/JENA_SPARQL.ts +0 -328
  224. package/src/constants/init-data/PSR_TYPES.ts +0 -75
  225. package/src/constants/init-data/xml/AssetHealtEvent.xml +0 -45
  226. package/src/constants/init-data/xml/AssetOwner.xml +0 -11
  227. package/src/constants/init-data/xml/PsrType.xml +0 -80
  228. package/src/constants/rdf-xml.ts +0 -52
  229. package/src/converter/PSDM/ConverterPowerSystemDataModel.ts +0 -546
  230. package/src/converter/PSDM/model/FixedFeedIn.ts +0 -28
  231. package/src/converter/PSDM/model/Line.ts +0 -39
  232. package/src/converter/PSDM/model/LineType.ts +0 -29
  233. package/src/converter/PSDM/model/Load.ts +0 -38
  234. package/src/converter/PSDM/model/Node.ts +0 -16
  235. package/src/converter/PSDM/model/TimeSeriesMapping.ts +0 -13
  236. package/src/converter/PSDM/model/Transformer.ts +0 -34
  237. package/src/converter/PSDM/model/TransformerType.ts +0 -49
  238. package/src/converter/PSDM/model/geo/Crs.ts +0 -4
  239. package/src/converter/PSDM/model/geo/GeoPosition.ts +0 -7
  240. package/src/converter/integral7/ConverterIntegral7.ts +0 -3916
  241. package/src/converter/integral7/config/db-config.ts +0 -13
  242. package/src/converter/integral7/config/generation-unit-fuel-types.ts +0 -51
  243. package/src/converter/integral7/config/integral-prefix.ts +0 -20
  244. package/src/converter/integral7/model/integral/BaseClass.ts +0 -28
  245. package/src/converter/integral7/model/integral/BaseClassNsg.ts +0 -21
  246. package/src/converter/integral7/model/integral/Hgueleitung.ts +0 -12
  247. package/src/converter/integral7/model/integral/KnotenSo.ts +0 -41
  248. package/src/converter/integral7/model/integral/KnotenSoNsg.ts +0 -24
  249. package/src/converter/integral7/model/integral/Kopfstation.ts +0 -46
  250. package/src/converter/integral7/model/integral/Leitung.ts +0 -73
  251. package/src/converter/integral7/model/integral/LeitungNsg.ts +0 -46
  252. package/src/converter/integral7/model/integral/Point.ts +0 -14
  253. package/src/converter/integral7/model/integral/Schaltanlage.ts +0 -151
  254. package/src/converter/integral7/model/integral/SchaltanlageNSG.ts +0 -30
  255. package/src/converter/integral7/model/integral/Schaltanlagenabschnitt.ts +0 -44
  256. package/src/converter/integral7/model/integral/SchaltanlagenabschnittNsg.ts +0 -27
  257. package/src/converter/integral7/model/integral/Schaltfeld.ts +0 -116
  258. package/src/converter/integral7/model/integral/SchaltfeldNsg.ts +0 -35
  259. package/src/converter/integral7/model/integral/Standort.ts +0 -53
  260. package/src/converter/integral7/model/integral/StandortNsg.ts +0 -24
  261. package/src/converter/integral7/model/integral/Trafo2w.ts +0 -22
  262. package/src/converter/integral7/model/integral/Trafo2wNsg.ts +0 -13
  263. package/src/converter/integral7/model/interfaces.ts +0 -450
  264. package/src/converter/integral7/sql/integral.sql.ts +0 -345
  265. package/src/converter/integral7/utils-schema.ts +0 -50
  266. package/src/converter/integral7/utils-trafo3w.ts +0 -321
  267. package/src/converter/integral7/utils.ts +0 -693
  268. package/src/etl-neplan/etl-neplan-contingency-analysis.ts +0 -188
  269. package/src/etl-neplan/etl-neplan-feederline.ts +0 -229
  270. package/src/etl-neplan/etl-neplan.ts +0 -344
  271. package/src/etl-neplan/neplan-contingency-analysis.ts +0 -571
  272. package/src/graph/Types.ts +0 -7
  273. package/src/graph/connections/connection.ts +0 -29
  274. package/src/graph/edges/edge.ts +0 -27
  275. package/src/graph/graph-interfaces.ts +0 -21
  276. package/src/graph/graph-util.ts +0 -158
  277. package/src/graph/graph.ts +0 -84
  278. package/src/graph/nodes/node.ts +0 -43
  279. package/src/index.ts +0 -307
  280. package/src/interfaces/model/assets/IAsset.ts +0 -5
  281. package/src/interfaces/model/assets/IAssetContainer.ts +0 -5
  282. package/src/interfaces/model/assets/IFacility.ts +0 -5
  283. package/src/interfaces/model/common/IDocument.ts +0 -5
  284. package/src/interfaces/model/core/IACDCTerminal.ts +0 -8
  285. package/src/interfaces/model/core/IBaseVoltage.ts +0 -7
  286. package/src/interfaces/model/core/IConductingEquipment.ts +0 -16
  287. package/src/interfaces/model/core/IConnectivityNode.ts +0 -27
  288. package/src/interfaces/model/core/IConnectivityNodeContainer.ts +0 -11
  289. package/src/interfaces/model/core/IEquipment.ts +0 -11
  290. package/src/interfaces/model/core/IEquipmentContainer.ts +0 -12
  291. package/src/interfaces/model/core/IFeeder.ts +0 -21
  292. package/src/interfaces/model/core/IIdentifiedObject.ts +0 -108
  293. package/src/interfaces/model/core/IPowerSystemResource.ts +0 -3
  294. package/src/interfaces/model/core/ISubstation.ts +0 -8
  295. package/src/interfaces/model/core/ITerminal.ts +0 -57
  296. package/src/interfaces/model/core/IVoltageLevel.ts +0 -14
  297. package/src/interfaces/model/diagram/IDiagram.ts +0 -21
  298. package/src/interfaces/model/diagram/IDiagramObject.ts +0 -21
  299. package/src/interfaces/model/diagram/IDiagramObjectPoint.ts +0 -16
  300. package/src/interfaces/model/domain/IActivePower.ts +0 -3
  301. package/src/interfaces/model/domain/IAngleDegrees.ts +0 -3
  302. package/src/interfaces/model/domain/IApparentPower.ts +0 -3
  303. package/src/interfaces/model/domain/ICurrentFlow.ts +0 -3
  304. package/src/interfaces/model/domain/IDataType.ts +0 -9
  305. package/src/interfaces/model/domain/IReactivePower.ts +0 -3
  306. package/src/interfaces/model/domain/IVoltage.ts +0 -3
  307. package/src/interfaces/model/domain/UnitMultiplier.ts +0 -13
  308. package/src/interfaces/model/domain/UnitSymbol.ts +0 -30
  309. package/src/interfaces/model/enums/EnumShapeInfo.ts +0 -5
  310. package/src/interfaces/model/faults/IFault.ts +0 -11
  311. package/src/interfaces/model/model/IModel.ts +0 -91
  312. package/src/interfaces/model/operations/IOutage.ts +0 -23
  313. package/src/interfaces/model/operations/ISwitchingAction.ts +0 -9
  314. package/src/interfaces/model/operations/ISwitchingPlan.ts +0 -26
  315. package/src/interfaces/model/statevariables/ISvPowerFlow.ts +0 -20
  316. package/src/interfaces/model/statevariables/ISvVoltage.ts +0 -16
  317. package/src/interfaces/model/topology/ITopologicalIsland.ts +0 -11
  318. package/src/interfaces/model/topology/ITopologicalNode.ts +0 -24
  319. package/src/interfaces/model/wires/IACLineSegment.ts +0 -4
  320. package/src/interfaces/model/wires/IBusbarSection.ts +0 -4
  321. package/src/interfaces/model/wires/ICompositeSwitch.ts +0 -6
  322. package/src/interfaces/model/wires/IConductor.ts +0 -6
  323. package/src/interfaces/model/wires/IConnector.ts +0 -5
  324. package/src/interfaces/model/wires/IDisconnector.ts +0 -4
  325. package/src/interfaces/model/wires/IEnergyConsumer.ts +0 -7
  326. package/src/interfaces/model/wires/IEnergySource.ts +0 -20
  327. package/src/interfaces/model/wires/IExternalNetworkInjection.ts +0 -34
  328. package/src/interfaces/model/wires/ILoadBreakSwitch.ts +0 -4
  329. package/src/interfaces/model/wires/IPowerTransformer.ts +0 -7
  330. package/src/interfaces/model/wires/IPowerTransformerEnd.ts +0 -10
  331. package/src/interfaces/model/wires/IProtectedSwitch.ts +0 -4
  332. package/src/interfaces/model/wires/IRegulatingCondEq.ts +0 -4
  333. package/src/interfaces/model/wires/ISwitch.ts +0 -11
  334. package/src/interfaces/model/wires/ITransformerEnd.ts +0 -14
  335. package/src/interfaces/observable/IObservable.ts +0 -6
  336. package/src/interfaces/observable/IObserver.ts +0 -3
  337. package/src/interfaces/persistence-interfaces.ts +0 -12
  338. package/src/interfaces/schema-settings/ShapeInfos.ts +0 -28
  339. package/src/model/assetinfo/AssetInfo.ts +0 -13
  340. package/src/model/assetinfo/CableInfo.ts +0 -8
  341. package/src/model/assetinfo/OverheadWireInfo.ts +0 -8
  342. package/src/model/assetinfo/PowerTransformer2WInfo.ts +0 -13
  343. package/src/model/assetinfo/PowerTransformer3WInfo.ts +0 -18
  344. package/src/model/assetinfo/PowerTransformerInfo.ts +0 -14
  345. package/src/model/assetinfo/TapChangerInfo.ts +0 -60
  346. package/src/model/assetinfo/TransformerEndInfo.ts +0 -38
  347. package/src/model/assetinfo/WireInfo.ts +0 -22
  348. package/src/model/assets/AggregateScore.ts +0 -9
  349. package/src/model/assets/AnalyticScore.ts +0 -41
  350. package/src/model/assets/Asset.ts +0 -164
  351. package/src/model/assets/AssetContainer.ts +0 -11
  352. package/src/model/assets/AssetDeployment.ts +0 -122
  353. package/src/model/assets/AssetHealthEvent.ts +0 -73
  354. package/src/model/assets/AssetOrganisationRole.ts +0 -51
  355. package/src/model/assets/AssetOwner.ts +0 -54
  356. package/src/model/assets/DeploymentDate.ts +0 -20
  357. package/src/model/assets/DeploymentStateKind.ts +0 -7
  358. package/src/model/assets/Facility.ts +0 -107
  359. package/src/model/assets/FacilityKind.ts +0 -9
  360. package/src/model/assets/HealthScore.ts +0 -59
  361. package/src/model/assets/LifecycleDate.ts +0 -17
  362. package/src/model/assets/RiskScore.ts +0 -7
  363. package/src/model/assets/TransformerApplicationKind.ts +0 -6
  364. package/src/model/common/ActivityRecord.ts +0 -93
  365. package/src/model/common/CoordinateSystem.ts +0 -81
  366. package/src/model/common/Document.ts +0 -9
  367. package/src/model/common/Location.ts +0 -237
  368. package/src/model/common/OrganisationRole.ts +0 -7
  369. package/src/model/common/PositionPoint.ts +0 -121
  370. package/src/model/common/Status.ts +0 -11
  371. package/src/model/core/ACDCTerminal.ts +0 -63
  372. package/src/model/core/BaseVoltage.ts +0 -129
  373. package/src/model/core/Bay.ts +0 -178
  374. package/src/model/core/ConductingEquipment.ts +0 -182
  375. package/src/model/core/ConnectivityNode.ts +0 -417
  376. package/src/model/core/ConnectivityNodeContainer.ts +0 -26
  377. package/src/model/core/Curve.ts +0 -55
  378. package/src/model/core/CurveData.ts +0 -74
  379. package/src/model/core/CurveStyle.ts +0 -4
  380. package/src/model/core/Equipment.ts +0 -184
  381. package/src/model/core/EquipmentContainer.ts +0 -40
  382. package/src/model/core/Feeder.ts +0 -186
  383. package/src/model/core/GeographicalRegion.ts +0 -34
  384. package/src/model/core/IdentifiedObject.ts +0 -393
  385. package/src/model/core/PSRType.ts +0 -164
  386. package/src/model/core/PhaseCode.ts +0 -23
  387. package/src/model/core/PowerSystemResource.ts +0 -109
  388. package/src/model/core/SubGeographicalRegion.ts +0 -58
  389. package/src/model/core/Substation.ts +0 -290
  390. package/src/model/core/Terminal.ts +0 -422
  391. package/src/model/core/VoltageLevel.ts +0 -192
  392. package/src/model/dc/ACDCConverter.ts +0 -66
  393. package/src/model/dc/ACDCConverterDCTerminal.ts +0 -64
  394. package/src/model/dc/CsConverter.ts +0 -68
  395. package/src/model/dc/CsOperatingModeKind.ts +0 -4
  396. package/src/model/dc/CsPpccControlKind.ts +0 -5
  397. package/src/model/dc/DCBaseTerminal.ts +0 -30
  398. package/src/model/dc/DCConductingEquipment.ts +0 -8
  399. package/src/model/dc/DCConverterOperatingModeKind.ts +0 -6
  400. package/src/model/dc/DCConverterUnit.ts +0 -60
  401. package/src/model/dc/DCEquipmentContainer.ts +0 -8
  402. package/src/model/dc/DCLine.ts +0 -56
  403. package/src/model/dc/DCLineSegment.ts +0 -81
  404. package/src/model/dc/DCNode.ts +0 -49
  405. package/src/model/dc/DCPolarityKind.ts +0 -5
  406. package/src/model/dc/DCTerminal.ts +0 -45
  407. package/src/model/dc/VsConverter.ts +0 -48
  408. package/src/model/dc/VsPpccControlKind.ts +0 -7
  409. package/src/model/dc/VsQpccControlKind.ts +0 -5
  410. package/src/model/diagram/Diagram.ts +0 -136
  411. package/src/model/diagram/DiagramObject.ts +0 -338
  412. package/src/model/diagram/DiagramObjectPoint.ts +0 -196
  413. package/src/model/diagram/DiagramStyle.ts +0 -32
  414. package/src/model/diagram/OrientationKind.ts +0 -4
  415. package/src/model/domain/ActivePower.ts +0 -14
  416. package/src/model/domain/AngleDegrees.ts +0 -14
  417. package/src/model/domain/ApparentPower.ts +0 -14
  418. package/src/model/domain/Capacitance.ts +0 -15
  419. package/src/model/domain/CapacitancePerLength.ts +0 -15
  420. package/src/model/domain/ConductancePerLength.ts +0 -14
  421. package/src/model/domain/CurrentFlow.ts +0 -14
  422. package/src/model/domain/Reactance.ts +0 -15
  423. package/src/model/domain/ReactancePerLength.ts +0 -14
  424. package/src/model/domain/ReactivePower.ts +0 -14
  425. package/src/model/domain/Resistance.ts +0 -14
  426. package/src/model/domain/ResistancePerLength.ts +0 -14
  427. package/src/model/domain/UnitMultiplier.ts +0 -13
  428. package/src/model/domain/UnitSymbol.ts +0 -30
  429. package/src/model/domain/Voltage.ts +0 -14
  430. package/src/model/equivalents/EquivalentBranch.ts +0 -203
  431. package/src/model/equivalents/EquivalentEquipment.ts +0 -8
  432. package/src/model/extensions/amprion/core/AMPRIONBay.ts +0 -106
  433. package/src/model/extensions/amprion/core/AMPRIONConnectivityNode.ts +0 -51
  434. package/src/model/extensions/amprion/model/AmprionModel.ts +0 -92
  435. package/src/model/extensions/amprion/project/AMPRIONConstructionProject.ts +0 -174
  436. package/src/model/extensions/amprion/project/AMPRIONConstructionProjectBundle.ts +0 -89
  437. package/src/model/extensions/amprion/project/AMPRIONConstructionProjectPlan.ts +0 -64
  438. package/src/model/extensions/amprion/project/AMPRIONErpProject.ts +0 -21
  439. package/src/model/extensions/amprion/project/AMPRIONErpProjectPhase.ts +0 -89
  440. package/src/model/extensions/amprion/project/AMPRIONErpProjectStructure.ts +0 -36
  441. package/src/model/extensions/amprion/project/AMPRIONProjectPriorityKind.ts +0 -5
  442. package/src/model/extensions/amprion/wires/AMPRIONSeriesCompensator.ts +0 -53
  443. package/src/model/extensions/enervance/assets/EVImportanceScore.ts +0 -58
  444. package/src/model/extensions/enervance/core/EVTerminal.ts +0 -63
  445. package/src/model/extensions/enervance/operations/EVTerminalAction.ts +0 -144
  446. package/src/model/extensions/neplan-westnetz/assets/WNFacility.ts +0 -121
  447. package/src/model/extensions/neplan-westnetz/core/WNConnectivityNode.ts +0 -344
  448. package/src/model/extensions/neplan-westnetz/core/WNFeeder.ts +0 -133
  449. package/src/model/extensions/neplan-westnetz/faults/WNFaultConnectivityNode.ts +0 -113
  450. package/src/model/extensions/neplan-westnetz/operations/WNOutage.ts +0 -111
  451. package/src/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.ts +0 -451
  452. package/src/model/faults/EquipmentFault.ts +0 -9
  453. package/src/model/faults/Fault.ts +0 -41
  454. package/src/model/faults/LineFault.ts +0 -10
  455. package/src/model/generation/FossilFuel.ts +0 -53
  456. package/src/model/generation/FuelType.ts +0 -8
  457. package/src/model/generation/GeneratingUnit.ts +0 -157
  458. package/src/model/generation/GeneratorControlSource.ts +0 -6
  459. package/src/model/generation/HydroEnergyConversionKind.ts +0 -4
  460. package/src/model/generation/HydroGeneratingUnit.ts +0 -14
  461. package/src/model/generation/HydroPlantStorageKind.ts +0 -5
  462. package/src/model/generation/HydroPowerPlant.ts +0 -13
  463. package/src/model/generation/HydroPump.ts +0 -13
  464. package/src/model/generation/NuclearGeneratingUnit.ts +0 -8
  465. package/src/model/generation/SolarGeneratingUnit.ts +0 -8
  466. package/src/model/generation/ThermalGeneratingUnit.ts +0 -42
  467. package/src/model/generation/WindGenUnitKind.ts +0 -4
  468. package/src/model/generation/WindGeneratingUnit.ts +0 -84
  469. package/src/model/loadmodel/ConformLoad.ts +0 -34
  470. package/src/model/model/Model.ts +0 -1253
  471. package/src/model/operationallimits/CurrentLimit.ts +0 -92
  472. package/src/model/operationallimits/ENTSOEOperationalLimitType.ts +0 -5
  473. package/src/model/operationallimits/LimitTypeKind.ts +0 -9
  474. package/src/model/operationallimits/OperationalLimit.ts +0 -68
  475. package/src/model/operationallimits/OperationalLimitDirectionKind.ts +0 -5
  476. package/src/model/operationallimits/OperationalLimitSet.ts +0 -124
  477. package/src/model/operationallimits/OperationalLimitType.ts +0 -94
  478. package/src/model/operations/Outage.ts +0 -68
  479. package/src/model/operations/SwitchAction.ts +0 -121
  480. package/src/model/operations/SwitchActionKind.ts +0 -6
  481. package/src/model/operations/SwitchingAction.ts +0 -43
  482. package/src/model/operations/SwitchingPlan.ts +0 -141
  483. package/src/model/operations/UnplannedOutage.ts +0 -9
  484. package/src/model/statevariables/StateVariable.ts +0 -28
  485. package/src/model/statevariables/SvPowerFlow.ts +0 -75
  486. package/src/model/statevariables/SvStatus.ts +0 -51
  487. package/src/model/statevariables/SvTapStep.ts +0 -54
  488. package/src/model/statevariables/SvVoltage.ts +0 -74
  489. package/src/model/topology/TopologicalIsland.ts +0 -57
  490. package/src/model/topology/TopologicalNode.ts +0 -203
  491. package/src/model/wires/ACLineSegment.ts +0 -309
  492. package/src/model/wires/AsynchronousMachine.ts +0 -93
  493. package/src/model/wires/AsynchronousMachineKind.ts +0 -5
  494. package/src/model/wires/Breaker.ts +0 -82
  495. package/src/model/wires/BusbarSection.ts +0 -70
  496. package/src/model/wires/Clamp.ts +0 -33
  497. package/src/model/wires/CompositeSwitch.ts +0 -13
  498. package/src/model/wires/Conductor.ts +0 -55
  499. package/src/model/wires/Connector.ts +0 -16
  500. package/src/model/wires/Cut.ts +0 -7
  501. package/src/model/wires/Disconnector.ts +0 -120
  502. package/src/model/wires/EarthFaultCompensator.ts +0 -20
  503. package/src/model/wires/EnergyConsumer.ts +0 -255
  504. package/src/model/wires/EnergySource.ts +0 -337
  505. package/src/model/wires/ExternalNetworkInjection.ts +0 -276
  506. package/src/model/wires/Ground.ts +0 -40
  507. package/src/model/wires/GroundDisconnector.ts +0 -39
  508. package/src/model/wires/Jumper.ts +0 -8
  509. package/src/model/wires/Junction.ts +0 -57
  510. package/src/model/wires/Line.ts +0 -117
  511. package/src/model/wires/LoadBreakSwitch.ts +0 -107
  512. package/src/model/wires/PetersenCoilModeKind.ts +0 -5
  513. package/src/model/wires/Plant.ts +0 -12
  514. package/src/model/wires/PowerTransformer.ts +0 -231
  515. package/src/model/wires/PowerTransformerEnd.ts +0 -168
  516. package/src/model/wires/ProtectedSwitch.ts +0 -9
  517. package/src/model/wires/RatioTapChanger.ts +0 -96
  518. package/src/model/wires/RatioTapChangerTable.ts +0 -35
  519. package/src/model/wires/RatioTapChangerTablePoint.ts +0 -45
  520. package/src/model/wires/ReactiveCapabilityCurve.ts +0 -35
  521. package/src/model/wires/Recloser.ts +0 -32
  522. package/src/model/wires/RegulatingCondEq.ts +0 -67
  523. package/src/model/wires/RegulatingControl.ts +0 -217
  524. package/src/model/wires/RegulatingControlModeKind.ts +0 -11
  525. package/src/model/wires/RotatingMachine.ts +0 -172
  526. package/src/model/wires/SeriesCompensator.ts +0 -166
  527. package/src/model/wires/ShortCircuitRotorKind.ts +0 -6
  528. package/src/model/wires/Switch.ts +0 -230
  529. package/src/model/wires/SynchronousMachine.ts +0 -267
  530. package/src/model/wires/SynchronousMachineKind.ts +0 -9
  531. package/src/model/wires/SynchronousMachineOperatingMode.ts +0 -5
  532. package/src/model/wires/TapChanger.ts +0 -55
  533. package/src/model/wires/TapChangerControl.ts +0 -32
  534. package/src/model/wires/TapChangerTablePoint.ts +0 -41
  535. package/src/model/wires/TransformerControlMode.ts +0 -4
  536. package/src/model/wires/TransformerEnd.ts +0 -143
  537. package/src/model/wires/WindingConnection.ts +0 -9
  538. package/src/package.json +0 -16
  539. package/src/util/datatype-converter.ts +0 -48
  540. package/src/util/sparql/sparql-building-block.ts +0 -43
  541. package/src/util/sparql/sparql-utils.ts +0 -150
  542. package/src/util/util-create.ts +0 -148
  543. package/src/util/util-search.ts +0 -40
  544. package/src/util/util-topology.ts +0 -175
  545. package/src/util/utils.ts +0 -255
  546. package/src/util/xml/utils.parser.ts +0 -29
  547. package/src/util/xml/xml.parser.ts +0 -107
  548. package/src/util/xml/xml.serializer.ts +0 -245
  549. package/test/apache-jena-fuseki-interface/apache-jena-fuseki-neplan-1.tests.sp-ec.ts +0 -838
  550. package/test/apache-jena-fuseki-interface/apache-jena-fuseki-neplan-2.tests.sp-ec.ts +0 -216
  551. package/test/apache-jena-fuseki-interface/apache-jena-fuseki-neplan-katarina-ruhrau.tests.spec.ts +0 -223
  552. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/LICENSE +0 -617
  553. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/NOTICE +0 -216
  554. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/README +0 -62
  555. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/s-delete +0 -725
  556. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/s-get +0 -725
  557. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/s-head +0 -725
  558. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/s-post +0 -725
  559. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/s-put +0 -725
  560. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/s-query +0 -725
  561. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/s-update +0 -725
  562. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/s-update-form +0 -725
  563. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/bin/soh +0 -725
  564. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/fuseki +0 -512
  565. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/fuseki-backup +0 -34
  566. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/fuseki-server +0 -95
  567. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/fuseki-server.bat +0 -28
  568. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/fuseki-server.jar +0 -0
  569. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/fuseki.service +0 -59
  570. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/fuseki.war +0 -0
  571. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/config.ttl +0 -30
  572. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/configuration/test.ttl +0 -50
  573. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/shiro.ini +0 -38
  574. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/GOSP.dat +0 -0
  575. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/GOSP.idn +0 -0
  576. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/GPOS.dat +0 -0
  577. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/GPOS.idn +0 -0
  578. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/GSPO.dat +0 -0
  579. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/GSPO.idn +0 -0
  580. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/OSP.dat +0 -0
  581. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/OSP.idn +0 -0
  582. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/OSPG.dat +0 -0
  583. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/OSPG.idn +0 -0
  584. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/POS.dat +0 -0
  585. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/POS.idn +0 -0
  586. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/POSG.dat +0 -0
  587. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/POSG.idn +0 -0
  588. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/SPO.dat +0 -0
  589. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/SPO.idn +0 -0
  590. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/SPOG.dat +0 -0
  591. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/SPOG.idn +0 -0
  592. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/journal.jrnl +0 -0
  593. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/node2id.dat +0 -0
  594. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/node2id.idn +0 -0
  595. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/nodes.dat +0 -0
  596. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/prefix2id.dat +0 -0
  597. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/prefix2id.idn +0 -0
  598. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/prefixIdx.dat +0 -0
  599. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/prefixIdx.idn +0 -0
  600. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/prefixes.dat +0 -0
  601. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/system/tdb.cfg +0 -32
  602. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/templates/config-mem +0 -27
  603. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/templates/config-service +0 -23
  604. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/templates/config-tdb +0 -31
  605. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/templates/config-tdb-dir +0 -30
  606. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/templates/config-tdb-mem +0 -30
  607. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/templates/config-tdb2 +0 -31
  608. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/templates/config-tdb2-dir +0 -30
  609. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/run/templates/config-tdb2-mem +0 -30
  610. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/WEB-INF/web.xml +0 -332
  611. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/admin-logs.html +0 -73
  612. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/bootstrap-select.min.css +0 -7
  613. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/bootstrap-theme.css.map +0 -1
  614. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/bootstrap-theme.min.css +0 -7
  615. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/bootstrap.css.map +0 -1
  616. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/bootstrap.min.css +0 -7
  617. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/codemirror.css +0 -301
  618. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/codemirror.min.css +0 -1
  619. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/font-awesome.min.css +0 -4
  620. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/fui.css +0 -191
  621. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/jquery.dataTables.css +0 -220
  622. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/jquery.fileupload-noscript.css +0 -22
  623. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/jquery.fileupload-ui-noscript.css +0 -17
  624. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/jquery.fileupload-ui.css +0 -57
  625. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/jquery.fileupload.css +0 -36
  626. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/pivot.min.css +0 -1
  627. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/qonsole.css +0 -172
  628. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/yasqe.min.css +0 -1
  629. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/css/yasr.min.css +0 -1
  630. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/dataset.html +0 -247
  631. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/documentation.html +0 -83
  632. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/FontAwesome.otf +0 -0
  633. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/fontawesome-webfont.eot +0 -0
  634. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/fontawesome-webfont.svg +0 -504
  635. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/fontawesome-webfont.ttf +0 -0
  636. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/fontawesome-webfont.woff +0 -0
  637. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/glyphicons-halflings-regular.eot +0 -0
  638. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/glyphicons-halflings-regular.svg +0 -229
  639. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/glyphicons-halflings-regular.ttf +0 -0
  640. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/fonts/glyphicons-halflings-regular.woff +0 -0
  641. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/back_disabled.png +0 -0
  642. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/back_enabled.png +0 -0
  643. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/back_enabled_hover.png +0 -0
  644. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/favicon.ico +0 -0
  645. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/forward_disabled.png +0 -0
  646. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/forward_enabled.png +0 -0
  647. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/forward_enabled_hover.png +0 -0
  648. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/jena-logo-notext-small.png +0 -0
  649. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/sort_asc.png +0 -0
  650. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/sort_asc_disabled.png +0 -0
  651. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/sort_both.png +0 -0
  652. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/sort_desc.png +0 -0
  653. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/sort_desc_disabled.png +0 -0
  654. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/images/wait30.gif +0 -0
  655. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/index.html +0 -101
  656. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/controllers/dataset-controller.js +0 -69
  657. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/controllers/index-controller.js +0 -50
  658. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/controllers/manage-controller.js +0 -39
  659. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/controllers/query-controller.js +0 -72
  660. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/controllers/upload-controller.js +0 -42
  661. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/controllers/validation-controller.js +0 -38
  662. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/fui.js +0 -33
  663. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/main.dataset.js +0 -31
  664. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/main.index.js +0 -24
  665. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/main.manage.js +0 -27
  666. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/main.validation.js +0 -24
  667. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/models/dataset-stats.js +0 -102
  668. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/models/dataset.js +0 -262
  669. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/models/fuseki-server.js +0 -180
  670. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/models/task.js +0 -105
  671. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/models/validation-options.js +0 -85
  672. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/qonsole-config.js +0 -27
  673. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/services/ping-service.js +0 -54
  674. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/services/validation-service.js +0 -98
  675. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/dataset-edit.tpl +0 -58
  676. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/dataset-info.tpl +0 -40
  677. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/dataset-management.tpl +0 -62
  678. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/dataset-selection-list.tpl +0 -22
  679. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/dataset-selector.tpl +0 -15
  680. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/dataset-simple-create.tpl +0 -85
  681. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/dataset-stats.tpl +0 -14
  682. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/file-upload.tpl +0 -46
  683. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/templates/uploadable-file.tpl +0 -23
  684. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/util/page-utils.js +0 -33
  685. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/dataset-edit.js +0 -205
  686. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/dataset-info.js +0 -76
  687. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/dataset-management.js +0 -173
  688. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/dataset-selection-list.js +0 -58
  689. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/dataset-selector.js +0 -84
  690. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/dataset-simple-create.js +0 -102
  691. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/dataset-stats.js +0 -41
  692. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/datasets-dropdown-list.js +0 -43
  693. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/file-upload.js +0 -225
  694. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/tabbed-view-manager.js +0 -63
  695. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/uploadable-file.js +0 -39
  696. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/app/views/validation-options.js +0 -54
  697. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/common-config.js +0 -94
  698. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/addon/fold/brace-fold.js +0 -105
  699. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/addon/fold/comment-fold.js +0 -57
  700. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/addon/fold/foldcode.js +0 -145
  701. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/addon/fold/foldgutter.js +0 -134
  702. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/addon/fold/xml-fold.js +0 -181
  703. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/backbone-min.js +0 -2
  704. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/backbone.js +0 -1581
  705. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/backbone.marionette.js +0 -2385
  706. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/bootstrap-select.min.js +0 -8
  707. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/bootstrap.min.js +0 -6
  708. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/html5shiv.js +0 -8
  709. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery-1.10.2.js +0 -9789
  710. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery-1.10.2.min.js +0 -6
  711. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery-ui.min.js +0 -7
  712. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery.dataTables.min.js +0 -157
  713. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery.fileupload.js +0 -1426
  714. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery.fileupload.local.js +0 -1428
  715. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery.form.js +0 -1278
  716. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery.iframe-transport.js +0 -214
  717. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery.ui.widget.js +0 -530
  718. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/jquery.xdomainrequest.js +0 -90
  719. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/lib/codemirror.js +0 -7638
  720. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/mode/javascript/javascript.js +0 -683
  721. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/mode/sparql/sparql.js +0 -160
  722. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/mode/turtle/turtle.js +0 -160
  723. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/mode/xml/xml.js +0 -384
  724. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/pivot.js +0 -1363
  725. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/pivot.min.js +0 -2
  726. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/pivot.min.js.map +0 -1
  727. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/plugins/text.js +0 -386
  728. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/qonsole.js +0 -577
  729. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/refresh.sh +0 -21
  730. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/require.js +0 -2076
  731. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/require.min.js +0 -36
  732. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/respond.min.js +0 -6
  733. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/sprintf-0.7-beta1.js +0 -183
  734. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/underscore.js +0 -1276
  735. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/yasqe.min.js +0 -9
  736. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/yasqe.min.js.map +0 -1
  737. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/yasr.min.js +0 -8
  738. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/js/lib/yasr.min.js.map +0 -1
  739. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/manage.html +0 -110
  740. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/services.html +0 -76
  741. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/test/test-fuseki-config.ttl +0 -27
  742. package/test/apache-jena-fuseki-interface/data/apache-jena-fuseki-3.12.0/webapp/validate.html +0 -147
  743. package/test/apache-jena-fuseki-interface/data/json/PersistData.json +0 -111
  744. package/test/apache-jena-fuseki-interface/data/xml/AssetHealthEvent.xml +0 -45
  745. package/test/apache-jena-fuseki-interface/data/xml/AssetOwner.xml +0 -11
  746. package/test/apache-jena-fuseki-interface/data/xml/Outages.xml +0 -69
  747. package/test/apache-jena-fuseki-interface/data/xml/PsrType.xml +0 -80
  748. package/test/apache-jena-fuseki-interface/data/xml/finnentrop/Finnentrop_Rootnet_Area 1_EQ_V1.xml +0 -20867
  749. package/test/apache-jena-fuseki-interface/data/xml/finnentrop/Finnentrop_Rootnet_Area 1_SSH_V1.xml +0 -3784
  750. package/test/apache-jena-fuseki-interface/data/xml/neplan-eslohe/Eslohe_Rootnet_Area_1_EQ_V1.xml +0 -15755
  751. package/test/apache-jena-fuseki-interface/data/xml/neplan-eslohe/Eslohe_Rootnet_Area_1_EQ_V1_feeder_ext.xml +0 -54
  752. package/test/apache-jena-fuseki-interface/data/xml/neplan-eslohe/Eslohe_Rootnet_Area_1_SSH_V1.xml +0 -2796
  753. package/test/apache-jena-fuseki-interface/data/xml/ruhrau-katharina/Ruhrau_Katharina_Rootnet_Area 1_EQ_V1.xml +0 -42569
  754. package/test/apache-jena-fuseki-interface/data/xml/ruhrau-katharina/Ruhrau_Katharina_Rootnet_Area 1_SSH_V1.xml +0 -10108
  755. package/test/apache-jena-fuseki-interface/data/xml/ruhrau-katharina/Ruhrau_Katharina_Rootnet_Area 1_SV_V1.xml +0 -6234
  756. package/test/apache-jena-fuseki-interface/data/xml-rdf-data.xml +0 -84
  757. package/test/cim-xml-rdf-parser/cim-xml-rdf-parser.tests.spec.ts +0 -23
  758. package/test/cim-xml-rdf-parser/data/rdfxml_serialisation.xml +0 -192
  759. package/test/integral7-converter/integral7-converter.tests.spec.ts +0 -195
  760. package/test/power-system-data-model-converter/data/fixed_feed_in_input.csv +0 -72
  761. package/test/power-system-data-model-converter/data/line_input.csv +0 -1910
  762. package/test/power-system-data-model-converter/data/line_type_input.csv +0 -5
  763. package/test/power-system-data-model-converter/data/load_input.csv +0 -1829
  764. package/test/power-system-data-model-converter/data/node_input.csv +0 -2835
  765. package/test/power-system-data-model-converter/data/time_series_mapping.csv +0 -878
  766. package/test/power-system-data-model-converter/data/transformer_2_w_input.csv +0 -1047
  767. package/test/power-system-data-model-converter/data/transformer_2_w_type_input.csv +0 -5
  768. package/test/power-system-data-model-converter/power-system-data-model-converter.tests.spec.ts +0 -310
  769. package/tsconfig.json +0 -24
  770. package/webpack.config.js +0 -24
@@ -1,2 +0,0 @@
1
- (function(){var t,e=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},n=[].slice,r=function(t,e){return function(){return t.apply(e,arguments)}},o={}.hasOwnProperty;(t=function(t){return"object"==typeof exports&&"object"==typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){var a,i,s,u,l,c,p,h,d,f,g,m,v,b,A,y;return i=function(t,e,n){var r,o,a,i;for(t+="",o=t.split("."),a=o[0],i=o.length>1?n+o[1]:"",r=/(\d+)(\d{3})/;r.test(a);)a=a.replace(r,"$1"+e+"$2");return a+i},f=function(e){var n;return n={digitsAfterDecimal:2,scaler:1,thousandsSep:",",decimalSep:".",prefix:"",suffix:"",showZero:!1},e=t.extend(n,e),function(t){var n;return isNaN(t)||!isFinite(t)?"":0!==t||e.showZero?(n=i((e.scaler*t).toFixed(e.digitsAfterDecimal),e.thousandsSep,e.decimalSep),""+e.prefix+n+e.suffix):""}},v=f(),b=f({digitsAfterDecimal:0}),A=f({digitsAfterDecimal:1,scaler:100,suffix:"%"}),s={count:function(t){return null==t&&(t=b),function(){return function(){return{count:0,push:function(){return this.count++},value:function(){return this.count},format:t}}}},countUnique:function(t){return null==t&&(t=b),function(n){var r;return r=n[0],function(){return{uniq:[],push:function(t){var n;return n=t[r],e.call(this.uniq,n)<0?this.uniq.push(t[r]):void 0},value:function(){return this.uniq.length},format:t,numInputs:null!=r?0:1}}}},listUnique:function(t){return function(n){var r;return r=n[0],function(){return{uniq:[],push:function(t){var n;return n=t[r],e.call(this.uniq,n)<0?this.uniq.push(t[r]):void 0},value:function(){return this.uniq.join(t)},format:function(t){return t},numInputs:null!=r?0:1}}}},sum:function(t){return null==t&&(t=v),function(e){var n;return n=e[0],function(){return{sum:0,push:function(t){return isNaN(parseFloat(t[n]))?void 0:this.sum+=parseFloat(t[n])},value:function(){return this.sum},format:t,numInputs:null!=n?0:1}}}},average:function(t){return null==t&&(t=v),function(e){var n;return n=e[0],function(){return{sum:0,len:0,push:function(t){return isNaN(parseFloat(t[n]))?void 0:(this.sum+=parseFloat(t[n]),this.len++)},value:function(){return this.sum/this.len},format:t,numInputs:null!=n?0:1}}}},sumOverSum:function(t){return null==t&&(t=v),function(e){var n,r;return r=e[0],n=e[1],function(){return{sumNum:0,sumDenom:0,push:function(t){return isNaN(parseFloat(t[r]))||(this.sumNum+=parseFloat(t[r])),isNaN(parseFloat(t[n]))?void 0:this.sumDenom+=parseFloat(t[n])},value:function(){return this.sumNum/this.sumDenom},format:t,numInputs:null!=r&&null!=n?0:2}}}},sumOverSumBound80:function(t,e){return null==t&&(t=!0),null==e&&(e=v),function(n){var r,o;return o=n[0],r=n[1],function(){return{sumNum:0,sumDenom:0,push:function(t){return isNaN(parseFloat(t[o]))||(this.sumNum+=parseFloat(t[o])),isNaN(parseFloat(t[r]))?void 0:this.sumDenom+=parseFloat(t[r])},value:function(){var e;return e=t?1:-1,(.821187207574908/this.sumDenom+this.sumNum/this.sumDenom+1.2815515655446004*e*Math.sqrt(.410593603787454/(this.sumDenom*this.sumDenom)+this.sumNum*(1-this.sumNum/this.sumDenom)/(this.sumDenom*this.sumDenom)))/(1+1.642374415149816/this.sumDenom)},format:e,numInputs:null!=o&&null!=r?0:2}}}},fractionOf:function(t,e,r){return null==e&&(e="total"),null==r&&(r=A),function(){var o;return o=1<=arguments.length?n.call(arguments,0):[],function(n,a,i){return{selector:{total:[[],[]],row:[a,[]],col:[[],i]}[e],inner:t.apply(null,o)(n,a,i),push:function(t){return this.inner.push(t)},format:r,value:function(){return this.inner.value()/n.getAggregator.apply(n,this.selector).inner.value()},numInputs:t.apply(null,o)().numInputs}}}}},u=function(t){return{Count:t.count(b),"Count Unique Values":t.countUnique(b),"List Unique Values":t.listUnique(", "),Sum:t.sum(v),"Integer Sum":t.sum(b),Average:t.average(v),"Sum over Sum":t.sumOverSum(v),"80% Upper Bound":t.sumOverSumBound80(!0,v),"80% Lower Bound":t.sumOverSumBound80(!1,v),"Sum as Fraction of Total":t.fractionOf(t.sum(),"total",A),"Sum as Fraction of Rows":t.fractionOf(t.sum(),"row",A),"Sum as Fraction of Columns":t.fractionOf(t.sum(),"col",A),"Count as Fraction of Total":t.fractionOf(t.count(),"total",A),"Count as Fraction of Rows":t.fractionOf(t.count(),"row",A),"Count as Fraction of Columns":t.fractionOf(t.count(),"col",A)}}(s),m={Table:function(t,e){return g(t,e)},"Table Barchart":function(e,n){return t(g(e,n)).barchart()},Heatmap:function(e,n){return t(g(e,n)).heatmap()},"Row Heatmap":function(e,n){return t(g(e,n)).heatmap("rowheatmap")},"Col Heatmap":function(e,n){return t(g(e,n)).heatmap("colheatmap")}},p={en:{aggregators:u,renderers:m,localeStrings:{renderError:"An error occurred rendering the PivotTable results.",computeError:"An error occurred computing the PivotTable results.",uiRenderError:"An error occurred rendering the PivotTable UI.",selectAll:"Select All",selectNone:"Select None",tooMany:"(too many to list)",filterResults:"Filter results",totals:"Totals",vs:"vs",by:"by"}}},h=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],l=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],y=function(t){return("0"+t).substr(-2,2)},c={bin:function(t,e){return function(n){return n[t]-n[t]%e}},dateFormat:function(t,e,n,r){return null==n&&(n=h),null==r&&(r=l),function(o){var a;return a=new Date(Date.parse(o[t])),isNaN(a)?"":e.replace(/%(.)/g,function(t,e){switch(e){case"y":return a.getFullYear();case"m":return y(a.getMonth()+1);case"n":return n[a.getMonth()];case"d":return y(a.getDate());case"w":return r[a.getDay()];case"x":return a.getDay();case"H":return y(a.getHours());case"M":return y(a.getMinutes());case"S":return y(a.getSeconds());default:return"%"+e}})}}},d=function(){return function(t,e){var n,r,o,a,i,s,u;if(s=/(\d+)|(\D+)/g,i=/\d/,u=/^0/,"number"==typeof t||"number"==typeof e)return isNaN(t)?1:isNaN(e)?-1:t-e;if(n=String(t).toLowerCase(),o=String(e).toLowerCase(),n===o)return 0;if(!i.test(n)||!i.test(o))return n>o?1:-1;for(n=n.match(s),o=o.match(s);n.length&&o.length;)if(r=n.shift(),a=o.shift(),r!==a)return i.test(r)&&i.test(a)?r.replace(u,".0")-a.replace(u,".0"):r>a?1:-1;return n.length-o.length}}(this),t.pivotUtilities={aggregatorTemplates:s,aggregators:u,renderers:m,derivers:c,locales:p,naturalSort:d,numberFormat:f},a=function(){function e(t,n){this.getAggregator=r(this.getAggregator,this),this.getRowKeys=r(this.getRowKeys,this),this.getColKeys=r(this.getColKeys,this),this.sortKeys=r(this.sortKeys,this),this.arrSort=r(this.arrSort,this),this.natSort=r(this.natSort,this),this.aggregator=n.aggregator,this.aggregatorName=n.aggregatorName,this.colAttrs=n.cols,this.rowAttrs=n.rows,this.valAttrs=n.vals,this.tree={},this.rowKeys=[],this.colKeys=[],this.rowTotals={},this.colTotals={},this.allTotal=this.aggregator(this,[],[]),this.sorted=!1,e.forEachRecord(t,n.derivedAttributes,function(t){return function(e){return n.filter(e)?t.processRecord(e):void 0}}(this))}return e.forEachRecord=function(e,n,r){var a,i,s,u,l,c,p,h,d,f,g,m;if(a=t.isEmptyObject(n)?r:function(t){var e,o,a;for(e in n)o=n[e],t[e]=null!=(a=o(t))?a:t[e];return r(t)},t.isFunction(e))return e(a);if(t.isArray(e)){if(t.isArray(e[0])){g=[];for(s in e)if(o.call(e,s)&&(i=e[s],s>0)){c={},f=e[0];for(u in f)o.call(f,u)&&(l=f[u],c[l]=i[u]);g.push(a(c))}return g}for(m=[],h=0,d=e.length;d>h;h++)c=e[h],m.push(a(c));return m}if(e instanceof jQuery)return p=[],t("thead > tr > th",e).each(function(){return p.push(t(this).text())}),t("tbody > tr",e).each(function(){return c={},t("td",this).each(function(e){return c[p[e]]=t(this).text()}),a(c)});throw new Error("unknown input format")},e.convertToArray=function(t){var n;return n=[],e.forEachRecord(t,{},function(t){return n.push(t)}),n},e.prototype.natSort=function(t,e){return d(t,e)},e.prototype.arrSort=function(t,e){return this.natSort(t.join(),e.join())},e.prototype.sortKeys=function(){return this.sorted||(this.rowKeys.sort(this.arrSort),this.colKeys.sort(this.arrSort)),this.sorted=!0},e.prototype.getColKeys=function(){return this.sortKeys(),this.colKeys},e.prototype.getRowKeys=function(){return this.sortKeys(),this.rowKeys},e.prototype.processRecord=function(t){var e,n,r,o,a,i,s,u,l,c,p,h,d;for(e=[],o=[],c=this.colAttrs,i=0,u=c.length;u>i;i++)a=c[i],e.push(null!=(p=t[a])?p:"null");for(h=this.rowAttrs,s=0,l=h.length;l>s;s++)a=h[s],o.push(null!=(d=t[a])?d:"null");return r=o.join(String.fromCharCode(0)),n=e.join(String.fromCharCode(0)),this.allTotal.push(t),0!==o.length&&(this.rowTotals[r]||(this.rowKeys.push(o),this.rowTotals[r]=this.aggregator(this,o,[])),this.rowTotals[r].push(t)),0!==e.length&&(this.colTotals[n]||(this.colKeys.push(e),this.colTotals[n]=this.aggregator(this,[],e)),this.colTotals[n].push(t)),0!==e.length&&0!==o.length?(this.tree[r]||(this.tree[r]={}),this.tree[r][n]||(this.tree[r][n]=this.aggregator(this,o,e)),this.tree[r][n].push(t)):void 0},e.prototype.getAggregator=function(t,e){var n,r,o;return o=t.join(String.fromCharCode(0)),r=e.join(String.fromCharCode(0)),n=0===t.length&&0===e.length?this.allTotal:0===t.length?this.colTotals[r]:0===e.length?this.rowTotals[o]:this.tree[o][r],null!=n?n:{value:function(){return null},format:function(){return""}}},e}(),g=function(e,n){var r,a,i,s,u,l,c,p,h,d,f,g,m,v,b,A,y,w,C,S,T;l={localeStrings:{totals:"Totals"}},n=t.extend(l,n),i=e.colAttrs,f=e.rowAttrs,m=e.getRowKeys(),u=e.getColKeys(),d=document.createElement("table"),d.className="pvtTable",v=function(t,e,n){var r,o,a,i,s,u;if(0!==e){for(o=!0,i=s=0;n>=0?n>=s:s>=n;i=n>=0?++s:--s)t[e-1][i]!==t[e][i]&&(o=!1);if(o)return-1}for(r=0;e+r<t.length;){for(a=!1,i=u=0;n>=0?n>=u:u>=n;i=n>=0?++u:--u)t[e][i]!==t[e+r][i]&&(a=!0);if(a)break;r++}return r};for(p in i)if(o.call(i,p)){a=i[p],w=document.createElement("tr"),0===parseInt(p)&&0!==f.length&&(A=document.createElement("th"),A.setAttribute("colspan",f.length),A.setAttribute("rowspan",i.length),w.appendChild(A)),A=document.createElement("th"),A.className="pvtAxisLabel",A.textContent=a,w.appendChild(A);for(c in u)o.call(u,c)&&(s=u[c],T=v(u,parseInt(c),parseInt(p)),-1!==T&&(A=document.createElement("th"),A.className="pvtColLabel",A.textContent=s[p],A.setAttribute("colspan",T),parseInt(p)===i.length-1&&0!==f.length&&A.setAttribute("rowspan",2),w.appendChild(A)));0===parseInt(p)&&(A=document.createElement("th"),A.className="pvtTotalLabel",A.innerHTML=n.localeStrings.totals,A.setAttribute("rowspan",i.length+(0===f.length?0:1)),w.appendChild(A)),d.appendChild(w)}if(0!==f.length){w=document.createElement("tr");for(c in f)o.call(f,c)&&(h=f[c],A=document.createElement("th"),A.className="pvtAxisLabel",A.textContent=h,w.appendChild(A));A=document.createElement("th"),0===i.length&&(A.className="pvtTotalLabel",A.innerHTML=n.localeStrings.totals),w.appendChild(A),d.appendChild(w)}for(c in m)if(o.call(m,c)){g=m[c],w=document.createElement("tr");for(p in g)o.call(g,p)&&(C=g[p],T=v(m,parseInt(c),parseInt(p)),-1!==T&&(A=document.createElement("th"),A.className="pvtRowLabel",A.textContent=C,A.setAttribute("rowspan",T),parseInt(p)===f.length-1&&0!==i.length&&A.setAttribute("colspan",2),w.appendChild(A)));for(p in u)o.call(u,p)&&(s=u[p],r=e.getAggregator(g,s),S=r.value(),b=document.createElement("td"),b.className="pvtVal row"+c+" col"+p,b.innerHTML=r.format(S),b.setAttribute("data-value",S),w.appendChild(b));y=e.getAggregator(g,[]),S=y.value(),b=document.createElement("td"),b.className="pvtTotal rowTotal",b.innerHTML=y.format(S),b.setAttribute("data-value",S),b.setAttribute("data-for","row"+c),w.appendChild(b),d.appendChild(w)}w=document.createElement("tr"),A=document.createElement("th"),A.className="pvtTotalLabel",A.innerHTML=n.localeStrings.totals,A.setAttribute("colspan",f.length+(0===i.length?0:1)),w.appendChild(A);for(p in u)o.call(u,p)&&(s=u[p],y=e.getAggregator([],s),S=y.value(),b=document.createElement("td"),b.className="pvtTotal colTotal",b.innerHTML=y.format(S),b.setAttribute("data-value",S),b.setAttribute("data-for","col"+p),w.appendChild(b));return y=e.getAggregator([],[]),S=y.value(),b=document.createElement("td"),b.className="pvtGrandTotal",b.innerHTML=y.format(S),b.setAttribute("data-value",S),w.appendChild(b),d.appendChild(w),d.setAttribute("data-numrows",m.length),d.setAttribute("data-numcols",u.length),d},t.fn.pivot=function(e,n){var r,o,i,u,l;r={cols:[],rows:[],filter:function(){return!0},aggregator:s.count()(),aggregatorName:"Count",derivedAttributes:{},renderer:g,rendererOptions:null,localeStrings:p.en.localeStrings},n=t.extend(r,n),u=null;try{i=new a(e,n);try{u=n.renderer(i,n.rendererOptions)}catch(c){o=c,"undefined"!=typeof console&&null!==console&&console.error(o.stack),u=t("<span>").html(n.localeStrings.renderError)}}catch(c){o=c,"undefined"!=typeof console&&null!==console&&console.error(o.stack),u=t("<span>").html(n.localeStrings.computeError)}for(l=this[0];l.hasChildNodes();)l.removeChild(l.lastChild);return this.append(u)},t.fn.pivotUI=function(n,r,i,s){var u,l,c,h,f,g,m,v,b,A,y,w,C,S,T,x,N,F,E,D,O,R,L,k,M,I,K,q,U,V,j,H,B,P,J,_,z,Q,W;null==i&&(i=!1),null==s&&(s="en"),m={derivedAttributes:{},aggregators:p[s].aggregators,renderers:p[s].renderers,hiddenAttributes:[],menuLimit:200,cols:[],rows:[],vals:[],exclusions:{},unusedAttrsVertical:"auto",autoSortUnusedAttrs:!1,rendererOptions:{localeStrings:p[s].localeStrings},onRefresh:null,filter:function(){return!0},localeStrings:p[s].localeStrings},b=this.data("pivotUIOptions"),C=null==b||i?t.extend(m,r):b;try{n=a.convertToArray(n),D=function(){var t,e;t=n[0],e=[];for(w in t)o.call(t,w)&&e.push(w);return e}(),J=C.derivedAttributes;for(f in J)o.call(J,f)&&e.call(D,f)<0&&D.push(f);for(h={},K=0,j=D.length;j>K;K++)M=D[K],h[M]={};a.forEachRecord(n,C.derivedAttributes,function(t){var e,n,r;r=[];for(w in t)o.call(t,w)&&(e=t[w],C.filter(t)&&(null==e&&(e="null"),null==(n=h[w])[e]&&(n[e]=0),r.push(h[w][e]++)));return r}),L=t("<table cellpadding='5'>"),F=t("<td>"),N=t("<select class='pvtRenderer'>").appendTo(F).bind("change",function(){return T()}),_=C.renderers;for(M in _)o.call(_,M)&&t("<option>").val(M).html(M).appendTo(N);if(g=t("<td class='pvtAxisContainer pvtUnused'>"),E=function(){var t,n,r;for(r=[],t=0,n=D.length;n>t;t++)f=D[t],e.call(C.hiddenAttributes,f)<0&&r.push(f);return r}(),k=!1,"auto"===C.unusedAttrsVertical){for(c=0,q=0,H=E.length;H>q;q++)u=E[q],c+=u.length;k=c>120}g.addClass(C.unusedAttrsVertical===!0||k?"pvtVertList":"pvtHorizList"),I=function(n){var r,o,a,i,s,u,l,c,p,f,m,v,b,y,S;if(l=function(){var t;t=[];for(w in h[n])t.push(w);return t}(),u=!1,v=t("<div>").addClass("pvtFilterBox").hide(),v.append(t("<h4>").text(""+n+" ("+l.length+")")),l.length>C.menuLimit)v.append(t("<p>").html(C.localeStrings.tooMany));else for(o=t("<p>").appendTo(v),o.append(t("<button>",{type:"button"}).html(C.localeStrings.selectAll).bind("click",function(){return v.find("input:visible").prop("checked",!0)})),o.append(t("<button>",{type:"button"}).html(C.localeStrings.selectNone).bind("click",function(){return v.find("input:visible").prop("checked",!1)})),o.append(t("<input>").addClass("pvtSearch").attr("placeholder",C.localeStrings.filterResults).bind("keyup",function(){var e;return e=t(this).val().toLowerCase(),t(this).parents(".pvtFilterBox").find("label span").each(function(){var n;return n=t(this).text().toLowerCase().indexOf(e),-1!==n?t(this).parent().show():t(this).parent().hide()})})),a=t("<div>").addClass("pvtCheckContainer").appendTo(v),S=l.sort(d),b=0,y=S.length;y>b;b++)w=S[b],m=h[n][w],i=t("<label>"),s=C.exclusions[n]?e.call(C.exclusions[n],w)>=0:!1,u||(u=s),t("<input type='checkbox' class='pvtFilter'>").attr("checked",!s).data("filter",[n,w]).appendTo(i),i.append(t("<span>").text(""+w+" ("+m+")")),a.append(t("<p>").append(i));return f=function(){var e;return e=t(v).find("[type='checkbox']").length-t(v).find("[type='checkbox']:checked").length,e>0?r.addClass("pvtFilteredAttribute"):r.removeClass("pvtFilteredAttribute"),l.length>C.menuLimit?v.toggle():v.toggle(0,T)},t("<p>").appendTo(v).append(t("<button>",{type:"button"}).text("OK").bind("click",f)),c=function(e){return v.css({left:e.pageX,top:e.pageY}).toggle(),t(".pvtSearch").val(""),t("label").show()},p=t("<span class='pvtTriangle'>").html(" &#x25BE;").bind("click",c),r=t("<li class='axis_"+A+"'>").append(t("<span class='pvtAttr'>").text(n).data("attrName",n).append(p)),u&&r.addClass("pvtFilteredAttribute"),g.append(r).append(v),r.bind("dblclick",c)};for(A in E)f=E[A],I(f);O=t("<tr>").appendTo(L),l=t("<select class='pvtAggregator'>").bind("change",function(){return T()}),z=C.aggregators;for(M in z)o.call(z,M)&&l.append(t("<option>").val(M).html(M));for(t("<td class='pvtVals'>").appendTo(O).append(l).append(t("<br>")),t("<td class='pvtAxisContainer pvtHorizList pvtCols'>").appendTo(O),R=t("<tr>").appendTo(L),R.append(t("<td valign='top' class='pvtAxisContainer pvtRows'>")),S=t("<td valign='top' class='pvtRendererArea'>").appendTo(R),C.unusedAttrsVertical===!0||k?(L.find("tr:nth-child(1)").prepend(F),L.find("tr:nth-child(2)").prepend(g)):L.prepend(t("<tr>").append(F).append(g)),this.html(L),Q=C.cols,U=0,B=Q.length;B>U;U++)M=Q[U],this.find(".pvtCols").append(this.find(".axis_"+E.indexOf(M)));for(W=C.rows,V=0,P=W.length;P>V;V++)M=W[V],this.find(".pvtRows").append(this.find(".axis_"+E.indexOf(M)));null!=C.aggregatorName&&this.find(".pvtAggregator").val(C.aggregatorName),null!=C.rendererName&&this.find(".pvtRenderer").val(C.rendererName),y=!0,x=function(r){return function(){var o,a,i,s,u,c,p,h,d,f,g,m,v,b;if(h={derivedAttributes:C.derivedAttributes,localeStrings:C.localeStrings,rendererOptions:C.rendererOptions,cols:[],rows:[]},u=null!=(b=C.aggregators[l.val()]([])().numInputs)?b:0,f=[],r.find(".pvtRows li span.pvtAttr").each(function(){return h.rows.push(t(this).data("attrName"))}),r.find(".pvtCols li span.pvtAttr").each(function(){return h.cols.push(t(this).data("attrName"))}),r.find(".pvtVals select.pvtAttrDropdown").each(function(){return 0===u?t(this).remove():(u--,""!==t(this).val()?f.push(t(this).val()):void 0)}),0!==u)for(p=r.find(".pvtVals"),M=m=0;u>=0?u>m:m>u;M=u>=0?++m:--m){for(s=t("<select class='pvtAttrDropdown'>").append(t("<option>")).bind("change",function(){return T()}),v=0,g=E.length;g>v;v++)o=E[v],s.append(t("<option>").val(o).text(o));p.append(s)}return y&&(f=C.vals,A=0,r.find(".pvtVals select.pvtAttrDropdown").each(function(){return t(this).val(f[A]),A++}),y=!1),h.aggregatorName=l.val(),h.vals=f,h.aggregator=C.aggregators[l.val()](f),h.renderer=C.renderers[N.val()],a={},r.find("input.pvtFilter").not(":checked").each(function(){var e;return e=t(this).data("filter"),null!=a[e[0]]?a[e[0]].push(e[1]):a[e[0]]=[e[1]]}),h.filter=function(t){var n,r;if(!C.filter(t))return!1;for(w in a)if(n=a[w],r=""+t[w],e.call(n,r)>=0)return!1;return!0},S.pivot(n,h),c=t.extend(C,{cols:h.cols,rows:h.rows,vals:f,exclusions:a,aggregatorName:l.val(),rendererName:N.val()}),r.data("pivotUIOptions",c),C.autoSortUnusedAttrs&&(i=t.pivotUtilities.naturalSort,d=r.find("td.pvtUnused.pvtAxisContainer"),t(d).children("li").sort(function(e,n){return i(t(e).text(),t(n).text())}).appendTo(d)),S.css("opacity",1),null!=C.onRefresh?C.onRefresh(c):void 0}}(this),T=function(){return function(){return S.css("opacity",.5),setTimeout(x,10)}}(this),T(),this.find(".pvtAxisContainer").sortable({update:function(t,e){return null==e.sender?T():void 0},connectWith:this.find(".pvtAxisContainer"),items:"li",placeholder:"pvtPlaceholder"})}catch(Y){v=Y,"undefined"!=typeof console&&null!==console&&console.error(v.stack),this.html(C.localeStrings.uiRenderError)}return this},t.fn.heatmap=function(e){var n,r,o,a,i,s,u,l;switch(null==e&&(e="heatmap"),s=this.data("numrows"),i=this.data("numcols"),n=function(t,e,n){var r;return r=function(){switch(t){case"red":return function(t){return"ff"+t+t};case"green":return function(t){return""+t+"ff"+t};case"blue":return function(t){return""+t+t+"ff"}}}(),function(t){var o,a;return a=255-Math.round(255*(t-e)/(n-e)),o=a.toString(16).split(".")[0],1===o.length&&(o=0+o),r(o)}},r=function(e){return function(r,o){var a,i,s;return i=function(n){return e.find(r).each(function(){var e;return e=t(this).data("value"),null!=e&&isFinite(e)?n(e,t(this)):void 0})},s=[],i(function(t){return s.push(t)}),a=n(o,Math.min.apply(Math,s),Math.max.apply(Math,s)),i(function(t,e){return e.css("background-color","#"+a(t))})}}(this),e){case"heatmap":r(".pvtVal","red");break;case"rowheatmap":for(o=u=0;s>=0?s>u:u>s;o=s>=0?++u:--u)r(".pvtVal.row"+o,"red");break;case"colheatmap":for(a=l=0;i>=0?i>l:l>i;a=i>=0?++l:--l)r(".pvtVal.col"+a,"red")}return r(".pvtTotal.rowTotal","red"),r(".pvtTotal.colTotal","red"),this},t.fn.barchart=function(){var e,n,r,o,a;for(o=this.data("numrows"),r=this.data("numcols"),e=function(e){return function(n){var r,o,a,i;return r=function(r){return e.find(n).each(function(){var e;return e=t(this).data("value"),null!=e&&isFinite(e)?r(e,t(this)):void 0})},i=[],r(function(t){return i.push(t)}),o=Math.max.apply(Math,i),a=function(t){return 100*t/(1.4*o)},r(function(e,n){var r,o;return r=n.text(),o=t("<div>").css({position:"relative",height:"55px"}),o.append(t("<div>").css({position:"absolute",bottom:0,left:0,right:0,height:a(e)+"%","background-color":"gray"})),o.append(t("<div>").text(r).css({position:"relative","padding-left":"5px","padding-right":"5px"})),n.css({padding:0,"padding-top":"5px","text-align":"center"}).html(o)})}}(this),n=a=0;o>=0?o>a:a>o;n=o>=0?++a:--a)e(".pvtVal.row"+n);return e(".pvtTotal.colTotal"),this}})}).call(this);
2
- //# sourceMappingURL=pivot.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/source/pivot.coffee"],"names":[],"mappings":"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","file":"pivot.min.js","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n\n ###\n Utilities\n ###\n\n addSeparators = (nStr, thousandsSep, decimalSep) ->\n nStr += ''\n x = nStr.split('.')\n x1 = x[0]\n x2 = if x.length > 1 then decimalSep + x[1] else ''\n rgx = /(\\d+)(\\d{3})/\n x1 = x1.replace(rgx, '$1' + thousandsSep + '$2') while rgx.test(x1)\n return x1 + x2\n\n numberFormat = (opts) ->\n defaults = \n digitsAfterDecimal: 2, scaler: 1, \n thousandsSep: \",\", decimalSep: \".\"\n prefix: \"\", suffix: \"\"\n showZero: false\n opts = $.extend defaults, opts\n (x) ->\n return \"\" if isNaN(x) or not isFinite(x)\n return \"\" if x == 0 and not opts.showZero\n result = addSeparators (opts.scaler*x).toFixed(opts.digitsAfterDecimal), opts.thousandsSep, opts.decimalSep\n return \"\"+opts.prefix+result+opts.suffix\n\n #aggregator templates default to US number formatting but this is overrideable\n usFmt = numberFormat()\n usFmtInt = numberFormat(digitsAfterDecimal: 0)\n usFmtPct = numberFormat(digitsAfterDecimal:1, scaler: 100, suffix: \"%\")\n\n aggregatorTemplates =\n count: (formatter=usFmtInt) -> () -> (data, rowKey, colKey) ->\n count: 0\n push: -> @count++\n value: -> @count\n format: formatter\n\n countUnique: (formatter=usFmtInt) -> ([attr]) -> (data, rowKey, colKey) ->\n uniq: []\n push: (record) -> @uniq.push(record[attr]) if record[attr] not in @uniq\n value: -> @uniq.length\n format: formatter\n numInputs: if attr? then 0 else 1\n\n listUnique: (sep) -> ([attr]) -> (data, rowKey, colKey) ->\n uniq: []\n push: (record) -> @uniq.push(record[attr]) if record[attr] not in @uniq\n value: -> @uniq.join sep\n format: (x) -> x\n numInputs: if attr? then 0 else 1\n\n sum: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n sum: 0\n push: (record) -> @sum += parseFloat(record[attr]) if not isNaN parseFloat(record[attr])\n value: -> @sum\n format: formatter\n numInputs: if attr? then 0 else 1\n\n average: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n sum: 0\n len: 0\n push: (record) ->\n if not isNaN parseFloat(record[attr])\n @sum += parseFloat(record[attr])\n @len++\n value: -> @sum/@len\n format: formatter\n numInputs: if attr? then 0 else 1\n\n sumOverSum: (formatter=usFmt) -> ([num, denom]) -> (data, rowKey, colKey) ->\n sumNum: 0\n sumDenom: 0\n push: (record) ->\n @sumNum += parseFloat(record[num]) if not isNaN parseFloat(record[num])\n @sumDenom += parseFloat(record[denom]) if not isNaN parseFloat(record[denom])\n value: -> @sumNum/@sumDenom\n format: formatter\n numInputs: if num? and denom? then 0 else 2\n\n sumOverSumBound80: (upper=true, formatter=usFmt) -> ([num, denom]) -> (data, rowKey, colKey) ->\n sumNum: 0\n sumDenom: 0\n push: (record) ->\n @sumNum += parseFloat(record[num]) if not isNaN parseFloat(record[num])\n @sumDenom += parseFloat(record[denom]) if not isNaN parseFloat(record[denom])\n value: ->\n sign = if upper then 1 else -1\n (0.821187207574908/@sumDenom + @sumNum/@sumDenom + 1.2815515655446004*sign*\n Math.sqrt(0.410593603787454/ (@sumDenom*@sumDenom) + (@sumNum*(1 - @sumNum/ @sumDenom))/ (@sumDenom*@sumDenom)))/\n (1 + 1.642374415149816/@sumDenom)\n format: formatter\n numInputs: if num? and denom? then 0 else 2\n\n fractionOf: (wrapped, type=\"total\", formatter=usFmtPct) -> (x...) -> (data, rowKey, colKey) ->\n selector: {total:[[],[]],row:[rowKey,[]],col:[[],colKey]}[type]\n inner: wrapped(x...)(data, rowKey, colKey)\n push: (record) -> @inner.push record\n format: formatter\n value: -> @inner.value() / data.getAggregator(@selector...).inner.value()\n numInputs: wrapped(x...)().numInputs\n\n #default aggregators & renderers use US naming and number formatting\n aggregators = do (tpl = aggregatorTemplates) -> \n \"Count\": tpl.count(usFmtInt)\n \"Count Unique Values\": tpl.countUnique(usFmtInt)\n \"List Unique Values\": tpl.listUnique(\", \")\n \"Sum\": tpl.sum(usFmt)\n \"Integer Sum\": tpl.sum(usFmtInt)\n \"Average\": tpl.average(usFmt)\n \"Sum over Sum\": tpl.sumOverSum(usFmt)\n \"80% Upper Bound\": tpl.sumOverSumBound80(true, usFmt)\n \"80% Lower Bound\": tpl.sumOverSumBound80(false, usFmt)\n \"Sum as Fraction of Total\": tpl.fractionOf(tpl.sum(), \"total\", usFmtPct)\n \"Sum as Fraction of Rows\": tpl.fractionOf(tpl.sum(), \"row\", usFmtPct)\n \"Sum as Fraction of Columns\": tpl.fractionOf(tpl.sum(), \"col\", usFmtPct)\n \"Count as Fraction of Total\": tpl.fractionOf(tpl.count(), \"total\", usFmtPct)\n \"Count as Fraction of Rows\": tpl.fractionOf(tpl.count(), \"row\", usFmtPct)\n \"Count as Fraction of Columns\": tpl.fractionOf(tpl.count(), \"col\", usFmtPct)\n\n renderers =\n \"Table\": (pvtData, opts) -> pivotTableRenderer(pvtData, opts)\n \"Table Barchart\": (pvtData, opts) -> $(pivotTableRenderer(pvtData, opts)).barchart()\n \"Heatmap\": (pvtData, opts) -> $(pivotTableRenderer(pvtData, opts)).heatmap()\n \"Row Heatmap\": (pvtData, opts) -> $(pivotTableRenderer(pvtData, opts)).heatmap(\"rowheatmap\")\n \"Col Heatmap\": (pvtData, opts) -> $(pivotTableRenderer(pvtData, opts)).heatmap(\"colheatmap\")\n\n locales = \n en: \n aggregators: aggregators\n renderers: renderers\n localeStrings: \n renderError: \"An error occurred rendering the PivotTable results.\"\n computeError: \"An error occurred computing the PivotTable results.\"\n uiRenderError: \"An error occurred rendering the PivotTable UI.\"\n selectAll: \"Select All\"\n selectNone: \"Select None\"\n tooMany: \"(too many to list)\"\n filterResults: \"Filter results\"\n totals: \"Totals\" #for table renderer\n vs: \"vs\" #for gchart renderer\n by: \"by\" #for gchart renderer\n\n #dateFormat deriver l10n requires month and day names to be passed in directly\n mthNamesEn = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]\n dayNamesEn = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]\n zeroPad = (number) -> (\"0\"+number).substr(-2,2)\n\n derivers =\n bin: (col, binWidth) -> (record) -> record[col] - record[col] % binWidth\n dateFormat: (col, formatString, mthNames=mthNamesEn, dayNames=dayNamesEn) ->\n (record) -> #thanks http://stackoverflow.com/a/12213072/112871\n date = new Date(Date.parse(record[col]))\n if isNaN(date) then return \"\"\n formatString.replace /%(.)/g, (m, p) ->\n switch p\n when \"y\" then date.getFullYear()\n when \"m\" then zeroPad(date.getMonth()+1)\n when \"n\" then mthNames[date.getMonth()]\n when \"d\" then zeroPad(date.getDate())\n when \"w\" then dayNames[date.getDay()]\n when \"x\" then date.getDay()\n when \"H\" then zeroPad(date.getHours())\n when \"M\" then zeroPad(date.getMinutes())\n when \"S\" then zeroPad(date.getSeconds())\n else \"%\" + p\n\n naturalSort = (as, bs) => #thanks http://stackoverflow.com/a/4373421/112871\n rx = /(\\d+)|(\\D+)/g\n rd = /\\d/\n rz = /^0/\n if typeof as is \"number\" or typeof bs is \"number\"\n return 1 if isNaN(as)\n return -1 if isNaN(bs)\n return as - bs\n a = String(as).toLowerCase()\n b = String(bs).toLowerCase()\n return 0 if a is b\n return (if a > b then 1 else -1) unless rd.test(a) and rd.test(b)\n a = a.match(rx)\n b = b.match(rx)\n while a.length and b.length\n a1 = a.shift()\n b1 = b.shift()\n if a1 isnt b1\n if rd.test(a1) and rd.test(b1)\n return a1.replace(rz, \".0\") - b1.replace(rz, \".0\")\n else\n return (if a1 > b1 then 1 else -1)\n a.length - b.length\n\n #expose these to the outside world\n $.pivotUtilities = {aggregatorTemplates, aggregators, renderers, derivers, locales,\n naturalSort, numberFormat}\n\n ###\n Data Model class\n ###\n\n class PivotData\n constructor: (input, opts) ->\n @aggregator = opts.aggregator\n @aggregatorName = opts.aggregatorName\n @colAttrs = opts.cols\n @rowAttrs = opts.rows\n @valAttrs = opts.vals\n @tree = {}\n @rowKeys = []\n @colKeys = []\n @rowTotals = {}\n @colTotals = {}\n @allTotal = @aggregator(this, [], [])\n @sorted = false\n\n # iterate through input, accumulating data for cells\n PivotData.forEachRecord input, opts.derivedAttributes, (record) =>\n @processRecord(record) if opts.filter(record)\n\n #can handle arrays or jQuery selections of tables\n @forEachRecord = (input, derivedAttributes, f) ->\n if $.isEmptyObject derivedAttributes\n addRecord = f\n else\n addRecord = (record) -> \n record[k] = v(record) ? record[k] for k, v of derivedAttributes\n f(record)\n\n #if it's a function, have it call us back\n if $.isFunction(input)\n input(addRecord)\n else if $.isArray(input)\n if $.isArray(input[0]) #array of arrays\n for own i, compactRecord of input when i > 0\n record = {}\n record[k] = compactRecord[j] for own j, k of input[0]\n addRecord(record)\n else #array of objects\n addRecord(record) for record in input\n else if input instanceof jQuery\n tblCols = []\n $(\"thead > tr > th\", input).each (i) -> tblCols.push $(this).text()\n $(\"tbody > tr\", input).each (i) ->\n record = {}\n $(\"td\", this).each (j) -> record[tblCols[j]] = $(this).text()\n addRecord(record)\n else\n throw new Error(\"unknown input format\")\n\n #converts to [{attr:val, attr:val},{attr:val, attr:val}] using method above\n @convertToArray = (input) ->\n result = []\n PivotData.forEachRecord input, {}, (record) -> result.push record\n return result\n\n natSort: (as, bs) => naturalSort(as, bs)\n\n arrSort: (a,b) => @natSort a.join(), b.join()\n\n sortKeys: () =>\n if not @sorted\n @rowKeys.sort @arrSort\n @colKeys.sort @arrSort\n @sorted = true\n\n getColKeys: () =>\n @sortKeys()\n return @colKeys\n\n getRowKeys: () =>\n @sortKeys()\n return @rowKeys\n\n processRecord: (record) -> #this code is called in a tight loop\n colKey = []\n rowKey = []\n colKey.push record[x] ? \"null\" for x in @colAttrs \n rowKey.push record[x] ? \"null\" for x in @rowAttrs\n flatRowKey = rowKey.join(String.fromCharCode(0))\n flatColKey = colKey.join(String.fromCharCode(0))\n\n @allTotal.push record\n\n if rowKey.length != 0\n if not @rowTotals[flatRowKey]\n @rowKeys.push rowKey\n @rowTotals[flatRowKey] = @aggregator(this, rowKey, [])\n @rowTotals[flatRowKey].push record\n\n if colKey.length != 0\n if not @colTotals[flatColKey]\n @colKeys.push colKey\n @colTotals[flatColKey] = @aggregator(this, [], colKey)\n @colTotals[flatColKey].push record\n\n if colKey.length != 0 and rowKey.length != 0\n if not @tree[flatRowKey]\n @tree[flatRowKey] = {}\n if not @tree[flatRowKey][flatColKey]\n @tree[flatRowKey][flatColKey] = @aggregator(this, rowKey, colKey)\n @tree[flatRowKey][flatColKey].push record\n\n getAggregator: (rowKey, colKey) =>\n flatRowKey = rowKey.join(String.fromCharCode(0))\n flatColKey = colKey.join(String.fromCharCode(0))\n if rowKey.length == 0 and colKey.length == 0\n agg = @allTotal\n else if rowKey.length == 0\n agg = @colTotals[flatColKey]\n else if colKey.length == 0\n agg = @rowTotals[flatRowKey]\n else\n agg = @tree[flatRowKey][flatColKey]\n return agg ? {value: (-> null), format: -> \"\"}\n\n ###\n Default Renderer for hierarchical table layout\n ###\n\n pivotTableRenderer = (pivotData, opts) ->\n\n defaults =\n localeStrings:\n totals: \"Totals\"\n\n opts = $.extend defaults, opts\n\n colAttrs = pivotData.colAttrs\n rowAttrs = pivotData.rowAttrs\n rowKeys = pivotData.getRowKeys()\n colKeys = pivotData.getColKeys()\n\n #now actually build the output\n result = document.createElement(\"table\")\n result.className = \"pvtTable\"\n\n #helper function for setting row/col-span in pivotTableRenderer\n spanSize = (arr, i, j) ->\n if i != 0\n noDraw = true\n for x in [0..j]\n if arr[i-1][x] != arr[i][x]\n noDraw = false\n if noDraw\n return -1 #do not draw cell\n len = 0\n while i+len < arr.length\n stop = false\n for x in [0..j]\n stop = true if arr[i][x] != arr[i+len][x]\n break if stop\n len++\n return len\n\n #the first few rows are for col headers\n for own j, c of colAttrs\n tr = document.createElement(\"tr\")\n if parseInt(j) == 0 and rowAttrs.length != 0\n th = document.createElement(\"th\")\n th.setAttribute(\"colspan\", rowAttrs.length)\n th.setAttribute(\"rowspan\", colAttrs.length)\n tr.appendChild th\n th = document.createElement(\"th\")\n th.className = \"pvtAxisLabel\"\n th.textContent = c\n tr.appendChild th\n for own i, colKey of colKeys\n x = spanSize(colKeys, parseInt(i), parseInt(j))\n if x != -1\n th = document.createElement(\"th\")\n th.className = \"pvtColLabel\"\n th.textContent = colKey[j]\n th.setAttribute(\"colspan\", x)\n if parseInt(j) == colAttrs.length-1 and rowAttrs.length != 0\n th.setAttribute(\"rowspan\", 2)\n tr.appendChild th\n if parseInt(j) == 0\n th = document.createElement(\"th\")\n th.className = \"pvtTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n th.setAttribute(\"rowspan\", colAttrs.length + (if rowAttrs.length ==0 then 0 else 1))\n tr.appendChild th\n result.appendChild tr\n\n #then a row for row header headers\n if rowAttrs.length !=0\n tr = document.createElement(\"tr\")\n for own i, r of rowAttrs\n th = document.createElement(\"th\")\n th.className = \"pvtAxisLabel\"\n th.textContent = r\n tr.appendChild th \n th = document.createElement(\"th\")\n if colAttrs.length ==0\n th.className = \"pvtTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n tr.appendChild th\n result.appendChild tr\n\n #now the actual data rows, with their row headers and totals\n for own i, rowKey of rowKeys\n tr = document.createElement(\"tr\")\n for own j, txt of rowKey\n x = spanSize(rowKeys, parseInt(i), parseInt(j))\n if x != -1\n th = document.createElement(\"th\")\n th.className = \"pvtRowLabel\"\n th.textContent = txt\n th.setAttribute(\"rowspan\", x)\n if parseInt(j) == rowAttrs.length-1 and colAttrs.length !=0\n th.setAttribute(\"colspan\",2)\n tr.appendChild th\n for own j, colKey of colKeys #this is the tight loop\n aggregator = pivotData.getAggregator(rowKey, colKey)\n val = aggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtVal row#{i} col#{j}\"\n td.innerHTML = aggregator.format(val)\n td.setAttribute(\"data-value\", val)\n tr.appendChild td\n\n totalAggregator = pivotData.getAggregator(rowKey, [])\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtTotal rowTotal\"\n td.innerHTML = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n td.setAttribute(\"data-for\", \"row\"+i)\n tr.appendChild td\n result.appendChild tr\n\n #finally, the row for col totals, and a grand total\n tr = document.createElement(\"tr\")\n th = document.createElement(\"th\")\n th.className = \"pvtTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n th.setAttribute(\"colspan\", rowAttrs.length + (if colAttrs.length == 0 then 0 else 1))\n tr.appendChild th\n for own j, colKey of colKeys\n totalAggregator = pivotData.getAggregator([], colKey)\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtTotal colTotal\"\n td.innerHTML = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n td.setAttribute(\"data-for\", \"col\"+j)\n tr.appendChild td\n totalAggregator = pivotData.getAggregator([], [])\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtGrandTotal\"\n td.innerHTML = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n tr.appendChild td\n result.appendChild tr\n\n #squirrel this away for later\n result.setAttribute(\"data-numrows\", rowKeys.length)\n result.setAttribute(\"data-numcols\", colKeys.length)\n\n return result\n\n ###\n Pivot Table core: create PivotData object and call Renderer on it\n ###\n\n $.fn.pivot = (input, opts) ->\n defaults =\n cols : []\n rows: []\n filter: -> true\n aggregator: aggregatorTemplates.count()()\n aggregatorName: \"Count\"\n derivedAttributes: {},\n renderer: pivotTableRenderer\n rendererOptions: null\n localeStrings: locales.en.localeStrings\n\n opts = $.extend defaults, opts\n\n result = null\n try\n pivotData = new PivotData(input, opts)\n try\n result = opts.renderer(pivotData, opts.rendererOptions)\n catch e\n console.error(e.stack) if console?\n result = $(\"<span>\").html opts.localeStrings.renderError\n catch e\n console.error(e.stack) if console?\n result = $(\"<span>\").html opts.localeStrings.computeError\n \n x = this[0]\n x.removeChild(x.lastChild) while x.hasChildNodes()\n return @append result\n\n\n ###\n Pivot Table UI: calls Pivot Table core above with options set by user\n ###\n\n $.fn.pivotUI = (input, inputOpts, overwrite = false, locale=\"en\") ->\n defaults =\n derivedAttributes: {}\n aggregators: locales[locale].aggregators\n renderers: locales[locale].renderers\n hiddenAttributes: []\n menuLimit: 200\n cols: [], rows: [], vals: []\n exclusions: {}\n unusedAttrsVertical: \"auto\"\n autoSortUnusedAttrs: false\n rendererOptions: localeStrings: locales[locale].localeStrings\n onRefresh: null\n filter: -> true\n localeStrings: locales[locale].localeStrings\n\n existingOpts = @data \"pivotUIOptions\"\n if not existingOpts? or overwrite\n opts = $.extend defaults, inputOpts\n else\n opts = existingOpts\n\n try\n #cache the input in some useful form\n input = PivotData.convertToArray(input)\n tblCols = (k for own k of input[0])\n tblCols.push c for own c of opts.derivedAttributes when (c not in tblCols)\n\n #figure out the cardinality and some stats\n axisValues = {}\n axisValues[x] = {} for x in tblCols\n\n PivotData.forEachRecord input, opts.derivedAttributes, (record) ->\n for own k, v of record when opts.filter(record)\n v ?= \"null\"\n axisValues[k][v] ?= 0\n axisValues[k][v]++\n\n #start building the output\n uiTable = $(\"<table cellpadding='5'>\")\n\n #renderer control\n rendererControl = $(\"<td>\")\n\n renderer = $(\"<select class='pvtRenderer'>\")\n .appendTo(rendererControl)\n .bind \"change\", -> refresh() #capture reference\n for own x of opts.renderers\n $(\"<option>\").val(x).html(x).appendTo(renderer)\n\n\n #axis list, including the double-click menu\n colList = $(\"<td class='pvtAxisContainer pvtUnused'>\")\n shownAttributes = (c for c in tblCols when c not in opts.hiddenAttributes)\n\n unusedAttrsVerticalAutoOverride = false\n if opts.unusedAttrsVertical == \"auto\"\n attrLength = 0\n attrLength += a.length for a in shownAttributes\n unusedAttrsVerticalAutoOverride = attrLength > 120\n\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n colList.addClass('pvtVertList')\n else\n colList.addClass('pvtHorizList')\n\n for i, c of shownAttributes\n do (c) ->\n keys = (k for k of axisValues[c])\n hasExcludedItem = false\n valueList = $(\"<div>\").addClass('pvtFilterBox').hide()\n\n valueList.append $(\"<h4>\").text(\"#{c} (#{keys.length})\")\n if keys.length > opts.menuLimit\n valueList.append $(\"<p>\").html(opts.localeStrings.tooMany)\n else\n btns = $(\"<p>\").appendTo(valueList)\n btns.append $(\"<button>\", {type:\"button\"}).html(opts.localeStrings.selectAll).bind \"click\", ->\n valueList.find(\"input:visible\").prop \"checked\", true\n btns.append $(\"<button>\", {type:\"button\"}).html(opts.localeStrings.selectNone).bind \"click\", ->\n valueList.find(\"input:visible\").prop \"checked\", false\n btns.append $(\"<input>\").addClass(\"pvtSearch\").attr(\"placeholder\", opts.localeStrings.filterResults).bind \"keyup\", ->\n filter = $(this).val().toLowerCase()\n $(this).parents(\".pvtFilterBox\").find('label span').each ->\n testString = $(this).text().toLowerCase().indexOf(filter)\n if testString isnt -1\n $(this).parent().show()\n else\n $(this).parent().hide()\n\n checkContainer = $(\"<div>\").addClass(\"pvtCheckContainer\").appendTo(valueList)\n\n for k in keys.sort(naturalSort)\n v = axisValues[c][k]\n filterItem = $(\"<label>\")\n filterItemExcluded = if opts.exclusions[c] then (k in opts.exclusions[c]) else false\n hasExcludedItem ||= filterItemExcluded\n $(\"<input type='checkbox' class='pvtFilter'>\")\n .attr(\"checked\", !filterItemExcluded).data(\"filter\", [c,k])\n .appendTo filterItem\n filterItem.append $(\"<span>\").text \"#{k} (#{v})\"\n checkContainer.append $(\"<p>\").append(filterItem)\n\n updateFilter = ->\n unselectedCount = $(valueList).find(\"[type='checkbox']\").length -\n $(valueList).find(\"[type='checkbox']:checked\").length\n if unselectedCount > 0\n attrElem.addClass \"pvtFilteredAttribute\"\n else\n attrElem.removeClass \"pvtFilteredAttribute\"\n if keys.length > opts.menuLimit\n valueList.toggle()\n else\n valueList.toggle(0, refresh)\n\n $(\"<p>\").appendTo(valueList)\n .append $(\"<button>\", {type:\"button\"}).text(\"OK\").bind \"click\", updateFilter\n\n showFilterList = (e) ->\n valueList.css(left: e.pageX, top: e.pageY).toggle()\n $('.pvtSearch').val('')\n $('label').show()\n\n triangleLink = $(\"<span class='pvtTriangle'>\").html(\" &#x25BE;\")\n .bind \"click\", showFilterList\n\n attrElem = $(\"<li class='axis_#{i}'>\")\n .append $(\"<span class='pvtAttr'>\").text(c).data(\"attrName\", c).append(triangleLink)\n attrElem.addClass('pvtFilteredAttribute') if hasExcludedItem\n colList.append(attrElem).append(valueList)\n\n attrElem.bind \"dblclick\", showFilterList\n\n tr1 = $(\"<tr>\").appendTo(uiTable)\n\n #aggregator menu and value area\n\n aggregator = $(\"<select class='pvtAggregator'>\")\n .bind \"change\", -> refresh() #capture reference\n for own x of opts.aggregators\n aggregator.append $(\"<option>\").val(x).html(x)\n\n $(\"<td class='pvtVals'>\")\n .appendTo(tr1)\n .append(aggregator)\n .append($(\"<br>\"))\n\n #column axes\n $(\"<td class='pvtAxisContainer pvtHorizList pvtCols'>\").appendTo(tr1)\n\n tr2 = $(\"<tr>\").appendTo(uiTable)\n\n #row axes\n tr2.append $(\"<td valign='top' class='pvtAxisContainer pvtRows'>\")\n\n #the actual pivot table container\n pivotTable = $(\"<td valign='top' class='pvtRendererArea'>\").appendTo(tr2)\n\n #finally the renderer dropdown and unused attribs are inserted at the requested location\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n uiTable.find('tr:nth-child(1)').prepend rendererControl\n uiTable.find('tr:nth-child(2)').prepend colList\n else\n uiTable.prepend $(\"<tr>\").append(rendererControl).append(colList)\n\n #render the UI in its default state\n @html uiTable\n\n #set up the UI initial state as requested by moving elements around\n\n for x in opts.cols\n @find(\".pvtCols\").append @find(\".axis_#{shownAttributes.indexOf(x)}\")\n for x in opts.rows\n @find(\".pvtRows\").append @find(\".axis_#{shownAttributes.indexOf(x)}\")\n if opts.aggregatorName?\n @find(\".pvtAggregator\").val opts.aggregatorName\n if opts.rendererName?\n @find(\".pvtRenderer\").val opts.rendererName\n\n initialRender = true\n\n #set up for refreshing\n refreshDelayed = =>\n subopts =\n derivedAttributes: opts.derivedAttributes\n localeStrings: opts.localeStrings\n rendererOptions: opts.rendererOptions\n cols: [], rows: []\n\n numInputsToProcess = opts.aggregators[aggregator.val()]([])().numInputs ? 0\n vals = []\n @find(\".pvtRows li span.pvtAttr\").each -> subopts.rows.push $(this).data(\"attrName\")\n @find(\".pvtCols li span.pvtAttr\").each -> subopts.cols.push $(this).data(\"attrName\")\n @find(\".pvtVals select.pvtAttrDropdown\").each ->\n if numInputsToProcess == 0\n $(this).remove()\n else\n numInputsToProcess--\n vals.push $(this).val() if $(this).val() != \"\"\n\n if numInputsToProcess != 0\n pvtVals = @find(\".pvtVals\")\n for x in [0...numInputsToProcess]\n newDropdown = $(\"<select class='pvtAttrDropdown'>\")\n .append($(\"<option>\"))\n .bind \"change\", -> refresh()\n for attr in shownAttributes\n newDropdown.append($(\"<option>\").val(attr).text(attr))\n pvtVals.append(newDropdown)\n\n if initialRender\n vals = opts.vals\n i = 0\n @find(\".pvtVals select.pvtAttrDropdown\").each ->\n $(this).val vals[i]\n i++\n initialRender = false\n\n subopts.aggregatorName = aggregator.val()\n subopts.vals = vals\n subopts.aggregator = opts.aggregators[aggregator.val()](vals)\n subopts.renderer = opts.renderers[renderer.val()]\n\n #construct filter here\n exclusions = {}\n @find('input.pvtFilter').not(':checked').each ->\n filter = $(this).data(\"filter\")\n if exclusions[filter[0]]?\n exclusions[filter[0]].push( filter[1] )\n else\n exclusions[filter[0]] = [ filter[1] ]\n\n subopts.filter = (record) ->\n return false if not opts.filter(record)\n for k,excludedItems of exclusions\n return false if \"\"+record[k] in excludedItems\n return true\n\n pivotTable.pivot(input,subopts)\n pivotUIOptions = $.extend opts,\n cols: subopts.cols\n rows: subopts.rows\n vals: vals\n exclusions: exclusions\n aggregatorName: aggregator.val()\n rendererName: renderer.val()\n\n @data \"pivotUIOptions\", pivotUIOptions\n\n # if requested make sure unused columns are in alphabetical order\n if opts.autoSortUnusedAttrs\n natSort = $.pivotUtilities.naturalSort\n unusedAttrsContainer = @find(\"td.pvtUnused.pvtAxisContainer\")\n $(unusedAttrsContainer).children(\"li\")\n .sort((a, b) => natSort($(a).text(), $(b).text()))\n .appendTo unusedAttrsContainer\n\n pivotTable.css(\"opacity\", 1)\n opts.onRefresh(pivotUIOptions) if opts.onRefresh?\n\n refresh = =>\n pivotTable.css(\"opacity\", 0.5)\n setTimeout refreshDelayed, 10\n\n #the very first refresh will actually display the table\n refresh()\n\n @find(\".pvtAxisContainer\").sortable\n update: (e, ui) -> refresh() if not ui.sender?\n connectWith: @find(\".pvtAxisContainer\")\n items: 'li'\n placeholder: 'pvtPlaceholder'\n catch e\n console.error(e.stack) if console?\n @html opts.localeStrings.uiRenderError\n return this\n\n ###\n Heatmap post-processing\n ###\n\n $.fn.heatmap = (scope = \"heatmap\") ->\n numRows = @data \"numrows\"\n numCols = @data \"numcols\"\n\n colorGen = (color, min, max) ->\n hexGen = switch color\n when \"red\" then (hex) -> \"ff#{hex}#{hex}\"\n when \"green\" then (hex) -> \"#{hex}ff#{hex}\"\n when \"blue\" then (hex) -> \"#{hex}#{hex}ff\"\n\n return (x) ->\n intensity = 255 - Math.round 255*(x-min)/(max-min)\n hex = intensity.toString(16).split(\".\")[0]\n hex = 0+hex if hex.length == 1\n return hexGen(hex)\n\n heatmapper = (scope, color) =>\n forEachCell = (f) =>\n @find(scope).each ->\n x = $(this).data(\"value\")\n f(x, $(this)) if x? and isFinite(x)\n\n values = []\n forEachCell (x) -> values.push x\n colorFor = colorGen color, Math.min(values...), Math.max(values...)\n forEachCell (x, elem) -> elem.css \"background-color\", \"#\" + colorFor(x)\n\n switch scope\n when \"heatmap\"\n heatmapper \".pvtVal\", \"red\"\n when \"rowheatmap\"\n heatmapper \".pvtVal.row#{i}\", \"red\" for i in [0...numRows]\n when \"colheatmap\"\n heatmapper \".pvtVal.col#{j}\", \"red\" for j in [0...numCols]\n\n heatmapper \".pvtTotal.rowTotal\", \"red\"\n heatmapper \".pvtTotal.colTotal\", \"red\"\n\n return this\n\n ###\n Barchart post-processing\n ###\n\n $.fn.barchart = ->\n numRows = @data \"numrows\"\n numCols = @data \"numcols\"\n\n barcharter = (scope) =>\n forEachCell = (f) =>\n @find(scope).each ->\n x = $(this).data(\"value\")\n f(x, $(this)) if x? and isFinite(x)\n\n values = []\n forEachCell (x) -> values.push x\n max = Math.max(values...)\n scaler = (x) -> 100*x/(1.4*max)\n forEachCell (x, elem) ->\n text = elem.text()\n wrapper = $(\"<div>\").css\n \"position\": \"relative\"\n \"height\": \"55px\"\n wrapper.append $(\"<div>\").css\n \"position\": \"absolute\"\n \"bottom\": 0\n \"left\": 0\n \"right\": 0\n \"height\": scaler(x) + \"%\"\n \"background-color\": \"gray\"\n wrapper.append $(\"<div>\").text(text).css\n \"position\":\"relative\"\n \"padding-left\":\"5px\"\n \"padding-right\":\"5px\"\n\n elem.css(\"padding\": 0,\"padding-top\": \"5px\", \"text-align\": \"center\").html wrapper\n\n barcharter \".pvtVal.row#{i}\" for i in [0...numRows]\n barcharter \".pvtTotal.colTotal\"\n\n return this\n\n\n"],"sourceRoot":"/source/"}
@@ -1,386 +0,0 @@
1
- /**
2
- * @license RequireJS text 2.0.10 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
3
- * Available via the MIT or new BSD license.
4
- * see: http://github.com/requirejs/text for details
5
- */
6
- /*jslint regexp: true */
7
- /*global require, XMLHttpRequest, ActiveXObject,
8
- define, window, process, Packages,
9
- java, location, Components, FileUtils */
10
-
11
- define(['module'], function (module) {
12
- 'use strict';
13
-
14
- var text, fs, Cc, Ci, xpcIsWindows,
15
- progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'],
16
- xmlRegExp = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,
17
- bodyRegExp = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,
18
- hasLocation = typeof location !== 'undefined' && location.href,
19
- defaultProtocol = hasLocation && location.protocol && location.protocol.replace(/\:/, ''),
20
- defaultHostName = hasLocation && location.hostname,
21
- defaultPort = hasLocation && (location.port || undefined),
22
- buildMap = {},
23
- masterConfig = (module.config && module.config()) || {};
24
-
25
- text = {
26
- version: '2.0.10',
27
-
28
- strip: function (content) {
29
- //Strips <?xml ...?> declarations so that external SVG and XML
30
- //documents can be added to a document without worry. Also, if the string
31
- //is an HTML document, only the part inside the body tag is returned.
32
- if (content) {
33
- content = content.replace(xmlRegExp, "");
34
- var matches = content.match(bodyRegExp);
35
- if (matches) {
36
- content = matches[1];
37
- }
38
- } else {
39
- content = "";
40
- }
41
- return content;
42
- },
43
-
44
- jsEscape: function (content) {
45
- return content.replace(/(['\\])/g, '\\$1')
46
- .replace(/[\f]/g, "\\f")
47
- .replace(/[\b]/g, "\\b")
48
- .replace(/[\n]/g, "\\n")
49
- .replace(/[\t]/g, "\\t")
50
- .replace(/[\r]/g, "\\r")
51
- .replace(/[\u2028]/g, "\\u2028")
52
- .replace(/[\u2029]/g, "\\u2029");
53
- },
54
-
55
- createXhr: masterConfig.createXhr || function () {
56
- //Would love to dump the ActiveX crap in here. Need IE 6 to die first.
57
- var xhr, i, progId;
58
- if (typeof XMLHttpRequest !== "undefined") {
59
- return new XMLHttpRequest();
60
- } else if (typeof ActiveXObject !== "undefined") {
61
- for (i = 0; i < 3; i += 1) {
62
- progId = progIds[i];
63
- try {
64
- xhr = new ActiveXObject(progId);
65
- } catch (e) {}
66
-
67
- if (xhr) {
68
- progIds = [progId]; // so faster next time
69
- break;
70
- }
71
- }
72
- }
73
-
74
- return xhr;
75
- },
76
-
77
- /**
78
- * Parses a resource name into its component parts. Resource names
79
- * look like: module/name.ext!strip, where the !strip part is
80
- * optional.
81
- * @param {String} name the resource name
82
- * @returns {Object} with properties "moduleName", "ext" and "strip"
83
- * where strip is a boolean.
84
- */
85
- parseName: function (name) {
86
- var modName, ext, temp,
87
- strip = false,
88
- index = name.indexOf("."),
89
- isRelative = name.indexOf('./') === 0 ||
90
- name.indexOf('../') === 0;
91
-
92
- if (index !== -1 && (!isRelative || index > 1)) {
93
- modName = name.substring(0, index);
94
- ext = name.substring(index + 1, name.length);
95
- } else {
96
- modName = name;
97
- }
98
-
99
- temp = ext || modName;
100
- index = temp.indexOf("!");
101
- if (index !== -1) {
102
- //Pull off the strip arg.
103
- strip = temp.substring(index + 1) === "strip";
104
- temp = temp.substring(0, index);
105
- if (ext) {
106
- ext = temp;
107
- } else {
108
- modName = temp;
109
- }
110
- }
111
-
112
- return {
113
- moduleName: modName,
114
- ext: ext,
115
- strip: strip
116
- };
117
- },
118
-
119
- xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/,
120
-
121
- /**
122
- * Is an URL on another domain. Only works for browser use, returns
123
- * false in non-browser environments. Only used to know if an
124
- * optimized .js version of a text resource should be loaded
125
- * instead.
126
- * @param {String} url
127
- * @returns Boolean
128
- */
129
- useXhr: function (url, protocol, hostname, port) {
130
- var uProtocol, uHostName, uPort,
131
- match = text.xdRegExp.exec(url);
132
- if (!match) {
133
- return true;
134
- }
135
- uProtocol = match[2];
136
- uHostName = match[3];
137
-
138
- uHostName = uHostName.split(':');
139
- uPort = uHostName[1];
140
- uHostName = uHostName[0];
141
-
142
- return (!uProtocol || uProtocol === protocol) &&
143
- (!uHostName || uHostName.toLowerCase() === hostname.toLowerCase()) &&
144
- ((!uPort && !uHostName) || uPort === port);
145
- },
146
-
147
- finishLoad: function (name, strip, content, onLoad) {
148
- content = strip ? text.strip(content) : content;
149
- if (masterConfig.isBuild) {
150
- buildMap[name] = content;
151
- }
152
- onLoad(content);
153
- },
154
-
155
- load: function (name, req, onLoad, config) {
156
- //Name has format: some.module.filext!strip
157
- //The strip part is optional.
158
- //if strip is present, then that means only get the string contents
159
- //inside a body tag in an HTML string. For XML/SVG content it means
160
- //removing the <?xml ...?> declarations so the content can be inserted
161
- //into the current doc without problems.
162
-
163
- // Do not bother with the work if a build and text will
164
- // not be inlined.
165
- if (config.isBuild && !config.inlineText) {
166
- onLoad();
167
- return;
168
- }
169
-
170
- masterConfig.isBuild = config.isBuild;
171
-
172
- var parsed = text.parseName(name),
173
- nonStripName = parsed.moduleName +
174
- (parsed.ext ? '.' + parsed.ext : ''),
175
- url = req.toUrl(nonStripName),
176
- useXhr = (masterConfig.useXhr) ||
177
- text.useXhr;
178
-
179
- // Do not load if it is an empty: url
180
- if (url.indexOf('empty:') === 0) {
181
- onLoad();
182
- return;
183
- }
184
-
185
- //Load the text. Use XHR if possible and in a browser.
186
- if (!hasLocation || useXhr(url, defaultProtocol, defaultHostName, defaultPort)) {
187
- text.get(url, function (content) {
188
- text.finishLoad(name, parsed.strip, content, onLoad);
189
- }, function (err) {
190
- if (onLoad.error) {
191
- onLoad.error(err);
192
- }
193
- });
194
- } else {
195
- //Need to fetch the resource across domains. Assume
196
- //the resource has been optimized into a JS module. Fetch
197
- //by the module name + extension, but do not include the
198
- //!strip part to avoid file system issues.
199
- req([nonStripName], function (content) {
200
- text.finishLoad(parsed.moduleName + '.' + parsed.ext,
201
- parsed.strip, content, onLoad);
202
- });
203
- }
204
- },
205
-
206
- write: function (pluginName, moduleName, write, config) {
207
- if (buildMap.hasOwnProperty(moduleName)) {
208
- var content = text.jsEscape(buildMap[moduleName]);
209
- write.asModule(pluginName + "!" + moduleName,
210
- "define(function () { return '" +
211
- content +
212
- "';});\n");
213
- }
214
- },
215
-
216
- writeFile: function (pluginName, moduleName, req, write, config) {
217
- var parsed = text.parseName(moduleName),
218
- extPart = parsed.ext ? '.' + parsed.ext : '',
219
- nonStripName = parsed.moduleName + extPart,
220
- //Use a '.js' file name so that it indicates it is a
221
- //script that can be loaded across domains.
222
- fileName = req.toUrl(parsed.moduleName + extPart) + '.js';
223
-
224
- //Leverage own load() method to load plugin value, but only
225
- //write out values that do not have the strip argument,
226
- //to avoid any potential issues with ! in file names.
227
- text.load(nonStripName, req, function (value) {
228
- //Use own write() method to construct full module value.
229
- //But need to create shell that translates writeFile's
230
- //write() to the right interface.
231
- var textWrite = function (contents) {
232
- return write(fileName, contents);
233
- };
234
- textWrite.asModule = function (moduleName, contents) {
235
- return write.asModule(moduleName, fileName, contents);
236
- };
237
-
238
- text.write(pluginName, nonStripName, textWrite, config);
239
- }, config);
240
- }
241
- };
242
-
243
- if (masterConfig.env === 'node' || (!masterConfig.env &&
244
- typeof process !== "undefined" &&
245
- process.versions &&
246
- !!process.versions.node &&
247
- !process.versions['node-webkit'])) {
248
- //Using special require.nodeRequire, something added by r.js.
249
- fs = require.nodeRequire('fs');
250
-
251
- text.get = function (url, callback, errback) {
252
- try {
253
- var file = fs.readFileSync(url, 'utf8');
254
- //Remove BOM (Byte Mark Order) from utf8 files if it is there.
255
- if (file.indexOf('\uFEFF') === 0) {
256
- file = file.substring(1);
257
- }
258
- callback(file);
259
- } catch (e) {
260
- errback(e);
261
- }
262
- };
263
- } else if (masterConfig.env === 'xhr' || (!masterConfig.env &&
264
- text.createXhr())) {
265
- text.get = function (url, callback, errback, headers) {
266
- var xhr = text.createXhr(), header;
267
- xhr.open('GET', url, true);
268
-
269
- //Allow plugins direct access to xhr headers
270
- if (headers) {
271
- for (header in headers) {
272
- if (headers.hasOwnProperty(header)) {
273
- xhr.setRequestHeader(header.toLowerCase(), headers[header]);
274
- }
275
- }
276
- }
277
-
278
- //Allow overrides specified in config
279
- if (masterConfig.onXhr) {
280
- masterConfig.onXhr(xhr, url);
281
- }
282
-
283
- xhr.onreadystatechange = function (evt) {
284
- var status, err;
285
- //Do not explicitly handle errors, those should be
286
- //visible via console output in the browser.
287
- if (xhr.readyState === 4) {
288
- status = xhr.status;
289
- if (status > 399 && status < 600) {
290
- //An http 4xx or 5xx error. Signal an error.
291
- err = new Error(url + ' HTTP status: ' + status);
292
- err.xhr = xhr;
293
- errback(err);
294
- } else {
295
- callback(xhr.responseText);
296
- }
297
-
298
- if (masterConfig.onXhrComplete) {
299
- masterConfig.onXhrComplete(xhr, url);
300
- }
301
- }
302
- };
303
- xhr.send(null);
304
- };
305
- } else if (masterConfig.env === 'rhino' || (!masterConfig.env &&
306
- typeof Packages !== 'undefined' && typeof java !== 'undefined')) {
307
- //Why Java, why is this so awkward?
308
- text.get = function (url, callback) {
309
- var stringBuffer, line,
310
- encoding = "utf-8",
311
- file = new java.io.File(url),
312
- lineSeparator = java.lang.System.getProperty("line.separator"),
313
- input = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(file), encoding)),
314
- content = '';
315
- try {
316
- stringBuffer = new java.lang.StringBuffer();
317
- line = input.readLine();
318
-
319
- // Byte Order Mark (BOM) - The Unicode Standard, version 3.0, page 324
320
- // http://www.unicode.org/faq/utf_bom.html
321
-
322
- // Note that when we use utf-8, the BOM should appear as "EF BB BF", but it doesn't due to this bug in the JDK:
323
- // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058
324
- if (line && line.length() && line.charAt(0) === 0xfeff) {
325
- // Eat the BOM, since we've already found the encoding on this file,
326
- // and we plan to concatenating this buffer with others; the BOM should
327
- // only appear at the top of a file.
328
- line = line.substring(1);
329
- }
330
-
331
- if (line !== null) {
332
- stringBuffer.append(line);
333
- }
334
-
335
- while ((line = input.readLine()) !== null) {
336
- stringBuffer.append(lineSeparator);
337
- stringBuffer.append(line);
338
- }
339
- //Make sure we return a JavaScript string and not a Java string.
340
- content = String(stringBuffer.toString()); //String
341
- } finally {
342
- input.close();
343
- }
344
- callback(content);
345
- };
346
- } else if (masterConfig.env === 'xpconnect' || (!masterConfig.env &&
347
- typeof Components !== 'undefined' && Components.classes &&
348
- Components.interfaces)) {
349
- //Avert your gaze!
350
- Cc = Components.classes,
351
- Ci = Components.interfaces;
352
- Components.utils['import']('resource://gre/modules/FileUtils.jsm');
353
- xpcIsWindows = ('@mozilla.org/windows-registry-key;1' in Cc);
354
-
355
- text.get = function (url, callback) {
356
- var inStream, convertStream, fileObj,
357
- readData = {};
358
-
359
- if (xpcIsWindows) {
360
- url = url.replace(/\//g, '\\');
361
- }
362
-
363
- fileObj = new FileUtils.File(url);
364
-
365
- //XPCOM, you so crazy
366
- try {
367
- inStream = Cc['@mozilla.org/network/file-input-stream;1']
368
- .createInstance(Ci.nsIFileInputStream);
369
- inStream.init(fileObj, 1, 0, false);
370
-
371
- convertStream = Cc['@mozilla.org/intl/converter-input-stream;1']
372
- .createInstance(Ci.nsIConverterInputStream);
373
- convertStream.init(inStream, "utf-8", inStream.available(),
374
- Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
375
-
376
- convertStream.readString(inStream.available(), readData);
377
- convertStream.close();
378
- inStream.close();
379
- callback(readData.value);
380
- } catch (e) {
381
- throw new Error((fileObj && fileObj.path || '') + ': ' + e);
382
- }
383
- };
384
- }
385
- return text;
386
- });