fhirsmith 0.3.0

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 (277) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/FHIRsmith.png +0 -0
  3. package/README.md +277 -0
  4. package/config-template.json +144 -0
  5. package/library/folder-setup.js +58 -0
  6. package/library/html-server.js +166 -0
  7. package/library/html.js +835 -0
  8. package/library/i18nsupport.js +259 -0
  9. package/library/languages.js +779 -0
  10. package/library/logger-telnet.js +205 -0
  11. package/library/logger.js +279 -0
  12. package/library/package-manager.js +876 -0
  13. package/library/utilities.js +196 -0
  14. package/library/version-utilities.js +1056 -0
  15. package/npmprojector/config-example.json +13 -0
  16. package/npmprojector/indexer.js +394 -0
  17. package/npmprojector/npmprojector.js +395 -0
  18. package/npmprojector/readme.md +174 -0
  19. package/npmprojector/watcher.js +335 -0
  20. package/package.json +119 -0
  21. package/packages/package-crawler.js +846 -0
  22. package/packages/packages-template.html +126 -0
  23. package/packages/packages.js +2838 -0
  24. package/passwords.ini +2 -0
  25. package/publisher/publisher-template.html +208 -0
  26. package/publisher/publisher.js +2167 -0
  27. package/publisher/task-draft.js +458 -0
  28. package/registry/api.js +735 -0
  29. package/registry/crawler.js +637 -0
  30. package/registry/model.js +513 -0
  31. package/registry/readme.md +243 -0
  32. package/registry/registry-data.json +121015 -0
  33. package/registry/registry-template.html +126 -0
  34. package/registry/registry.js +1395 -0
  35. package/registry/test-runner.js +237 -0
  36. package/root-template.html +124 -0
  37. package/server.js +524 -0
  38. package/shl/private-key.pem +5 -0
  39. package/shl/public-key.pem +18 -0
  40. package/shl/shl.js +1125 -0
  41. package/shl/vhl.js +69 -0
  42. package/static/FHIRsmith128.png +0 -0
  43. package/static/FHIRsmith16.png +0 -0
  44. package/static/FHIRsmith32.png +0 -0
  45. package/static/FHIRsmith64.png +0 -0
  46. package/static/assets/css/bootstrap-fhir.css +5302 -0
  47. package/static/assets/css/bootstrap-glyphicons.css +2 -0
  48. package/static/assets/css/bootstrap.css +4097 -0
  49. package/static/assets/css/jquery-ui.css +523 -0
  50. package/static/assets/css/jquery-ui.structure.css +863 -0
  51. package/static/assets/css/jquery-ui.structure.min.css +5 -0
  52. package/static/assets/css/jquery-ui.theme.css +439 -0
  53. package/static/assets/css/jquery-ui.theme.min.css +5 -0
  54. package/static/assets/css/jquery.ui.all.css +7 -0
  55. package/static/assets/css/modules.css +18 -0
  56. package/static/assets/css/project.css +367 -0
  57. package/static/assets/css/pygments-manni.css +66 -0
  58. package/static/assets/css/tags.css +74 -0
  59. package/static/assets/css/xml.css +2 -0
  60. package/static/assets/fonts/glyphiconshalflings-regular.eot +0 -0
  61. package/static/assets/fonts/glyphiconshalflings-regular.otf +0 -0
  62. package/static/assets/fonts/glyphiconshalflings-regular.svg +175 -0
  63. package/static/assets/fonts/glyphiconshalflings-regular.ttf +0 -0
  64. package/static/assets/fonts/glyphiconshalflings-regular.woff +0 -0
  65. package/static/assets/ico/apple-touch-icon-114-precomposed.png +0 -0
  66. package/static/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
  67. package/static/assets/ico/apple-touch-icon-57-precomposed.png +0 -0
  68. package/static/assets/ico/apple-touch-icon-72-precomposed.png +0 -0
  69. package/static/assets/ico/favicon.ico +0 -0
  70. package/static/assets/ico/favicon.png +0 -0
  71. package/static/assets/images/fhir-logo-www.png +0 -0
  72. package/static/assets/images/fhir-logo.png +0 -0
  73. package/static/assets/images/hl7-logo.png +0 -0
  74. package/static/assets/images/logo_ansinew.jpg +0 -0
  75. package/static/assets/images/search.png +0 -0
  76. package/static/assets/images/stripe.png +0 -0
  77. package/static/assets/images/target.png +0 -0
  78. package/static/assets/images/tx-registry-root.gif +0 -0
  79. package/static/assets/images/tx-registry.png +0 -0
  80. package/static/assets/images/tx-server.png +0 -0
  81. package/static/assets/images/tx-version.png +0 -0
  82. package/static/assets/js/bootstrap.min.js +6 -0
  83. package/static/assets/js/fhir-gw.js +259 -0
  84. package/static/assets/js/fhir.js +2 -0
  85. package/static/assets/js/html5shiv.js +8 -0
  86. package/static/assets/js/jcookie.js +96 -0
  87. package/static/assets/js/jquery-ui.min.js +6 -0
  88. package/static/assets/js/jquery.js +10716 -0
  89. package/static/assets/js/jquery.min.js +2 -0
  90. package/static/assets/js/jquery.ui.core.js +314 -0
  91. package/static/assets/js/jquery.ui.draggable.js +825 -0
  92. package/static/assets/js/jquery.ui.mouse.js +162 -0
  93. package/static/assets/js/jquery.ui.resizable.js +842 -0
  94. package/static/assets/js/jquery.ui.widget.js +268 -0
  95. package/static/assets/js/json2.js +487 -0
  96. package/static/assets/js/jtip.js +97 -0
  97. package/static/assets/js/respond.min.js +6 -0
  98. package/static/assets/js/statuspage.js +70 -0
  99. package/static/assets/js/xml.js +2 -0
  100. package/static/dist/js/bootstrap.js +1964 -0
  101. package/static/favicon.png +0 -0
  102. package/static/fhir.css +626 -0
  103. package/static/icon-fhir-16.png +0 -0
  104. package/static/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  105. package/static/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  106. package/static/images/ui-bg_flat_10_000000_40x100.png +0 -0
  107. package/static/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  108. package/static/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  109. package/static/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  110. package/static/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  111. package/static/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  112. package/static/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  113. package/static/images/ui-icons_222222_256x240.png +0 -0
  114. package/static/images/ui-icons_228ef1_256x240.png +0 -0
  115. package/static/images/ui-icons_ef8c08_256x240.png +0 -0
  116. package/static/images/ui-icons_ffd27a_256x240.png +0 -0
  117. package/static/images/ui-icons_ffffff_256x240.png +0 -0
  118. package/static/js/jquery.effects.blind.js +49 -0
  119. package/static/js/jquery.effects.bounce.js +78 -0
  120. package/static/js/jquery.effects.clip.js +54 -0
  121. package/static/js/jquery.effects.core.js +763 -0
  122. package/static/js/jquery.effects.drop.js +50 -0
  123. package/static/js/jquery.effects.explode.js +79 -0
  124. package/static/js/jquery.effects.fade.js +32 -0
  125. package/static/js/jquery.effects.fold.js +56 -0
  126. package/static/js/jquery.effects.highlight.js +50 -0
  127. package/static/js/jquery.effects.pulsate.js +51 -0
  128. package/static/js/jquery.effects.scale.js +178 -0
  129. package/static/js/jquery.effects.shake.js +57 -0
  130. package/static/js/jquery.effects.slide.js +50 -0
  131. package/static/js/jquery.effects.transfer.js +45 -0
  132. package/static/js/jquery.ui.accordion.js +611 -0
  133. package/static/js/jquery.ui.autocomplete.js +612 -0
  134. package/static/js/jquery.ui.button.js +416 -0
  135. package/static/js/jquery.ui.datepicker.js +1823 -0
  136. package/static/js/jquery.ui.dialog.js +878 -0
  137. package/static/js/jquery.ui.droppable.js +296 -0
  138. package/static/js/jquery.ui.position.js +252 -0
  139. package/static/js/jquery.ui.progressbar.js +109 -0
  140. package/static/js/jquery.ui.selectable.js +266 -0
  141. package/static/js/jquery.ui.slider.js +666 -0
  142. package/static/js/jquery.ui.sortable.js +1077 -0
  143. package/static/js/jquery.ui.tabs.js +758 -0
  144. package/stats.js +80 -0
  145. package/test-cache/vsac/vsac-valuesets.db +0 -0
  146. package/token/nginx_passport_setup.md +383 -0
  147. package/token/security_guide.md +294 -0
  148. package/token/token-template.html +330 -0
  149. package/token/token.js +1300 -0
  150. package/translations/Messages.properties +1510 -0
  151. package/translations/Messages_ar.properties +1399 -0
  152. package/translations/Messages_de.properties +836 -0
  153. package/translations/Messages_es.properties +737 -0
  154. package/translations/Messages_fr.properties +1 -0
  155. package/translations/Messages_ja.properties +893 -0
  156. package/translations/Messages_nl.properties +1357 -0
  157. package/translations/Messages_pt.properties +1302 -0
  158. package/translations/Messages_ru.properties +1 -0
  159. package/translations/Messages_uz.properties +1 -0
  160. package/translations/Messages_zh.properties +1 -0
  161. package/translations/rendering-phrases.properties +1128 -0
  162. package/translations/rendering-phrases_ar.properties +1091 -0
  163. package/translations/rendering-phrases_de.properties +6 -0
  164. package/translations/rendering-phrases_es.properties +6 -0
  165. package/translations/rendering-phrases_fr.properties +624 -0
  166. package/translations/rendering-phrases_ja.properties +21 -0
  167. package/translations/rendering-phrases_nl.properties +970 -0
  168. package/translations/rendering-phrases_pt.properties +1020 -0
  169. package/translations/rendering-phrases_ru.properties +1094 -0
  170. package/translations/rendering-phrases_uz.properties +1 -0
  171. package/translations/rendering-phrases_zh.properties +1 -0
  172. package/tx/README.md +418 -0
  173. package/tx/cm/cm-api.js +110 -0
  174. package/tx/cm/cm-database.js +735 -0
  175. package/tx/cm/cm-package.js +325 -0
  176. package/tx/cs/cs-api.js +789 -0
  177. package/tx/cs/cs-areacode.js +615 -0
  178. package/tx/cs/cs-country.js +1110 -0
  179. package/tx/cs/cs-cpt.js +785 -0
  180. package/tx/cs/cs-cs.js +1579 -0
  181. package/tx/cs/cs-currency.js +539 -0
  182. package/tx/cs/cs-db.js +1321 -0
  183. package/tx/cs/cs-hgvs.js +329 -0
  184. package/tx/cs/cs-lang.js +465 -0
  185. package/tx/cs/cs-loinc.js +1485 -0
  186. package/tx/cs/cs-mimetypes.js +238 -0
  187. package/tx/cs/cs-ndc.js +704 -0
  188. package/tx/cs/cs-omop.js +1025 -0
  189. package/tx/cs/cs-provider-api.js +43 -0
  190. package/tx/cs/cs-provider-list.js +37 -0
  191. package/tx/cs/cs-rxnorm.js +808 -0
  192. package/tx/cs/cs-snomed.js +1102 -0
  193. package/tx/cs/cs-ucum.js +514 -0
  194. package/tx/cs/cs-unii.js +271 -0
  195. package/tx/cs/cs-uri.js +218 -0
  196. package/tx/cs/cs-usstates.js +305 -0
  197. package/tx/dev.fhir.org.yml +14 -0
  198. package/tx/fixtures/test-cases-setup.json +18 -0
  199. package/tx/fixtures/test-cases.yml +16 -0
  200. package/tx/html/codesystem-operations.liquid +25 -0
  201. package/tx/html/home-metrics.liquid +247 -0
  202. package/tx/html/operations-form.liquid +148 -0
  203. package/tx/html/search-form.liquid +62 -0
  204. package/tx/html/tx-template.html +133 -0
  205. package/tx/html/valueset-operations.liquid +54 -0
  206. package/tx/importers/atc-to-fhir.js +316 -0
  207. package/tx/importers/import-loinc.module.js +1536 -0
  208. package/tx/importers/import-ndc.module.js +1088 -0
  209. package/tx/importers/import-rxnorm.module.js +898 -0
  210. package/tx/importers/import-sct.module.js +2457 -0
  211. package/tx/importers/import-unii.module.js +601 -0
  212. package/tx/importers/readme.md +453 -0
  213. package/tx/importers/subset-loinc.module.js +1081 -0
  214. package/tx/importers/subset-rxnorm.module.js +938 -0
  215. package/tx/importers/tx-import-base.js +351 -0
  216. package/tx/importers/tx-import-settings.js +310 -0
  217. package/tx/importers/tx-import.js +357 -0
  218. package/tx/library/canonical-resource.js +88 -0
  219. package/tx/library/capabilitystatement.js +292 -0
  220. package/tx/library/codesystem.js +774 -0
  221. package/tx/library/conceptmap.js +568 -0
  222. package/tx/library/designations.js +932 -0
  223. package/tx/library/errors.js +77 -0
  224. package/tx/library/extensions.js +117 -0
  225. package/tx/library/namingsystem.js +322 -0
  226. package/tx/library/operation-outcome.js +127 -0
  227. package/tx/library/parameters.js +105 -0
  228. package/tx/library/renderer.js +1559 -0
  229. package/tx/library/terminologycapabilities.js +418 -0
  230. package/tx/library/ucum-parsers.js +1029 -0
  231. package/tx/library/ucum-service.js +370 -0
  232. package/tx/library/ucum-types.js +1099 -0
  233. package/tx/library/valueset.js +543 -0
  234. package/tx/library.js +676 -0
  235. package/tx/ocl/cm-ocl.js +106 -0
  236. package/tx/ocl/cs-ocl.js +39 -0
  237. package/tx/ocl/vs-ocl.js +105 -0
  238. package/tx/operation-context.js +568 -0
  239. package/tx/params.js +613 -0
  240. package/tx/provider.js +403 -0
  241. package/tx/sct/ecl.js +1560 -0
  242. package/tx/sct/expressions.js +2077 -0
  243. package/tx/sct/structures.js +1396 -0
  244. package/tx/tx-html.js +1063 -0
  245. package/tx/tx.fhir.org.yml +39 -0
  246. package/tx/tx.js +927 -0
  247. package/tx/vs/vs-api.js +112 -0
  248. package/tx/vs/vs-database.js +786 -0
  249. package/tx/vs/vs-package.js +358 -0
  250. package/tx/vs/vs-vsac.js +366 -0
  251. package/tx/workers/batch-validate.js +129 -0
  252. package/tx/workers/batch.js +361 -0
  253. package/tx/workers/closure.js +32 -0
  254. package/tx/workers/expand.js +1845 -0
  255. package/tx/workers/lookup.js +407 -0
  256. package/tx/workers/metadata.js +467 -0
  257. package/tx/workers/operations.js +34 -0
  258. package/tx/workers/read.js +164 -0
  259. package/tx/workers/search.js +384 -0
  260. package/tx/workers/subsumes.js +334 -0
  261. package/tx/workers/translate.js +492 -0
  262. package/tx/workers/validate.js +2504 -0
  263. package/tx/workers/worker.js +904 -0
  264. package/tx/xml/capabilitystatement-xml.js +63 -0
  265. package/tx/xml/codesystem-xml.js +62 -0
  266. package/tx/xml/conceptmap-xml.js +65 -0
  267. package/tx/xml/namingsystem-xml.js +65 -0
  268. package/tx/xml/operationoutcome-xml.js +127 -0
  269. package/tx/xml/parameters-xml.js +312 -0
  270. package/tx/xml/terminologycapabilities-xml.js +64 -0
  271. package/tx/xml/valueset-xml.js +64 -0
  272. package/tx/xml/xml-base.js +603 -0
  273. package/vcl/vcl-parser.js +1098 -0
  274. package/vcl/vcl.js +253 -0
  275. package/windows-install.js +19 -0
  276. package/xig/xig-template.html +124 -0
  277. package/xig/xig.js +3049 -0
