@angular-wave/angular.ts 0.9.4 → 0.9.5

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 (645) hide show
  1. package/@types/index.d.ts +1 -84
  2. package/{src/index.ts → @types/namespace.d.ts} +4 -24
  3. package/@types/router/template-factory.d.ts +2 -2
  4. package/dist/angular-ts.esm.js +3 -3
  5. package/dist/angular-ts.umd.js +3 -3
  6. package/dist/angular-ts.umd.min.js +1 -1
  7. package/package.json +8 -1
  8. package/.github/workflows/ci.yml +0 -104
  9. package/.github/workflows/gh-pages.yml +0 -75
  10. package/.husky/pre-commit +0 -5
  11. package/.prettierignore +0 -9
  12. package/CHANGELOG.md +0 -17667
  13. package/CODE_OF_CONDUCT.md +0 -3
  14. package/CONTRIBUTING.md +0 -247
  15. package/DEVELOPERS.md +0 -499
  16. package/Makefile +0 -60
  17. package/RELEASE.md +0 -86
  18. package/TRIAGING.md +0 -127
  19. package/docs/.cspell.yml +0 -8
  20. package/docs/.github/dependabot.yml +0 -14
  21. package/docs/.nvmrc +0 -1
  22. package/docs/CONTRIBUTING.md +0 -28
  23. package/docs/Dockerfile +0 -4
  24. package/docs/LICENSE +0 -201
  25. package/docs/README.md +0 -217
  26. package/docs/assets/icons/logo.svg +0 -1
  27. package/docs/assets/scss/_variables_project.scss +0 -12
  28. package/docs/assets/scss/_variables_project_after_bs.scss +0 -8
  29. package/docs/assets/scss/index.scss +0 -48
  30. package/docs/config.yaml +0 -15
  31. package/docs/content/_index.md +0 -28
  32. package/docs/content/docs/_index.md +0 -61
  33. package/docs/content/docs/directive/_index.md +0 -4
  34. package/docs/content/docs/directive/app.md +0 -11
  35. package/docs/content/docs/directive/aria.md +0 -0
  36. package/docs/content/docs/directive/bind.md +0 -72
  37. package/docs/content/docs/directive/blur.md +0 -38
  38. package/docs/content/docs/directive/channel.md +0 -37
  39. package/docs/content/docs/directive/class-even.md +0 -47
  40. package/docs/content/docs/directive/class-odd.md +0 -48
  41. package/docs/content/docs/directive/class.md +0 -64
  42. package/docs/content/docs/directive/click.md +0 -41
  43. package/docs/content/docs/directive/cloak.md +0 -74
  44. package/docs/content/docs/directive/copy.md +0 -38
  45. package/docs/content/docs/directive/cut.md +0 -40
  46. package/docs/content/docs/directive/dblclick.md +0 -41
  47. package/docs/content/docs/directive/focus.md +0 -38
  48. package/docs/content/docs/directive/get.md +0 -203
  49. package/docs/content/docs/directive/include.md +0 -7
  50. package/docs/content/docs/directive/keydown.md +0 -38
  51. package/docs/content/docs/directive/keyup.md +0 -38
  52. package/docs/content/docs/directive/load.md +0 -43
  53. package/docs/content/docs/directive/mousedown.md +0 -38
  54. package/docs/content/docs/directive/mouseenter.md +0 -38
  55. package/docs/content/docs/directive/mouseleave.md +0 -38
  56. package/docs/content/docs/directive/mousemove.md +0 -38
  57. package/docs/content/docs/directive/mouseout.md +0 -38
  58. package/docs/content/docs/directive/mouseover.md +0 -38
  59. package/docs/content/docs/directive/mouseup.md +0 -38
  60. package/docs/content/docs/directive/non-bindable.md +0 -28
  61. package/docs/content/docs/filter/_index.md +0 -4
  62. package/docs/content/docs/filter/filter.md +0 -78
  63. package/docs/content/docs/filter/json.md +0 -19
  64. package/docs/content/docs/filter/limit-to.md +0 -30
  65. package/docs/content/docs/filter/order-by.md +0 -123
  66. package/docs/content/docs/provider/_index.md +0 -4
  67. package/docs/content/docs/provider/eventBusProvider.md +0 -35
  68. package/docs/content/docs/provider/locationProvider.md +0 -26
  69. package/docs/content/docs/provider/logProvider.md +0 -59
  70. package/docs/content/docs/provider/sceProvider.md +0 -194
  71. package/docs/content/docs/provider/templateCacheProvider.md +0 -100
  72. package/docs/content/docs/provider/templateRequestProvider.md +0 -5
  73. package/docs/content/docs/service/_index.md +0 -4
  74. package/docs/content/docs/service/compile.md +0 -5
  75. package/docs/content/docs/service/controller.md +0 -5
  76. package/docs/content/docs/service/eventBus.md +0 -56
  77. package/docs/content/docs/service/http.md +0 -161
  78. package/docs/content/docs/service/interpolation.md +0 -5
  79. package/docs/content/docs/service/location.md +0 -57
  80. package/docs/content/docs/service/log.md +0 -113
  81. package/docs/content/docs/service/parse.md +0 -5
  82. package/docs/content/docs/service/rootElement.md +0 -5
  83. package/docs/content/docs/service/rootScope.md +0 -5
  84. package/docs/content/docs/service/sce.md +0 -194
  85. package/docs/content/docs/service/templateCache.md +0 -64
  86. package/docs/content/docs/service/templateRequest.md +0 -5
  87. package/docs/content/docs/service/url.md +0 -5
  88. package/docs/content/docs/values/_index.md +0 -4
  89. package/docs/content/docs/values/document.md +0 -29
  90. package/docs/content/docs/values/window.md +0 -29
  91. package/docs/docker-compose.yaml +0 -12
  92. package/docs/docsy.work +0 -5
  93. package/docs/docsy.work.sum +0 -0
  94. package/docs/go.mod +0 -5
  95. package/docs/go.sum +0 -6
  96. package/docs/hugo-disabled.toml +0 -220
  97. package/docs/hugo.yaml +0 -200
  98. package/docs/layouts/404.html +0 -13
  99. package/docs/layouts/_markup/render-heading.html +0 -1
  100. package/docs/layouts/partials/hooks/head-end.html +0 -3
  101. package/docs/layouts/shortcodes/showcss.html +0 -2
  102. package/docs/layouts/shortcodes/showhtml.html +0 -2
  103. package/docs/layouts/shortcodes/showjs.html +0 -2
  104. package/docs/layouts/shortcodes/showraw.html +0 -1
  105. package/docs/layouts/shortcodes/version.html +0 -1
  106. package/docs/package-lock.json +0 -2293
  107. package/docs/package.json +0 -53
  108. package/docs/static/examples/counter/counter-test.html +0 -13
  109. package/docs/static/examples/counter/counter.html +0 -5
  110. package/docs/static/examples/counter/counter.test.js +0 -28
  111. package/docs/static/examples/document/document.html +0 -3
  112. package/docs/static/examples/eventbus/eventbus-test.html +0 -15
  113. package/docs/static/examples/eventbus/eventbus.html +0 -13
  114. package/docs/static/examples/eventbus/eventbus.js +0 -15
  115. package/docs/static/examples/eventbus/eventbus.test.js +0 -19
  116. package/docs/static/examples/i18n/i18n.html +0 -77
  117. package/docs/static/examples/ng-bind/ng-bind.html +0 -9
  118. package/docs/static/examples/ng-blur/ng-blur.html +0 -9
  119. package/docs/static/examples/ng-channel/ng-channel-test.html +0 -17
  120. package/docs/static/examples/ng-channel/ng-channel.html +0 -24
  121. package/docs/static/examples/ng-channel/ng-channel.test.js +0 -31
  122. package/docs/static/examples/ng-class/ng-class.html +0 -71
  123. package/docs/static/examples/ng-class-even/ng-class-even.html +0 -8
  124. package/docs/static/examples/ng-class-odd/ng-class-odd.html +0 -8
  125. package/docs/static/examples/ng-click/ng-click.html +0 -6
  126. package/docs/static/examples/ng-copy/ng-copy.html +0 -6
  127. package/docs/static/examples/ng-cut/ng-cut.html +0 -6
  128. package/docs/static/examples/ng-dblclick/ng-dblclick.html +0 -10
  129. package/docs/static/examples/ng-focus/ng-focus.html +0 -9
  130. package/docs/static/examples/ng-keydown/ng-keydown.html +0 -9
  131. package/docs/static/examples/ng-keyup/ng-keyup.html +0 -9
  132. package/docs/static/examples/ng-load/ng-load.html +0 -8
  133. package/docs/static/examples/ng-mousedown/ng-mousedown.html +0 -6
  134. package/docs/static/examples/ng-mouseenter/ng-mouseenter.html +0 -4
  135. package/docs/static/examples/ng-mouseleave/ng-mouseleave.html +0 -4
  136. package/docs/static/examples/ng-mousemove/ng-mousemove.html +0 -4
  137. package/docs/static/examples/ng-mouseout/ng-mouseout.html +0 -4
  138. package/docs/static/examples/ng-mouseover/ng-mouseover.html +0 -4
  139. package/docs/static/examples/ng-mouseup/ng-mouseup.html +0 -4
  140. package/docs/static/examples/ng-non-bindable/ng-non-bindable-test.html +0 -13
  141. package/docs/static/examples/ng-non-bindable/ng-non-bindable.html +0 -3
  142. package/docs/static/examples/ng-non-bindable/ng-non-bindable.test.js +0 -11
  143. package/docs/static/examples/window/window.html +0 -4
  144. package/docs/static/typedoc/.nojekyll +0 -1
  145. package/docs/static/typedoc/assets/hierarchy.js +0 -1
  146. package/docs/static/typedoc/assets/highlight.css +0 -29
  147. package/docs/static/typedoc/assets/icons.js +0 -18
  148. package/docs/static/typedoc/assets/icons.svg +0 -1
  149. package/docs/static/typedoc/assets/main.js +0 -60
  150. package/docs/static/typedoc/assets/navigation.js +0 -1
  151. package/docs/static/typedoc/assets/search.js +0 -1
  152. package/docs/static/typedoc/assets/style.css +0 -1633
  153. package/docs/static/typedoc/classes/Location.html +0 -55
  154. package/docs/static/typedoc/classes/LocationProvider.html +0 -20
  155. package/docs/static/typedoc/classes/LogProvider.html +0 -6
  156. package/docs/static/typedoc/classes/PubSub.html +0 -71
  157. package/docs/static/typedoc/classes/PubSubProvider.html +0 -4
  158. package/docs/static/typedoc/classes/TemplateCacheProvider.html +0 -5
  159. package/docs/static/typedoc/hierarchy.html +0 -1
  160. package/docs/static/typedoc/index.html +0 -1
  161. package/docs/static/typedoc/interfaces/DefaultPorts.html +0 -5
  162. package/docs/static/typedoc/interfaces/Html5Mode.html +0 -23
  163. package/docs/static/typedoc/interfaces/HttpHeadersGetter.html +0 -1
  164. package/docs/static/typedoc/interfaces/HttpProviderDefaults.html +0 -31
  165. package/docs/static/typedoc/interfaces/HttpRequestConfigHeaders.html +0 -6
  166. package/docs/static/typedoc/interfaces/HttpRequestTransformer.html +0 -1
  167. package/docs/static/typedoc/interfaces/HttpResponse.html +0 -7
  168. package/docs/static/typedoc/interfaces/HttpResponseTransformer.html +0 -1
  169. package/docs/static/typedoc/interfaces/HttpService.html +0 -38
  170. package/docs/static/typedoc/interfaces/LogService.html +0 -12
  171. package/docs/static/typedoc/interfaces/RequestConfig.html +0 -48
  172. package/docs/static/typedoc/interfaces/RequestShortcutConfig.html +0 -38
  173. package/docs/static/typedoc/interfaces/ServiceProvider.html +0 -5
  174. package/docs/static/typedoc/interfaces/UrlParts.html +0 -9
  175. package/docs/static/typedoc/types/HttpParamSerializer.html +0 -2
  176. package/docs/static/typedoc/types/HttpParams.html +0 -2
  177. package/docs/static/typedoc/types/HttpPromise.html +0 -1
  178. package/docs/static/typedoc/types/HttpResponseStatus.html +0 -1
  179. package/docs/static/typedoc/types/LogCall.html +0 -2
  180. package/docs/static/typedoc/types/LogServiceFactory.html +0 -2
  181. package/docs/static/typedoc/types/UrlChangeListener.html +0 -5
  182. package/docs/static/typedoc/variables/EventBus.html +0 -1
  183. package/docs/static/version.js +0 -13
  184. package/docs/test-results/.last-run.json +0 -4
  185. package/docs/test-results/static-examples-counter-counter-counter-example/error-context.md +0 -50
  186. package/eslint.config.js +0 -26
  187. package/images/android-chrome-192x192.png +0 -0
  188. package/images/android-chrome-512x512.png +0 -0
  189. package/images/apple-touch-icon.png +0 -0
  190. package/images/favicon-16x16.png +0 -0
  191. package/images/favicon-32x32.png +0 -0
  192. package/images/favicon.ico +0 -0
  193. package/images/site.webmanifest +0 -19
  194. package/index.html +0 -86
  195. package/legacy.d.ts +0 -1678
  196. package/playwright.config.ts +0 -81
  197. package/public/jasmine/boot0.js +0 -66
  198. package/public/jasmine/boot1.js +0 -134
  199. package/public/jasmine/jasmine-html.js +0 -970
  200. package/public/jasmine/jasmine.css +0 -323
  201. package/public/jasmine/jasmine.js +0 -11406
  202. package/public/public/README.md +0 -1
  203. package/public/public/circle.html +0 -1
  204. package/public/public/jasmine-helper.css +0 -9
  205. package/public/public/my_child_directive.html +0 -1
  206. package/public/public/my_directive.html +0 -1
  207. package/public/public/my_other_directive.html +0 -1
  208. package/public/public/test.html +0 -1
  209. package/rollup.config.js +0 -51
  210. package/src/angular.js +0 -286
  211. package/src/angular.spec.js +0 -1191
  212. package/src/animations/animate-cache.js +0 -80
  213. package/src/animations/animate-children-directive.js +0 -32
  214. package/src/animations/animate-children-directive.md +0 -80
  215. package/src/animations/animate-css-driver.js +0 -284
  216. package/src/animations/animate-css.html +0 -58
  217. package/src/animations/animate-css.js +0 -915
  218. package/src/animations/animate-css.md +0 -263
  219. package/src/animations/animate-js-driver.js +0 -60
  220. package/src/animations/animate-js.html +0 -47
  221. package/src/animations/animate-js.js +0 -371
  222. package/src/animations/animate-queue.js +0 -859
  223. package/src/animations/animate-runner.js +0 -193
  224. package/src/animations/animate-swap.js +0 -33
  225. package/src/animations/animate-swap.md +0 -88
  226. package/src/animations/animate.html +0 -19
  227. package/src/animations/animate.js +0 -546
  228. package/src/animations/animate.md +0 -933
  229. package/src/animations/animate.spec.js +0 -490
  230. package/src/animations/animation.js +0 -519
  231. package/src/animations/animations.test.js +0 -10
  232. package/src/animations/interface.ts +0 -19
  233. package/src/animations/raf-scheduler.html +0 -19
  234. package/src/animations/raf-scheduler.js +0 -92
  235. package/src/animations/raf-scheduler.spec.js +0 -98
  236. package/src/animations/shared.js +0 -341
  237. package/src/binding.html +0 -19
  238. package/src/binding.spec.js +0 -474
  239. package/src/binding.test.js +0 -10
  240. package/src/core/compile/attributes.js +0 -337
  241. package/src/core/compile/compile.html +0 -19
  242. package/src/core/compile/compile.js +0 -3271
  243. package/src/core/compile/compile.md +0 -1128
  244. package/src/core/compile/compile.spec.js +0 -15574
  245. package/src/core/compile/compile.test.js +0 -12
  246. package/src/core/controller/controller.html +0 -22
  247. package/src/core/controller/controller.js +0 -193
  248. package/src/core/controller/controller.spec.js +0 -334
  249. package/src/core/controller/controller.test.js +0 -12
  250. package/src/core/controller/interface.ts +0 -6
  251. package/src/core/core.html +0 -20
  252. package/src/core/core.test.js +0 -12
  253. package/src/core/di/injector.html +0 -19
  254. package/src/core/di/injector.js +0 -307
  255. package/src/core/di/injector.md +0 -740
  256. package/src/core/di/injector.spec.js +0 -2310
  257. package/src/core/di/injector.test.js +0 -12
  258. package/src/core/di/internal-injector.js +0 -286
  259. package/src/core/di/ng-module.html +0 -19
  260. package/src/core/di/ng-module.js +0 -229
  261. package/src/core/di/ng-module.spec.js +0 -263
  262. package/src/core/di/ng-module.test.js +0 -12
  263. package/src/core/filter/filter.html +0 -19
  264. package/src/core/filter/filter.js +0 -55
  265. package/src/core/filter/filter.md +0 -132
  266. package/src/core/filter/filter.spec.js +0 -149
  267. package/src/core/filter/filter.test.js +0 -12
  268. package/src/core/interpolate/interface.ts +0 -14
  269. package/src/core/interpolate/interpolate.html +0 -22
  270. package/src/core/interpolate/interpolate.js +0 -410
  271. package/src/core/interpolate/interpolate.spec.js +0 -601
  272. package/src/core/interpolate/interpolate.test.js +0 -12
  273. package/src/core/parse/ast/ast-node.ts +0 -81
  274. package/src/core/parse/ast/ast.html +0 -19
  275. package/src/core/parse/ast/ast.js +0 -574
  276. package/src/core/parse/ast/ast.spec.js +0 -1453
  277. package/src/core/parse/ast/ast.test.js +0 -10
  278. package/src/core/parse/ast-type.js +0 -23
  279. package/src/core/parse/interface.ts +0 -84
  280. package/src/core/parse/interpreter.js +0 -915
  281. package/src/core/parse/lexer/lexer.html +0 -19
  282. package/src/core/parse/lexer/lexer.js +0 -338
  283. package/src/core/parse/lexer/lexer.spec.js +0 -303
  284. package/src/core/parse/lexer/lexer.test.js +0 -10
  285. package/src/core/parse/lexer/token.ts +0 -22
  286. package/src/core/parse/parse.html +0 -19
  287. package/src/core/parse/parse.js +0 -337
  288. package/src/core/parse/parse.md +0 -57
  289. package/src/core/parse/parse.spec.js +0 -2107
  290. package/src/core/parse/parse.test.js +0 -10
  291. package/src/core/parse/parser/parser.html +0 -19
  292. package/src/core/parse/parser/parser.js +0 -64
  293. package/src/core/parse/parser/parser.spec.js +0 -8
  294. package/src/core/parse/parser/parser.test.js +0 -10
  295. package/src/core/prop.spec.js +0 -775
  296. package/src/core/root-element.spec.js +0 -14
  297. package/src/core/sanitize/interface.ts +0 -10
  298. package/src/core/sanitize/sanitize-uri.js +0 -75
  299. package/src/core/sanitize/sanitize-uri.spec.js +0 -249
  300. package/src/core/sanitize/sanitize-uri.test.js +0 -12
  301. package/src/core/sanitize/sanitize.html +0 -22
  302. package/src/core/scope/scope.html +0 -19
  303. package/src/core/scope/scope.js +0 -1252
  304. package/src/core/scope/scope.spec.js +0 -3000
  305. package/src/core/scope/scope.test.js +0 -12
  306. package/src/directive/aria/aria.html +0 -19
  307. package/src/directive/aria/aria.js +0 -382
  308. package/src/directive/aria/aria.md +0 -145
  309. package/src/directive/aria/aria.spec.js +0 -1241
  310. package/src/directive/aria/aria.test.js +0 -12
  311. package/src/directive/attrs/attrs.html +0 -19
  312. package/src/directive/attrs/attrs.js +0 -106
  313. package/src/directive/attrs/attrs.md +0 -224
  314. package/src/directive/attrs/attrs.spec.js +0 -71
  315. package/src/directive/attrs/attrs.test.js +0 -12
  316. package/src/directive/attrs/boolean.html +0 -19
  317. package/src/directive/attrs/boolean.spec.js +0 -137
  318. package/src/directive/attrs/boolean.test.js +0 -12
  319. package/src/directive/attrs/element-style.html +0 -22
  320. package/src/directive/attrs/element-style.spec.js +0 -85
  321. package/src/directive/attrs/element-style.test.js +0 -12
  322. package/src/directive/attrs/src.html +0 -19
  323. package/src/directive/attrs/src.spec.js +0 -163
  324. package/src/directive/attrs/src.test.js +0 -12
  325. package/src/directive/bind/bind-html.spec.js +0 -36
  326. package/src/directive/bind/bind.html +0 -20
  327. package/src/directive/bind/bind.js +0 -78
  328. package/src/directive/bind/bind.md +0 -142
  329. package/src/directive/bind/bind.spec.js +0 -314
  330. package/src/directive/bind/bind.test.js +0 -12
  331. package/src/directive/channel/channel.html +0 -19
  332. package/src/directive/channel/channel.js +0 -30
  333. package/src/directive/channel/channel.spec.js +0 -67
  334. package/src/directive/channel/channel.test.js +0 -10
  335. package/src/directive/class/class-test.html +0 -23
  336. package/src/directive/class/class.html +0 -19
  337. package/src/directive/class/class.js +0 -184
  338. package/src/directive/class/class.spec.js +0 -704
  339. package/src/directive/class/class.test.js +0 -12
  340. package/src/directive/cloak/cloak.html +0 -19
  341. package/src/directive/cloak/cloak.js +0 -11
  342. package/src/directive/cloak/cloak.spec.js +0 -44
  343. package/src/directive/cloak/cloak.test.js +0 -12
  344. package/src/directive/controller/controller.html +0 -22
  345. package/src/directive/controller/controller.js +0 -11
  346. package/src/directive/controller/controller.md +0 -46
  347. package/src/directive/controller/controller.spec.js +0 -175
  348. package/src/directive/controller/controller.test.js +0 -12
  349. package/src/directive/events/click.spec.js +0 -35
  350. package/src/directive/events/event.spec.js +0 -267
  351. package/src/directive/events/events-test.html +0 -36
  352. package/src/directive/events/events.html +0 -20
  353. package/src/directive/events/events.js +0 -65
  354. package/src/directive/events/events.md +0 -125
  355. package/src/directive/events/events.test.js +0 -12
  356. package/src/directive/form/form.html +0 -19
  357. package/src/directive/form/form.js +0 -669
  358. package/src/directive/form/form.spec.js +0 -1515
  359. package/src/directive/form/form.test.js +0 -12
  360. package/src/directive/http/delete.spec.js +0 -23
  361. package/src/directive/http/form-router-test.html +0 -44
  362. package/src/directive/http/form-test.html +0 -18
  363. package/src/directive/http/get.spec.js +0 -488
  364. package/src/directive/http/http.html +0 -22
  365. package/src/directive/http/http.js +0 -342
  366. package/src/directive/http/http.test.js +0 -12
  367. package/src/directive/http/interface.ts +0 -36
  368. package/src/directive/http/post-example.html +0 -30
  369. package/src/directive/http/post.spec.js +0 -521
  370. package/src/directive/http/put.spec.js +0 -23
  371. package/src/directive/if/if-animate-css.html +0 -57
  372. package/src/directive/if/if-animate-svg.html +0 -25
  373. package/src/directive/if/if.html +0 -19
  374. package/src/directive/if/if.js +0 -72
  375. package/src/directive/if/if.md +0 -76
  376. package/src/directive/if/if.spec.js +0 -293
  377. package/src/directive/if/if.test.js +0 -114
  378. package/src/directive/include/include.html +0 -19
  379. package/src/directive/include/include.js +0 -151
  380. package/src/directive/include/include.md +0 -87
  381. package/src/directive/include/include.spec.js +0 -734
  382. package/src/directive/include/include.test.js +0 -12
  383. package/src/directive/init/init.html +0 -19
  384. package/src/directive/init/init.js +0 -22
  385. package/src/directive/init/init.md +0 -41
  386. package/src/directive/init/init.spec.js +0 -68
  387. package/src/directive/init/init.test.js +0 -12
  388. package/src/directive/inject/inject.html +0 -19
  389. package/src/directive/inject/inject.js +0 -35
  390. package/src/directive/inject/inject.spec.js +0 -108
  391. package/src/directive/inject/inject.test.js +0 -12
  392. package/src/directive/input/input-example.html +0 -15
  393. package/src/directive/input/input.html +0 -19
  394. package/src/directive/input/input.js +0 -1078
  395. package/src/directive/input/input.md +0 -706
  396. package/src/directive/input/input.spec.js +0 -3700
  397. package/src/directive/input/input.test.js +0 -12
  398. package/src/directive/messages/messages.html +0 -22
  399. package/src/directive/messages/messages.js +0 -349
  400. package/src/directive/messages/messages.md +0 -543
  401. package/src/directive/messages/messages.spec.js +0 -1083
  402. package/src/directive/messages/messages.test.js +0 -12
  403. package/src/directive/model/change.md +0 -25
  404. package/src/directive/model/model.html +0 -19
  405. package/src/directive/model/model.js +0 -1170
  406. package/src/directive/model/model.spec.js +0 -1976
  407. package/src/directive/model/model.test.js +0 -12
  408. package/src/directive/model-options/model-option.test.js +0 -12
  409. package/src/directive/model-options/model-options.html +0 -22
  410. package/src/directive/model-options/model-options.js +0 -142
  411. package/src/directive/model-options/model-options.md +0 -407
  412. package/src/directive/model-options/model-options.spec.js +0 -1022
  413. package/src/directive/non-bindable/non-bindable.html +0 -22
  414. package/src/directive/non-bindable/non-bindable.js +0 -9
  415. package/src/directive/non-bindable/non-bindable.spec.js +0 -59
  416. package/src/directive/non-bindable/non-bindable.test.js +0 -12
  417. package/src/directive/observe/observe-demo.html +0 -184
  418. package/src/directive/observe/observe.html +0 -19
  419. package/src/directive/observe/observe.js +0 -41
  420. package/src/directive/observe/observe.spec.js +0 -106
  421. package/src/directive/observe/observe.test.js +0 -10
  422. package/src/directive/on/on.html +0 -19
  423. package/src/directive/on/on.spec.js +0 -215
  424. package/src/directive/on/on.test.js +0 -12
  425. package/src/directive/options/options-example.html +0 -17
  426. package/src/directive/options/options.html +0 -22
  427. package/src/directive/options/options.js +0 -542
  428. package/src/directive/options/options.md +0 -179
  429. package/src/directive/options/options.spec.js +0 -3554
  430. package/src/directive/options/options.test.js +0 -12
  431. package/src/directive/ref/href.html +0 -19
  432. package/src/directive/ref/href.spec.js +0 -141
  433. package/src/directive/ref/href.test.js +0 -19
  434. package/src/directive/ref/ref.html +0 -19
  435. package/src/directive/ref/ref.js +0 -89
  436. package/src/directive/ref/ref.spec.js +0 -546
  437. package/src/directive/repeat/repeat.html +0 -19
  438. package/src/directive/repeat/repeat.js +0 -333
  439. package/src/directive/repeat/repeat.md +0 -330
  440. package/src/directive/repeat/repeat.spec.js +0 -1209
  441. package/src/directive/repeat/repeat.test.js +0 -12
  442. package/src/directive/script/script.html +0 -19
  443. package/src/directive/script/script.js +0 -17
  444. package/src/directive/script/script.md +0 -11
  445. package/src/directive/script/script.spec.js +0 -47
  446. package/src/directive/script/script.test.js +0 -12
  447. package/src/directive/select/select.html +0 -19
  448. package/src/directive/select/select.js +0 -594
  449. package/src/directive/select/select.md +0 -74
  450. package/src/directive/select/select.spec.js +0 -2566
  451. package/src/directive/select/select.test.js +0 -12
  452. package/src/directive/setter/setter.html +0 -19
  453. package/src/directive/setter/setter.js +0 -59
  454. package/src/directive/setter/setter.spec.js +0 -100
  455. package/src/directive/setter/setter.test.js +0 -12
  456. package/src/directive/show-hide/show-hide.html +0 -22
  457. package/src/directive/show-hide/show-hide.js +0 -65
  458. package/src/directive/show-hide/show-hide.md +0 -255
  459. package/src/directive/show-hide/show-hide.spec.js +0 -268
  460. package/src/directive/show-hide/show-hide.test.js +0 -12
  461. package/src/directive/style/style.html +0 -19
  462. package/src/directive/style/style.js +0 -27
  463. package/src/directive/style/style.md +0 -23
  464. package/src/directive/style/style.spec.js +0 -183
  465. package/src/directive/style/style.test.js +0 -12
  466. package/src/directive/switch/switch.html +0 -19
  467. package/src/directive/switch/switch.js +0 -133
  468. package/src/directive/switch/switch.md +0 -66
  469. package/src/directive/switch/switch.spec.js +0 -509
  470. package/src/directive/switch/switch.test.js +0 -12
  471. package/src/directive/transclude/transclude.js +0 -122
  472. package/src/directive/validators/validators.html +0 -22
  473. package/src/directive/validators/validators.js +0 -346
  474. package/src/directive/validators/validators.spec.js +0 -740
  475. package/src/directive/validators/validators.test.js +0 -12
  476. package/src/filters/filter.js +0 -213
  477. package/src/filters/filter.spec.js +0 -719
  478. package/src/filters/filters.html +0 -22
  479. package/src/filters/filters.js +0 -239
  480. package/src/filters/filters.spec.js +0 -36
  481. package/src/filters/filters.test.js +0 -12
  482. package/src/filters/interface.ts +0 -9
  483. package/src/filters/limit-to.js +0 -55
  484. package/src/filters/limit-to.spec.js +0 -252
  485. package/src/filters/order-by.js +0 -181
  486. package/src/filters/order-by.spec.js +0 -883
  487. package/src/index.js +0 -6
  488. package/src/index.spec.js +0 -11
  489. package/src/injection-tokens.js +0 -81
  490. package/src/interface.ts +0 -430
  491. package/src/ng.js +0 -291
  492. package/src/ng.spec.js +0 -45
  493. package/src/router/common/trace.js +0 -240
  494. package/src/router/directives/component-example.html +0 -37
  495. package/src/router/directives/state-directives.html +0 -22
  496. package/src/router/directives/state-directives.js +0 -393
  497. package/src/router/directives/state-directives.md +0 -435
  498. package/src/router/directives/state-directives.spec.js +0 -1091
  499. package/src/router/directives/state-directives.test.js +0 -10
  500. package/src/router/directives/view-directive.js +0 -489
  501. package/src/router/directives/view-directive.spec.js +0 -1921
  502. package/src/router/directives/view-directive.test.js +0 -10
  503. package/src/router/directives/view-directives.html +0 -22
  504. package/src/router/glob/glob.html +0 -19
  505. package/src/router/glob/glob.js +0 -102
  506. package/src/router/glob/glob.spec.js +0 -108
  507. package/src/router/glob/glob.test.js +0 -12
  508. package/src/router/hooks/core-resolvables.js +0 -38
  509. package/src/router/hooks/ignored-transition.js +0 -25
  510. package/src/router/hooks/invalid-transition.js +0 -14
  511. package/src/router/hooks/lazy-load.js +0 -104
  512. package/src/router/hooks/on-enter-exit-retain.js +0 -55
  513. package/src/router/hooks/redirect-to.js +0 -38
  514. package/src/router/hooks/resolve.js +0 -57
  515. package/src/router/hooks/update-globals.js +0 -34
  516. package/src/router/hooks/url.js +0 -34
  517. package/src/router/hooks/views.js +0 -41
  518. package/src/router/params/interface.ts +0 -626
  519. package/src/router/params/param-factory.js +0 -23
  520. package/src/router/params/param-type.js +0 -133
  521. package/src/router/params/param-types.js +0 -153
  522. package/src/router/params/param.js +0 -243
  523. package/src/router/params/state-params.js +0 -36
  524. package/src/router/path/path-node.js +0 -78
  525. package/src/router/path/path-utils.js +0 -207
  526. package/src/router/resolve/interface.ts +0 -208
  527. package/src/router/resolve/resolvable.js +0 -123
  528. package/src/router/resolve/resolve-context.js +0 -190
  529. package/src/router/router-test-hashbang.html +0 -45
  530. package/src/router/router-test.html +0 -41
  531. package/src/router/router.html +0 -22
  532. package/src/router/router.js +0 -54
  533. package/src/router/router.test.js +0 -12
  534. package/src/router/services.spec.js +0 -52
  535. package/src/router/state/interface.ts +0 -1007
  536. package/src/router/state/state-builder.js +0 -376
  537. package/src/router/state/state-builder.spec.js +0 -86
  538. package/src/router/state/state-matcher.js +0 -64
  539. package/src/router/state/state-object.js +0 -118
  540. package/src/router/state/state-queue-manager.js +0 -95
  541. package/src/router/state/state-registry.js +0 -262
  542. package/src/router/state/state-service.js +0 -687
  543. package/src/router/state/state.html +0 -23
  544. package/src/router/state/state.spec.js +0 -1002
  545. package/src/router/state/state.test.js +0 -12
  546. package/src/router/state/target-state.js +0 -162
  547. package/src/router/state/views.js +0 -195
  548. package/src/router/state-filter.spec.js +0 -139
  549. package/src/router/state-filters.js +0 -46
  550. package/src/router/template-factory.html +0 -19
  551. package/src/router/template-factory.js +0 -249
  552. package/src/router/template-factory.spec.js +0 -146
  553. package/src/router/template-factory.test.js +0 -12
  554. package/src/router/transition/hook-builder.js +0 -137
  555. package/src/router/transition/hook-registry.js +0 -181
  556. package/src/router/transition/interface.js +0 -18
  557. package/src/router/transition/interface.ts +0 -922
  558. package/src/router/transition/reject-factory.js +0 -122
  559. package/src/router/transition/transition-event-type.js +0 -26
  560. package/src/router/transition/transition-hook.js +0 -199
  561. package/src/router/transition/transition-service.js +0 -297
  562. package/src/router/transition/transition.js +0 -653
  563. package/src/router/url/url-config.js +0 -155
  564. package/src/router/url/url-matcher.js +0 -532
  565. package/src/router/url/url-rule.js +0 -231
  566. package/src/router/url/url-rules.js +0 -350
  567. package/src/router/url/url-service.js +0 -446
  568. package/src/router/url/url-service.spec.js +0 -1288
  569. package/src/router/url/url.html +0 -19
  570. package/src/router/url/url.test.js +0 -12
  571. package/src/router/view/interface.ts +0 -51
  572. package/src/router/view/view.html +0 -19
  573. package/src/router/view/view.js +0 -262
  574. package/src/router/view/view.spec.js +0 -100
  575. package/src/router/view/view.test.js +0 -12
  576. package/src/router/view-hook.spec.js +0 -215
  577. package/src/router/view-scroll.js +0 -33
  578. package/src/router/view-scroll.spec.js +0 -72
  579. package/src/services/anchor-scroll/anchor-scroll.html +0 -76
  580. package/src/services/anchor-scroll/anchor-scroll.js +0 -147
  581. package/src/services/exception/exception-handler.js +0 -75
  582. package/src/services/exception/interface.ts +0 -7
  583. package/src/services/http/http.html +0 -23
  584. package/src/services/http/http.js +0 -1109
  585. package/src/services/http/http.spec.js +0 -4320
  586. package/src/services/http/http.test.js +0 -11
  587. package/src/services/http/interface.ts +0 -256
  588. package/src/services/http/template-request.spec.js +0 -220
  589. package/src/services/location/interface.ts +0 -70
  590. package/src/services/location/location.html +0 -22
  591. package/src/services/location/location.js +0 -1006
  592. package/src/services/location/location.spec.js +0 -3792
  593. package/src/services/location/location.test.js +0 -12
  594. package/src/services/log/interface.ts +0 -39
  595. package/src/services/log/log.html +0 -19
  596. package/src/services/log/log.js +0 -74
  597. package/src/services/log/log.spec.js +0 -64
  598. package/src/services/log/log.test.js +0 -12
  599. package/src/services/pubsub/pubsub.html +0 -19
  600. package/src/services/pubsub/pubsub.js +0 -349
  601. package/src/services/pubsub/pubsub.spec.js +0 -400
  602. package/src/services/pubsub/pubsub.test.js +0 -12
  603. package/src/services/sce/sce.html +0 -19
  604. package/src/services/sce/sce.js +0 -852
  605. package/src/services/sce/sce.spec.js +0 -617
  606. package/src/services/sce/sce.test.js +0 -12
  607. package/src/services/template-cache/template-cache.html +0 -22
  608. package/src/services/template-cache/template-cache.js +0 -15
  609. package/src/services/template-cache/template-cache.spec.js +0 -134
  610. package/src/services/template-cache/template-cache.test.js +0 -12
  611. package/src/services/template-request/interface.ts +0 -23
  612. package/src/services/template-request/template-request.js +0 -142
  613. package/src/shared/cache.js +0 -7
  614. package/src/shared/common.js +0 -365
  615. package/src/shared/common.spec.js +0 -294
  616. package/src/shared/constants.js +0 -21
  617. package/src/shared/dom.js +0 -716
  618. package/src/shared/hof.js +0 -157
  619. package/src/shared/hof.spec.js +0 -60
  620. package/src/shared/interface.ts +0 -21
  621. package/src/shared/min-err.spec.js +0 -178
  622. package/src/shared/noderef.js +0 -225
  623. package/src/shared/predicates.js +0 -34
  624. package/src/shared/queue.js +0 -105
  625. package/src/shared/queue.spec.js +0 -80
  626. package/src/shared/shared.html +0 -24
  627. package/src/shared/shared.test.js +0 -12
  628. package/src/shared/strings.js +0 -142
  629. package/src/shared/strings.spec.js +0 -40
  630. package/src/shared/test-utils.js +0 -47
  631. package/src/shared/url-utils/interface.ts +0 -54
  632. package/src/shared/url-utils/url-utils.html +0 -22
  633. package/src/shared/url-utils/url-utils.js +0 -122
  634. package/src/shared/url-utils/url-utils.spec.js +0 -148
  635. package/src/shared/url-utils/url-utils.test.js +0 -12
  636. package/src/shared/utils.js +0 -1255
  637. package/src/shared/utils.spec.js +0 -178
  638. package/src/src.html +0 -21
  639. package/src/src.test.js +0 -10
  640. package/tsconfig.json +0 -19
  641. package/tsconfig.types.json +0 -14
  642. package/typedoc.json +0 -8
  643. package/utils/express.js +0 -203
  644. package/utils/version.cjs +0 -23
  645. package/vite.config.js +0 -14