@@ -0,0 +1,296 @@
1
+ /*
2
+ * jQuery UI Droppable 1.8.16
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Droppables
9
+ *
10
+ * Depends:
11
+ * jquery.ui.core.js
12
+ * jquery.ui.widget.js
13
+ * jquery.ui.mouse.js
14
+ * jquery.ui.draggable.js
15
+ */
16
+ (function( $, undefined ) {
17
+
18
+ $.widget("ui.droppable", {
19
+ widgetEventPrefix: "drop",
20
+ options: {
21
+ accept: '*',
22
+ activeClass: false,
23
+ addClasses: true,
24
+ greedy: false,
25
+ hoverClass: false,
26
+ scope: 'default',
27
+ tolerance: 'intersect'
28
+ },
29
+ _create: function() {
30
+
31
+ var o = this.options, accept = o.accept;
32
+ this.isover = 0; this.isout = 1;
33
+
34
+ this.accept = $.isFunction(accept) ? accept : function(d) {
35
+ return d.is(accept);
36
+ };
37
+
38
+ //Store the droppable's proportions
39
+ this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
40
+
41
+ // Add the reference and positions to the manager
42
+ $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
43
+ $.ui.ddmanager.droppables[o.scope].push(this);
44
+
45
+ (o.addClasses && this.element.addClass("ui-droppable"));
46
+
47
+ },
48
+
49
+ destroy: function() {
50
+ var drop = $.ui.ddmanager.droppables[this.options.scope];
51
+ for ( var i = 0; i < drop.length; i++ )
52
+ if ( drop[i] == this )
53
+ drop.splice(i, 1);
54
+
55
+ this.element
56
+ .removeClass("ui-droppable ui-droppable-disabled")
57
+ .removeData("droppable")
58
+ .unbind(".droppable");
59
+
60
+ return this;
61
+ },
62
+
63
+ _setOption: function(key, value) {
64
+
65
+ if(key == 'accept') {
66
+ this.accept = $.isFunction(value) ? value : function(d) {
67
+ return d.is(value);
68
+ };
69
+ }
70
+ $.Widget.prototype._setOption.apply(this, arguments);
71
+ },
72
+
73
+ _activate: function(event) {
74
+ var draggable = $.ui.ddmanager.current;
75
+ if(this.options.activeClass) this.element.addClass(this.options.activeClass);
76
+ (draggable && this._trigger('activate', event, this.ui(draggable)));
77
+ },
78
+
79
+ _deactivate: function(event) {
80
+ var draggable = $.ui.ddmanager.current;
81
+ if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
82
+ (draggable && this._trigger('deactivate', event, this.ui(draggable)));
83
+ },
84
+
85
+ _over: function(event) {
86
+
87
+ var draggable = $.ui.ddmanager.current;
88
+ if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
89
+
90
+ if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
91
+ if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);
92
+ this._trigger('over', event, this.ui(draggable));
93
+ }
94
+
95
+ },
96
+
97
+ _out: function(event) {
98
+
99
+ var draggable = $.ui.ddmanager.current;
100
+ if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
101
+
102
+ if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
103
+ if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
104
+ this._trigger('out', event, this.ui(draggable));
105
+ }
106
+
107
+ },
108
+
109
+ _drop: function(event,custom) {
110
+
111
+ var draggable = custom || $.ui.ddmanager.current;
112
+ if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element
113
+
114
+ var childrenIntersection = false;
115
+ this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
116
+ var inst = $.data(this, 'droppable');
117
+ if(
118
+ inst.options.greedy
119
+ && !inst.options.disabled
120
+ && inst.options.scope == draggable.options.scope
121
+ && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))
122
+ && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)
123
+ ) { childrenIntersection = true; return false; }
124
+ });
125
+ if(childrenIntersection) return false;
126
+
127
+ if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
128
+ if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
129
+ if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
130
+ this._trigger('drop', event, this.ui(draggable));
131
+ return this.element;
132
+ }
133
+
134
+ return false;
135
+
136
+ },
137
+
138
+ ui: function(c) {
139
+ return {
140
+ draggable: (c.currentItem || c.element),
141
+ helper: c.helper,
142
+ position: c.position,
143
+ offset: c.positionAbs
144
+ };
145
+ }
146
+
147
+ });
148
+
149
+ $.extend($.ui.droppable, {
150
+ version: "1.8.16"
151
+ });
152
+
153
+ $.ui.intersect = function(draggable, droppable, toleranceMode) {
154
+
155
+ if (!droppable.offset) return false;
156
+
157
+ var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,
158
+ y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;
159
+ var l = droppable.offset.left, r = l + droppable.proportions.width,
160
+ t = droppable.offset.top, b = t + droppable.proportions.height;
161
+
162
+ switch (toleranceMode) {
163
+ case 'fit':
164
+ return (l <= x1 && x2 <= r
165
+ && t <= y1 && y2 <= b);
166
+ break;
167
+ case 'intersect':
168
+ return (l < x1 + (draggable.helperProportions.width / 2) // Right Half
169
+ && x2 - (draggable.helperProportions.width / 2) < r // Left Half
170
+ && t < y1 + (draggable.helperProportions.height / 2) // Bottom Half
171
+ && y2 - (draggable.helperProportions.height / 2) < b ); // Top Half
172
+ break;
173
+ case 'pointer':
174
+ var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),
175
+ draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),
176
+ isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
177
+ return isOver;
178
+ break;
179
+ case 'touch':
180
+ return (
181
+ (y1 >= t && y1 <= b) || // Top edge touching
182
+ (y2 >= t && y2 <= b) || // Bottom edge touching
183
+ (y1 < t && y2 > b) // Surrounded vertically
184
+ ) && (
185
+ (x1 >= l && x1 <= r) || // Left edge touching
186
+ (x2 >= l && x2 <= r) || // Right edge touching
187
+ (x1 < l && x2 > r) // Surrounded horizontally
188
+ );
189
+ break;
190
+ default:
191
+ return false;
192
+ break;
193
+ }
194
+
195
+ };
196
+
197
+ /*
198
+ This manager tracks offsets of draggables and droppables
199
+ */
200
+ $.ui.ddmanager = {
201
+ current: null,
202
+ droppables: { 'default': [] },
203
+ prepareOffsets: function(t, event) {
204
+
205
+ var m = $.ui.ddmanager.droppables[t.options.scope] || [];
206
+ var type = event ? event.type : null; // workaround for #2317
207
+ var list = (t.currentItem || t.element).find(":data(droppable)").andSelf();
208
+
209
+ droppablesLoop: for (var i = 0; i < m.length; i++) {
210
+
211
+ if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue; //No disabled and non-accepted
212
+ for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item
213
+ m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; //If the element is not visible, continue
214
+
215
+ if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables
216
+
217
+ m[i].offset = m[i].element.offset();
218
+ m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
219
+
220
+ }
221
+
222
+ },
223
+ drop: function(draggable, event) {
224
+
225
+ var dropped = false;
226
+ $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
227
+
228
+ if(!this.options) return;
229
+ if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
230
+ dropped = dropped || this._drop.call(this, event);
231
+
232
+ if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
233
+ this.isout = 1; this.isover = 0;
234
+ this._deactivate.call(this, event);
235
+ }
236
+
237
+ });
238
+ return dropped;
239
+
240
+ },
241
+ dragStart: function( draggable, event ) {
242
+ //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)
243
+ draggable.element.parents( ":not(body,html)" ).bind( "scroll.droppable", function() {
244
+ if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event );
245
+ });
246
+ },
247
+ drag: function(draggable, event) {
248
+
249
+ //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
250
+ if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
251
+
252
+ //Run through all droppables and check their positions based on specific tolerance options
253
+ $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
254
+
255
+ if(this.options.disabled || this.greedyChild || !this.visible) return;
256
+ var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
257
+
258
+ var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
259
+ if(!c) return;
260
+
261
+ var parentInstance;
262
+ if (this.options.greedy) {
263
+ var parent = this.element.parents(':data(droppable):eq(0)');
264
+ if (parent.length) {
265
+ parentInstance = $.data(parent[0], 'droppable');
266
+ parentInstance.greedyChild = (c == 'isover' ? 1 : 0);
267
+ }
268
+ }
269
+
270
+ // we just moved into a greedy child
271
+ if (parentInstance && c == 'isover') {
272
+ parentInstance['isover'] = 0;
273
+ parentInstance['isout'] = 1;
274
+ parentInstance._out.call(parentInstance, event);
275
+ }
276
+
277
+ this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;
278
+ this[c == "isover" ? "_over" : "_out"].call(this, event);
279
+
280
+ // we just moved out of a greedy child
281
+ if (parentInstance && c == 'isout') {
282
+ parentInstance['isout'] = 0;
283
+ parentInstance['isover'] = 1;
284
+ parentInstance._over.call(parentInstance, event);
285
+ }
286
+ });
287
+
288
+ },
289
+ dragStop: function( draggable, event ) {
290
+ draggable.element.parents( ":not(body,html)" ).unbind( "scroll.droppable" );
291
+ //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)
292
+ if( !draggable.options.refreshPositions ) $.ui.ddmanager.prepareOffsets( draggable, event );
293
+ }
294
+ };
295
+
296
+ })(jQuery);
@@ -0,0 +1,252 @@
1
+ /*
2
+ * jQuery UI Position 1.8.16
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Position
9
+ */
10
+ (function( $, undefined ) {
11
+
12
+ $.ui = $.ui || {};
13
+
14
+ var horizontalPositions = /left|center|right/,
15
+ verticalPositions = /top|center|bottom/,
16
+ center = "center",
17
+ _position = $.fn.position,
18
+ _offset = $.fn.offset;
19
+
20
+ $.fn.position = function( options ) {
21
+ if ( !options || !options.of ) {
22
+ return _position.apply( this, arguments );
23
+ }
24
+
25
+ // make a copy, we don't want to modify arguments
26
+ options = $.extend( {}, options );
27
+
28
+ var target = $( options.of ),
29
+ targetElem = target[0],
30
+ collision = ( options.collision || "flip" ).split( " " ),
31
+ offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
32
+ targetWidth,
33
+ targetHeight,
34
+ basePosition;
35
+
36
+ if ( targetElem.nodeType === 9 ) {
37
+ targetWidth = target.width();
38
+ targetHeight = target.height();
39
+ basePosition = { top: 0, left: 0 };
40
+ // TODO: use $.isWindow() in 1.9
41
+ } else if ( targetElem.setTimeout ) {
42
+ targetWidth = target.width();
43
+ targetHeight = target.height();
44
+ basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
45
+ } else if ( targetElem.preventDefault ) {
46
+ // force left top to allow flipping
47
+ options.at = "left top";
48
+ targetWidth = targetHeight = 0;
49
+ basePosition = { top: options.of.pageY, left: options.of.pageX };
50
+ } else {
51
+ targetWidth = target.outerWidth();
52
+ targetHeight = target.outerHeight();
53
+ basePosition = target.offset();
54
+ }
55
+
56
+ // force my and at to have valid horizontal and veritcal positions
57
+ // if a value is missing or invalid, it will be converted to center
58
+ $.each( [ "my", "at" ], function() {
59
+ var pos = ( options[this] || "" ).split( " " );
60
+ if ( pos.length === 1) {
61
+ pos = horizontalPositions.test( pos[0] ) ?
62
+ pos.concat( [center] ) :
63
+ verticalPositions.test( pos[0] ) ?
64
+ [ center ].concat( pos ) :
65
+ [ center, center ];
66
+ }
67
+ pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
68
+ pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
69
+ options[ this ] = pos;
70
+ });
71
+
72
+ // normalize collision option
73
+ if ( collision.length === 1 ) {
74
+ collision[ 1 ] = collision[ 0 ];
75
+ }
76
+
77
+ // normalize offset option
78
+ offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
79
+ if ( offset.length === 1 ) {
80
+ offset[ 1 ] = offset[ 0 ];
81
+ }
82
+ offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
83
+
84
+ if ( options.at[0] === "right" ) {
85
+ basePosition.left += targetWidth;
86
+ } else if ( options.at[0] === center ) {
87
+ basePosition.left += targetWidth / 2;
88
+ }
89
+
90
+ if ( options.at[1] === "bottom" ) {
91
+ basePosition.top += targetHeight;
92
+ } else if ( options.at[1] === center ) {
93
+ basePosition.top += targetHeight / 2;
94
+ }
95
+
96
+ basePosition.left += offset[ 0 ];
97
+ basePosition.top += offset[ 1 ];
98
+
99
+ return this.each(function() {
100
+ var elem = $( this ),
101
+ elemWidth = elem.outerWidth(),
102
+ elemHeight = elem.outerHeight(),
103
+ marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,
104
+ marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0,
105
+ collisionWidth = elemWidth + marginLeft +
106
+ ( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ),
107
+ collisionHeight = elemHeight + marginTop +
108
+ ( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ),
109
+ position = $.extend( {}, basePosition ),
110
+ collisionPosition;
111
+
112
+ if ( options.my[0] === "right" ) {
113
+ position.left -= elemWidth;
114
+ } else if ( options.my[0] === center ) {
115
+ position.left -= elemWidth / 2;
116
+ }
117
+
118
+ if ( options.my[1] === "bottom" ) {
119
+ position.top -= elemHeight;
120
+ } else if ( options.my[1] === center ) {
121
+ position.top -= elemHeight / 2;
122
+ }
123
+
124
+ // prevent fractions (see #5280)
125
+ position.left = Math.round( position.left );
126
+ position.top = Math.round( position.top );
127
+
128
+ collisionPosition = {
129
+ left: position.left - marginLeft,
130
+ top: position.top - marginTop
131
+ };
132
+
133
+ $.each( [ "left", "top" ], function( i, dir ) {
134
+ if ( $.ui.position[ collision[i] ] ) {
135
+ $.ui.position[ collision[i] ][ dir ]( position, {
136
+ targetWidth: targetWidth,
137
+ targetHeight: targetHeight,
138
+ elemWidth: elemWidth,
139
+ elemHeight: elemHeight,
140
+ collisionPosition: collisionPosition,
141
+ collisionWidth: collisionWidth,
142
+ collisionHeight: collisionHeight,
143
+ offset: offset,
144
+ my: options.my,
145
+ at: options.at
146
+ });
147
+ }
148
+ });
149
+
150
+ if ( $.fn.bgiframe ) {
151
+ elem.bgiframe();
152
+ }
153
+ elem.offset( $.extend( position, { using: options.using } ) );
154
+ });
155
+ };
156
+
157
+ $.ui.position = {
158
+ fit: {
159
+ left: function( position, data ) {
160
+ var win = $( window ),
161
+ over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();
162
+ position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );
163
+ },
164
+ top: function( position, data ) {
165
+ var win = $( window ),
166
+ over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();
167
+ position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );
168
+ }
169
+ },
170
+
171
+ flip: {
172
+ left: function( position, data ) {
173
+ if ( data.at[0] === center ) {
174
+ return;
175
+ }
176
+ var win = $( window ),
177
+ over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),
178
+ myOffset = data.my[ 0 ] === "left" ?
179
+ -data.elemWidth :
180
+ data.my[ 0 ] === "right" ?
181
+ data.elemWidth :
182
+ 0,
183
+ atOffset = data.at[ 0 ] === "left" ?
184
+ data.targetWidth :
185
+ -data.targetWidth,
186
+ offset = -2 * data.offset[ 0 ];
187
+ position.left += data.collisionPosition.left < 0 ?
188
+ myOffset + atOffset + offset :
189
+ over > 0 ?
190
+ myOffset + atOffset + offset :
191
+ 0;
192
+ },
193
+ top: function( position, data ) {
194
+ if ( data.at[1] === center ) {
195
+ return;
196
+ }
197
+ var win = $( window ),
198
+ over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
199
+ myOffset = data.my[ 1 ] === "top" ?
200
+ -data.elemHeight :
201
+ data.my[ 1 ] === "bottom" ?
202
+ data.elemHeight :
203
+ 0,
204
+ atOffset = data.at[ 1 ] === "top" ?
205
+ data.targetHeight :
206
+ -data.targetHeight,
207
+ offset = -2 * data.offset[ 1 ];
208
+ position.top += data.collisionPosition.top < 0 ?
209
+ myOffset + atOffset + offset :
210
+ over > 0 ?
211
+ myOffset + atOffset + offset :
212
+ 0;
213
+ }
214
+ }
215
+ };
216
+
217
+ // offset setter from jQuery 1.4
218
+ if ( !$.offset.setOffset ) {
219
+ $.offset.setOffset = function( elem, options ) {
220
+ // set position first, in-case top/left are set even on static elem
221
+ if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
222
+ elem.style.position = "relative";
223
+ }
224
+ var curElem = $( elem ),
225
+ curOffset = curElem.offset(),
226
+ curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0,
227
+ curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0,
228
+ props = {
229
+ top: (options.top - curOffset.top) + curTop,
230
+ left: (options.left - curOffset.left) + curLeft
231
+ };
232
+
233
+ if ( 'using' in options ) {
234
+ options.using.call( elem, props );
235
+ } else {
236
+ curElem.css( props );
237
+ }
238
+ };
239
+
240
+ $.fn.offset = function( options ) {
241
+ var elem = this[ 0 ];
242
+ if ( !elem || !elem.ownerDocument ) { return null; }
243
+ if ( options ) {
244
+ return this.each(function() {
245
+ $.offset.setOffset( this, options );
246
+ });
247
+ }
248
+ return _offset.call( this );
249
+ };
250
+ }
251
+
252
+ }( jQuery ));
@@ -0,0 +1,109 @@
1
+ /*
2
+ * jQuery UI Progressbar 1.8.16
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Progressbar
9
+ *
10
+ * Depends:
11
+ * jquery.ui.core.js
12
+ * jquery.ui.widget.js
13
+ */
14
+ (function( $, undefined ) {
15
+
16
+ $.widget( "ui.progressbar", {
17
+ options: {
18
+ value: 0,
19
+ max: 100
20
+ },
21
+
22
+ min: 0,
23
+
24
+ _create: function() {
25
+ this.element
26
+ .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
27
+ .attr({
28
+ role: "progressbar",
29
+ "aria-valuemin": this.min,
30
+ "aria-valuemax": this.options.max,
31
+ "aria-valuenow": this._value()
32
+ });
33
+
34
+ this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
35
+ .appendTo( this.element );
36
+
37
+ this.oldValue = this._value();
38
+ this._refreshValue();
39
+ },
40
+
41
+ destroy: function() {
42
+ this.element
43
+ .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
44
+ .removeAttr( "role" )
45
+ .removeAttr( "aria-valuemin" )
46
+ .removeAttr( "aria-valuemax" )
47
+ .removeAttr( "aria-valuenow" );
48
+
49
+ this.valueDiv.remove();
50
+
51
+ $.Widget.prototype.destroy.apply( this, arguments );
52
+ },
53
+
54
+ value: function( newValue ) {
55
+ if ( newValue === undefined ) {
56
+ return this._value();
57
+ }
58
+
59
+ this._setOption( "value", newValue );
60
+ return this;
61
+ },
62
+
63
+ _setOption: function( key, value ) {
64
+ if ( key === "value" ) {
65
+ this.options.value = value;
66
+ this._refreshValue();
67
+ if ( this._value() === this.options.max ) {
68
+ this._trigger( "complete" );
69
+ }
70
+ }
71
+
72
+ $.Widget.prototype._setOption.apply( this, arguments );
73
+ },
74
+
75
+ _value: function() {
76
+ var val = this.options.value;
77
+ // normalize invalid value
78
+ if ( typeof val !== "number" ) {
79
+ val = 0;
80
+ }
81
+ return Math.min( this.options.max, Math.max( this.min, val ) );
82
+ },
83
+
84
+ _percentage: function() {
85
+ return 100 * this._value() / this.options.max;
86
+ },
87
+
88
+ _refreshValue: function() {
89
+ var value = this.value();
90
+ var percentage = this._percentage();
91
+
92
+ if ( this.oldValue !== value ) {
93
+ this.oldValue = value;
94
+ this._trigger( "change" );
95
+ }
96
+
97
+ this.valueDiv
98
+ .toggle( value > this.min )
99
+ .toggleClass( "ui-corner-right", value === this.options.max )
100
+ .width( percentage.toFixed(0) + "%" );
101
+ this.element.attr( "aria-valuenow", value );
102
+ }
103
+ });
104
+
105
+ $.extend( $.ui.progressbar, {
106
+ version: "1.8.16"
107
+ });
108
+
109
+ })( jQuery );