@@ -1,542 +0,0 @@
1
- import { emptyElement, removeElement, startingTag } from "../../shared/dom.js";
2
- import {
3
- assertArg,
4
- equals,
5
- hashKey,
6
- hasOwn,
7
- includes,
8
- isArrayLike,
9
- isDefined,
10
- minErr,
11
- } from "../../shared/utils.js";
12
-
13
- const ngOptionsMinErr = minErr("ngOptions");
14
-
15
- /** @type {HTMLOptionElement} */
16
- const optionTemplate = document.createElement("option");
17
-
18
- /** @type {HTMLOptGroupElement} */
19
- const optGroupTemplate = document.createElement("optgroup");
20
-
21
- const NG_OPTIONS_REGEXP =
22
- /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/;
23
-
24
- // 1: value expression (valueFn)
25
- // 2: label expression (displayFn)
26
- // 3: group by expression (groupByFn)
27
- // 4: disable when expression (disableWhenFn)
28
- // 5: array item variable name
29
- // 6: object item key variable name
30
- // 7: object item value variable name
31
- // 8: collection expression
32
- // 9: track by expression
33
-
34
- ngOptionsDirective.$inject = ["$compile", "$parse"];
35
- /**
36
- *
37
- * @param {import("../../core/compile/compile.js").CompileFn} $compile
38
- * @param {import("../../core/parse/interface.ts").ParseService} $parse
39
- * @returns {import("../../interface.ts").Directive}
40
- */
41
- export function ngOptionsDirective($compile, $parse) {
42
- /**
43
- * @param {import('../../interface.ts').Expression} optionsExp
44
- * @param {HTMLSelectElement} selectElement
45
- * @param {import('../../core/scope/scope.js').Scope} scope
46
- * @returns
47
- */
48
- function parseOptionsExpression(optionsExp, selectElement, scope) {
49
- const match = optionsExp.match(NG_OPTIONS_REGEXP);
50
- if (!match) {
51
- throw ngOptionsMinErr(
52
- "iexp",
53
- "Expected expression in form of " +
54
- "'_select_ (as _label_)? for (_key_,)?_value_ in _collection_'" +
55
- " but got '{0}'. Element: {1}",
56
- optionsExp,
57
- startingTag(selectElement),
58
- );
59
- }
60
- // Extract the parts from the ngOptions expression
61
-
62
- // The variable name for the value of the item in the collection
63
- const valueName = match[5] || match[7];
64
- // The variable name for the key of the item in the collection
65
- const keyName = match[6];
66
-
67
- // An expression that generates the viewValue for an option if there is a label expression
68
- const selectAs = / as /.test(match[0]) && match[1];
69
- // An expression that is used to track the id of each object in the options collection
70
- const trackBy = match[9];
71
- // An expression that generates the viewValue for an option if there is no label expression
72
- const valueFn = $parse(match[2] ? match[1] : valueName);
73
- const selectAsFn = selectAs && $parse(selectAs);
74
- const viewValueFn = selectAsFn || valueFn;
75
- const trackByFn = trackBy && $parse(trackBy);
76
-
77
- // Get the value by which we are going to track the option
78
- // if we have a trackFn then use that (passing scope and locals)
79
- // otherwise just hash the given viewValue
80
- const getTrackByValueFn = trackBy
81
- ? function (value, locals) {
82
- return trackByFn(scope, locals);
83
- }
84
- : function getHashOfValue(value) {
85
- return hashKey(value);
86
- };
87
- const getTrackByValue = function (value, key) {
88
- return getTrackByValueFn(value, getLocals(value, key));
89
- };
90
-
91
- const displayFn = $parse(match[2] || match[1]);
92
- const groupByFn = $parse(match[3] || "");
93
- const disableWhenFn = $parse(match[4] || "");
94
- const valuesFn = $parse(match[8]);
95
-
96
- const locals = {};
97
- let getLocals = keyName
98
- ? function (value, key) {
99
- locals[keyName] = key;
100
- locals[valueName] = value;
101
- return locals;
102
- }
103
- : function (value) {
104
- locals[valueName] = value;
105
- return locals;
106
- };
107
-
108
- class Option {
109
- constructor(selectValue, viewValue, label, group, disabled) {
110
- this.selectValue = selectValue;
111
- this.viewValue = viewValue;
112
- this.label = label;
113
- this.group = group;
114
- this.disabled = disabled;
115
- }
116
- }
117
-
118
- function getOptionValuesKeys(optionValues) {
119
- let optionValuesKeys;
120
-
121
- if (!keyName && isArrayLike(optionValues)) {
122
- optionValuesKeys = optionValues;
123
- } else {
124
- // if object, extract keys, in enumeration order, unsorted
125
- optionValuesKeys = [];
126
- for (const itemKey in optionValues) {
127
- if (hasOwn(optionValues, itemKey) && itemKey.charAt(0) !== "$") {
128
- optionValuesKeys.push(itemKey);
129
- }
130
- }
131
- }
132
- return optionValuesKeys;
133
- }
134
-
135
- return {
136
- trackBy,
137
- getTrackByValue,
138
- getWatchables: $parse(valuesFn, (optionValues) => {
139
- // Create a collection of things that we would like to watch (watchedArray)
140
- // so that they can all be watched using a single $watchCollection
141
- // that only runs the handler once if anything changes
142
- const watchedArray = [];
143
- optionValues = optionValues || [];
144
-
145
- const optionValuesKeys = getOptionValuesKeys(optionValues);
146
- const optionValuesLength = optionValuesKeys.length;
147
- for (let index = 0; index < optionValuesLength; index++) {
148
- const key =
149
- optionValues === optionValuesKeys ? index : optionValuesKeys[index];
150
- const value = optionValues[key];
151
-
152
- const locals = getLocals(value, key);
153
- const selectValue = getTrackByValueFn(value, locals);
154
- watchedArray.push(selectValue);
155
-
156
- // Only need to watch the displayFn if there is a specific label expression
157
- if (match[2] || match[1]) {
158
- const label = displayFn(scope, locals);
159
- watchedArray.push(label);
160
- }
161
-
162
- // Only need to watch the disableWhenFn if there is a specific disable expression
163
- if (match[4]) {
164
- const disableWhen = disableWhenFn(scope, locals);
165
- watchedArray.push(disableWhen);
166
- }
167
- }
168
- return watchedArray;
169
- }),
170
-
171
- getOptions() {
172
- /** @type {Option[]} */
173
- const optionItems = [];
174
- /** @type {Object.<string, Option>} */
175
- const selectValueMap = {};
176
-
177
- // The option values were already computed in the `getWatchables` fn,
178
- // which must have been called to trigger `getOptions`
179
- const optionValues = valuesFn(scope) || [];
180
- const optionValuesKeys = getOptionValuesKeys(optionValues);
181
- const optionValuesLength = optionValuesKeys.length;
182
-
183
- for (let index = 0; index < optionValuesLength; index++) {
184
- const key =
185
- optionValues === optionValuesKeys ? index : optionValuesKeys[index];
186
- const value = optionValues[key];
187
- const locals = getLocals(value, key);
188
- const viewValue = viewValueFn(scope, locals);
189
- const selectValue = getTrackByValueFn(viewValue, locals);
190
- const label = displayFn(scope, locals);
191
- const group = groupByFn(scope, locals);
192
- const disabled = disableWhenFn(scope, locals);
193
- const optionItem = new Option(
194
- selectValue,
195
- viewValue,
196
- label,
197
- group,
198
- disabled,
199
- );
200
-
201
- optionItems.push(optionItem);
202
- selectValueMap[selectValue] = optionItem;
203
- }
204
-
205
- return {
206
- items: optionItems,
207
- selectValueMap,
208
- getOptionFromViewValue(value) {
209
- return selectValueMap[getTrackByValue(value)];
210
- },
211
- getViewValueFromOption(option) {
212
- // If the viewValue could be an object that may be mutated by the application,
213
- // we need to make a copy and not return the reference to the value on the option.
214
- return trackBy
215
- ? structuredClone(option.viewValue)
216
- : option.viewValue;
217
- },
218
- };
219
- },
220
- };
221
- }
222
-
223
- /**
224
- *
225
- * @param {import("../../core/scope/scope.js").Scope} scope
226
- * @param {HTMLSelectElement} selectElement
227
- * @param {import("../../core/compile/attributes.js").Attributes} attr
228
- * @param {*} ctrls
229
- */
230
- function ngOptionsPostLink(scope, selectElement, attr, ctrls) {
231
- const selectCtrl = ctrls[0];
232
- const ngModelCtrl = ctrls[1];
233
- const multiple = attr["multiple"];
234
-
235
- // The emptyOption allows the application developer to provide their own custom "empty"
236
- // option when the viewValue does not match any of the option values.
237
- for (
238
- let i = 0, children = selectElement.childNodes, ii = children.length;
239
- i < ii;
240
- i++
241
- ) {
242
- if (/** @type {HTMLOptionElement} */ (children[i]).value === "") {
243
- selectCtrl.hasEmptyOption = true;
244
- selectCtrl.emptyOption = children[i];
245
- break;
246
- }
247
- }
248
-
249
- // The empty option will be compiled and rendered before we first generate the options
250
- emptyElement(selectElement);
251
-
252
- const providedEmptyOption = !!selectCtrl.emptyOption;
253
-
254
- const unknownOption = optionTemplate.cloneNode(false);
255
- // TODO double check
256
- unknownOption.nodeValue = "?";
257
-
258
- let options;
259
- const ngOptions = parseOptionsExpression(
260
- attr["ngOptions"],
261
- selectElement,
262
- scope,
263
- );
264
- // This stores the newly created options before they are appended to the select.
265
- // Since the contents are removed from the fragment when it is appended,
266
- // we only need to create it once.
267
- const listFragment = document.createDocumentFragment();
268
-
269
- // Overwrite the implementation. ngOptions doesn't use hashes
270
- selectCtrl.generateUnknownOptionValue = () => "?";
271
-
272
- // Update the controller methods for multiple selectable options
273
- if (!multiple) {
274
- selectCtrl.writeValue = function writeNgOptionsValue(value) {
275
- // The options might not be defined yet when ngModel tries to render
276
- if (!options) return;
277
-
278
- const selectedOption =
279
- selectElement.options[selectElement.selectedIndex];
280
- const option = options.getOptionFromViewValue(value);
281
-
282
- // Make sure to remove the selected attribute from the previously selected option
283
- // Otherwise, screen readers might get confused
284
- if (selectedOption) selectedOption.removeAttribute("selected");
285
-
286
- if (option) {
287
- // Don't update the option when it is already selected.
288
- // For example, the browser will select the first option by default. In that case,
289
- // most properties are set automatically - except the `selected` attribute, which we
290
- // set always
291
-
292
- if (selectElement.value !== option.selectValue) {
293
- selectCtrl.removeUnknownOption();
294
-
295
- selectElement.value = option.selectValue;
296
- option.element.selected = true;
297
- }
298
-
299
- option.element.setAttribute("selected", "selected");
300
- } else {
301
- selectCtrl.selectUnknownOrEmptyOption(value);
302
- }
303
- };
304
-
305
- selectCtrl.readValue = function readNgOptionsValue() {
306
- const selectedOption = options.selectValueMap[selectElement.value];
307
-
308
- if (selectedOption && !selectedOption.disabled) {
309
- selectCtrl.unselectEmptyOption();
310
- selectCtrl.removeUnknownOption();
311
- return options.getViewValueFromOption(selectedOption);
312
- }
313
- return null;
314
- };
315
-
316
- // If we are using `track by` then we must watch the tracked value on the model
317
- // since ngModel only watches for object identity change
318
- // FIXME: When a user selects an option, this watch will fire needlessly
319
- if (ngOptions.trackBy) {
320
- scope.$watch(ngOptions.getTrackByValue(ngModelCtrl.$viewValue), () => {
321
- ngModelCtrl.$render();
322
- });
323
- }
324
- } else {
325
- selectCtrl.writeValue = function writeNgOptionsMultiple(values) {
326
- // The options might not be defined yet when ngModel tries to render
327
- if (!options) return;
328
-
329
- // Only set `<option>.selected` if necessary, in order to prevent some browsers from
330
- // scrolling to `<option>` elements that are outside the `<select>` element's viewport.
331
- const selectedOptions =
332
- (values && values.map(getAndUpdateSelectedOption)) || [];
333
-
334
- options.items.forEach((option) => {
335
- if (option.element.selected && !includes(selectedOptions, option)) {
336
- option.element.selected = false;
337
- }
338
- });
339
- };
340
-
341
- selectCtrl.readValue = function readNgOptionsMultiple() {
342
- const selectedValues = selectElement.value || [];
343
- const selections = [];
344
- // @ts-ignore
345
- selectedValues.forEach((value) => {
346
- const option = options.selectValueMap[value];
347
- if (option && !option.disabled)
348
- selections.push(options.getViewValueFromOption(option));
349
- });
350
-
351
- return selections;
352
- };
353
-
354
- // If we are using `track by` then we must watch these tracked values on the model
355
- // since ngModel only watches for object identity change
356
- // if (ngOptions.trackBy) {
357
- // scope.$watchCollection(
358
- // () => {
359
- // if (Array.isArray(ngModelCtrl.$viewValue)) {
360
- // return ngModelCtrl.$viewValue.map((value) =>
361
- // ngOptions.getTrackByValue(value),
362
- // );
363
- // }
364
- // },
365
- // () => {
366
- // ngModelCtrl.$render();
367
- // },
368
- // );
369
- // }
370
- }
371
-
372
- if (providedEmptyOption) {
373
- // compile the element since there might be bindings in it
374
- const linkFn = $compile(selectCtrl.emptyOption);
375
- assertArg(linkFn, "LinkFn required");
376
- selectElement.prepend(selectCtrl.emptyOption);
377
- linkFn(scope);
378
-
379
- if (selectCtrl.emptyOption.nodeType === Node.COMMENT_NODE) {
380
- // This means the empty option has currently no actual DOM node, probably because
381
- // it has been modified by a transclusion directive.
382
- selectCtrl.hasEmptyOption = false;
383
-
384
- // Redefine the registerOption function, which will catch
385
- // options that are added by ngIf etc. (rendering of the node is async because of
386
- // lazy transclusion)
387
- selectCtrl.registerOption = function (optionScope, optionEl) {
388
- if (optionEl.value === "") {
389
- selectCtrl.hasEmptyOption = true;
390
- selectCtrl.emptyOption = optionEl;
391
- // This ensures the new empty option is selected if previously no option was selected
392
- ngModelCtrl.$render();
393
-
394
- optionEl.addEventListener("$destroy", () => {
395
- const needsRerender = selectCtrl.$isEmptyOptionSelected();
396
-
397
- selectCtrl.hasEmptyOption = false;
398
- selectCtrl.emptyOption = undefined;
399
-
400
- if (needsRerender) ngModelCtrl.$render();
401
- });
402
- }
403
- };
404
- }
405
- }
406
-
407
- // We will re-render the option elements if the option values or labels change
408
-
409
- // let watchables = ngOptions.getWatchables();
410
- // watchables.forEach((i) => {
411
- // scope.$watch(i, updateOptions);
412
- // });
413
- scope.$watch(
414
- ngOptions.getWatchables.decoratedNode.body[0].expression.name,
415
- updateOptions,
416
- );
417
-
418
- // ------------------------------------------------------------------ //
419
-
420
- function addOptionElement(option, parent) {
421
- /**
422
- * @type {HTMLOptionElement}
423
- */
424
- const optionElement = /** @type {HTMLOptionElement} */ (
425
- optionTemplate.cloneNode(false)
426
- );
427
- parent.appendChild(optionElement);
428
- updateOptionElement(option, optionElement);
429
- }
430
-
431
- function getAndUpdateSelectedOption(viewValue) {
432
- const option = options.getOptionFromViewValue(viewValue);
433
- const element = option && option.element;
434
-
435
- if (element && !element.selected) element.selected = true;
436
-
437
- return option;
438
- }
439
-
440
- function updateOptionElement(option, element) {
441
- option.element = element;
442
- element.disabled = option.disabled;
443
- // Support: IE 11 only, Edge 12-13 only
444
- // NOTE: The label must be set before the value, otherwise IE 11 & Edge create unresponsive
445
- // selects in certain circumstances when multiple selects are next to each other and display
446
- // the option list in listbox style, i.e. the select is [multiple], or specifies a [size].
447
- // See https://github.com/angular/angular.js/issues/11314 for more info.
448
- // This is unfortunately untestable with unit / e2e tests
449
- if (option.label !== element.label) {
450
- element.label = option.label;
451
- element.textContent = option.label;
452
- }
453
- element.value = option.selectValue;
454
- }
455
-
456
- function updateOptions() {
457
- const previousValue = options && selectCtrl.readValue();
458
-
459
- // We must remove all current options, but cannot simply set innerHTML = null
460
- // since the providedEmptyOption might have an ngIf on it that inserts comments which we
461
- // must preserve.
462
- // Instead, iterate over the current option elements and remove them or their optgroup
463
- // parents
464
- if (options) {
465
- for (let i = options.items.length - 1; i >= 0; i--) {
466
- const option = options.items[i];
467
- if (isDefined(option.group)) {
468
- removeElement(option.element.parentNode);
469
- } else {
470
- removeElement(option.element);
471
- }
472
- }
473
- }
474
-
475
- options = ngOptions.getOptions();
476
-
477
- const groupElementMap = {};
478
-
479
- options.items.forEach((option) => {
480
- let groupElement;
481
-
482
- if (isDefined(option.group)) {
483
- // This option is to live in a group
484
- // See if we have already created this group
485
- groupElement = groupElementMap[option.group];
486
-
487
- if (!groupElement) {
488
- groupElement = optGroupTemplate.cloneNode(false);
489
- listFragment.appendChild(groupElement);
490
-
491
- // Update the label on the group element
492
- // "null" is special cased because of Safari
493
- /** @type {HTMLOptGroupElement} */
494
- (groupElement).label =
495
- option.group === null ? "null" : option.group;
496
-
497
- // Store it for use later
498
- groupElementMap[option.group] = groupElement;
499
- }
500
-
501
- addOptionElement(option, groupElement);
502
- } else {
503
- // This option is not in a group
504
- addOptionElement(option, listFragment);
505
- }
506
- });
507
-
508
- selectElement.appendChild(listFragment);
509
-
510
- ngModelCtrl.$render();
511
-
512
- // Check to see if the value has changed due to the update to the options
513
- if (!ngModelCtrl.$isEmpty(previousValue)) {
514
- const nextValue = selectCtrl.readValue();
515
- const isNotPrimitive = ngOptions.trackBy || multiple;
516
- if (
517
- isNotPrimitive
518
- ? !equals(previousValue, nextValue)
519
- : previousValue !== nextValue
520
- ) {
521
- ngModelCtrl.$setViewValue(nextValue);
522
- ngModelCtrl.$render();
523
- }
524
- }
525
- }
526
- }
527
-
528
- return {
529
- restrict: "A",
530
- terminal: true,
531
- require: ["select", "ngModel"],
532
- link: {
533
- pre: function ngOptionsPreLink(scope, selectElement, attr, ctrls) {
534
- // Deactivate the SelectController.register method to prevent
535
- // option directives from accidentally registering themselves
536
- // (and unwanted $destroy handlers etc.)
537
- ctrls[0].registerOption = () => {};
538
- },
539
- post: ngOptionsPostLink,
540
- },
541
- };
542
- }