@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.
- package/@types/index.d.ts +1 -84
- package/{src/index.ts → @types/namespace.d.ts} +4 -24
- package/@types/router/template-factory.d.ts +2 -2
- package/dist/angular-ts.esm.js +3 -3
- package/dist/angular-ts.umd.js +3 -3
- package/dist/angular-ts.umd.min.js +1 -1
- package/package.json +8 -1
- package/.github/workflows/ci.yml +0 -104
- package/.github/workflows/gh-pages.yml +0 -75
- package/.husky/pre-commit +0 -5
- package/.prettierignore +0 -9
- package/CHANGELOG.md +0 -17667
- package/CODE_OF_CONDUCT.md +0 -3
- package/CONTRIBUTING.md +0 -247
- package/DEVELOPERS.md +0 -499
- package/Makefile +0 -60
- package/RELEASE.md +0 -86
- package/TRIAGING.md +0 -127
- package/docs/.cspell.yml +0 -8
- package/docs/.github/dependabot.yml +0 -14
- package/docs/.nvmrc +0 -1
- package/docs/CONTRIBUTING.md +0 -28
- package/docs/Dockerfile +0 -4
- package/docs/LICENSE +0 -201
- package/docs/README.md +0 -217
- package/docs/assets/icons/logo.svg +0 -1
- package/docs/assets/scss/_variables_project.scss +0 -12
- package/docs/assets/scss/_variables_project_after_bs.scss +0 -8
- package/docs/assets/scss/index.scss +0 -48
- package/docs/config.yaml +0 -15
- package/docs/content/_index.md +0 -28
- package/docs/content/docs/_index.md +0 -61
- package/docs/content/docs/directive/_index.md +0 -4
- package/docs/content/docs/directive/app.md +0 -11
- package/docs/content/docs/directive/aria.md +0 -0
- package/docs/content/docs/directive/bind.md +0 -72
- package/docs/content/docs/directive/blur.md +0 -38
- package/docs/content/docs/directive/channel.md +0 -37
- package/docs/content/docs/directive/class-even.md +0 -47
- package/docs/content/docs/directive/class-odd.md +0 -48
- package/docs/content/docs/directive/class.md +0 -64
- package/docs/content/docs/directive/click.md +0 -41
- package/docs/content/docs/directive/cloak.md +0 -74
- package/docs/content/docs/directive/copy.md +0 -38
- package/docs/content/docs/directive/cut.md +0 -40
- package/docs/content/docs/directive/dblclick.md +0 -41
- package/docs/content/docs/directive/focus.md +0 -38
- package/docs/content/docs/directive/get.md +0 -203
- package/docs/content/docs/directive/include.md +0 -7
- package/docs/content/docs/directive/keydown.md +0 -38
- package/docs/content/docs/directive/keyup.md +0 -38
- package/docs/content/docs/directive/load.md +0 -43
- package/docs/content/docs/directive/mousedown.md +0 -38
- package/docs/content/docs/directive/mouseenter.md +0 -38
- package/docs/content/docs/directive/mouseleave.md +0 -38
- package/docs/content/docs/directive/mousemove.md +0 -38
- package/docs/content/docs/directive/mouseout.md +0 -38
- package/docs/content/docs/directive/mouseover.md +0 -38
- package/docs/content/docs/directive/mouseup.md +0 -38
- package/docs/content/docs/directive/non-bindable.md +0 -28
- package/docs/content/docs/filter/_index.md +0 -4
- package/docs/content/docs/filter/filter.md +0 -78
- package/docs/content/docs/filter/json.md +0 -19
- package/docs/content/docs/filter/limit-to.md +0 -30
- package/docs/content/docs/filter/order-by.md +0 -123
- package/docs/content/docs/provider/_index.md +0 -4
- package/docs/content/docs/provider/eventBusProvider.md +0 -35
- package/docs/content/docs/provider/locationProvider.md +0 -26
- package/docs/content/docs/provider/logProvider.md +0 -59
- package/docs/content/docs/provider/sceProvider.md +0 -194
- package/docs/content/docs/provider/templateCacheProvider.md +0 -100
- package/docs/content/docs/provider/templateRequestProvider.md +0 -5
- package/docs/content/docs/service/_index.md +0 -4
- package/docs/content/docs/service/compile.md +0 -5
- package/docs/content/docs/service/controller.md +0 -5
- package/docs/content/docs/service/eventBus.md +0 -56
- package/docs/content/docs/service/http.md +0 -161
- package/docs/content/docs/service/interpolation.md +0 -5
- package/docs/content/docs/service/location.md +0 -57
- package/docs/content/docs/service/log.md +0 -113
- package/docs/content/docs/service/parse.md +0 -5
- package/docs/content/docs/service/rootElement.md +0 -5
- package/docs/content/docs/service/rootScope.md +0 -5
- package/docs/content/docs/service/sce.md +0 -194
- package/docs/content/docs/service/templateCache.md +0 -64
- package/docs/content/docs/service/templateRequest.md +0 -5
- package/docs/content/docs/service/url.md +0 -5
- package/docs/content/docs/values/_index.md +0 -4
- package/docs/content/docs/values/document.md +0 -29
- package/docs/content/docs/values/window.md +0 -29
- package/docs/docker-compose.yaml +0 -12
- package/docs/docsy.work +0 -5
- package/docs/docsy.work.sum +0 -0
- package/docs/go.mod +0 -5
- package/docs/go.sum +0 -6
- package/docs/hugo-disabled.toml +0 -220
- package/docs/hugo.yaml +0 -200
- package/docs/layouts/404.html +0 -13
- package/docs/layouts/_markup/render-heading.html +0 -1
- package/docs/layouts/partials/hooks/head-end.html +0 -3
- package/docs/layouts/shortcodes/showcss.html +0 -2
- package/docs/layouts/shortcodes/showhtml.html +0 -2
- package/docs/layouts/shortcodes/showjs.html +0 -2
- package/docs/layouts/shortcodes/showraw.html +0 -1
- package/docs/layouts/shortcodes/version.html +0 -1
- package/docs/package-lock.json +0 -2293
- package/docs/package.json +0 -53
- package/docs/static/examples/counter/counter-test.html +0 -13
- package/docs/static/examples/counter/counter.html +0 -5
- package/docs/static/examples/counter/counter.test.js +0 -28
- package/docs/static/examples/document/document.html +0 -3
- package/docs/static/examples/eventbus/eventbus-test.html +0 -15
- package/docs/static/examples/eventbus/eventbus.html +0 -13
- package/docs/static/examples/eventbus/eventbus.js +0 -15
- package/docs/static/examples/eventbus/eventbus.test.js +0 -19
- package/docs/static/examples/i18n/i18n.html +0 -77
- package/docs/static/examples/ng-bind/ng-bind.html +0 -9
- package/docs/static/examples/ng-blur/ng-blur.html +0 -9
- package/docs/static/examples/ng-channel/ng-channel-test.html +0 -17
- package/docs/static/examples/ng-channel/ng-channel.html +0 -24
- package/docs/static/examples/ng-channel/ng-channel.test.js +0 -31
- package/docs/static/examples/ng-class/ng-class.html +0 -71
- package/docs/static/examples/ng-class-even/ng-class-even.html +0 -8
- package/docs/static/examples/ng-class-odd/ng-class-odd.html +0 -8
- package/docs/static/examples/ng-click/ng-click.html +0 -6
- package/docs/static/examples/ng-copy/ng-copy.html +0 -6
- package/docs/static/examples/ng-cut/ng-cut.html +0 -6
- package/docs/static/examples/ng-dblclick/ng-dblclick.html +0 -10
- package/docs/static/examples/ng-focus/ng-focus.html +0 -9
- package/docs/static/examples/ng-keydown/ng-keydown.html +0 -9
- package/docs/static/examples/ng-keyup/ng-keyup.html +0 -9
- package/docs/static/examples/ng-load/ng-load.html +0 -8
- package/docs/static/examples/ng-mousedown/ng-mousedown.html +0 -6
- package/docs/static/examples/ng-mouseenter/ng-mouseenter.html +0 -4
- package/docs/static/examples/ng-mouseleave/ng-mouseleave.html +0 -4
- package/docs/static/examples/ng-mousemove/ng-mousemove.html +0 -4
- package/docs/static/examples/ng-mouseout/ng-mouseout.html +0 -4
- package/docs/static/examples/ng-mouseover/ng-mouseover.html +0 -4
- package/docs/static/examples/ng-mouseup/ng-mouseup.html +0 -4
- package/docs/static/examples/ng-non-bindable/ng-non-bindable-test.html +0 -13
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.html +0 -3
- package/docs/static/examples/ng-non-bindable/ng-non-bindable.test.js +0 -11
- package/docs/static/examples/window/window.html +0 -4
- package/docs/static/typedoc/.nojekyll +0 -1
- package/docs/static/typedoc/assets/hierarchy.js +0 -1
- package/docs/static/typedoc/assets/highlight.css +0 -29
- package/docs/static/typedoc/assets/icons.js +0 -18
- package/docs/static/typedoc/assets/icons.svg +0 -1
- package/docs/static/typedoc/assets/main.js +0 -60
- package/docs/static/typedoc/assets/navigation.js +0 -1
- package/docs/static/typedoc/assets/search.js +0 -1
- package/docs/static/typedoc/assets/style.css +0 -1633
- package/docs/static/typedoc/classes/Location.html +0 -55
- package/docs/static/typedoc/classes/LocationProvider.html +0 -20
- package/docs/static/typedoc/classes/LogProvider.html +0 -6
- package/docs/static/typedoc/classes/PubSub.html +0 -71
- package/docs/static/typedoc/classes/PubSubProvider.html +0 -4
- package/docs/static/typedoc/classes/TemplateCacheProvider.html +0 -5
- package/docs/static/typedoc/hierarchy.html +0 -1
- package/docs/static/typedoc/index.html +0 -1
- package/docs/static/typedoc/interfaces/DefaultPorts.html +0 -5
- package/docs/static/typedoc/interfaces/Html5Mode.html +0 -23
- package/docs/static/typedoc/interfaces/HttpHeadersGetter.html +0 -1
- package/docs/static/typedoc/interfaces/HttpProviderDefaults.html +0 -31
- package/docs/static/typedoc/interfaces/HttpRequestConfigHeaders.html +0 -6
- package/docs/static/typedoc/interfaces/HttpRequestTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpResponse.html +0 -7
- package/docs/static/typedoc/interfaces/HttpResponseTransformer.html +0 -1
- package/docs/static/typedoc/interfaces/HttpService.html +0 -38
- package/docs/static/typedoc/interfaces/LogService.html +0 -12
- package/docs/static/typedoc/interfaces/RequestConfig.html +0 -48
- package/docs/static/typedoc/interfaces/RequestShortcutConfig.html +0 -38
- package/docs/static/typedoc/interfaces/ServiceProvider.html +0 -5
- package/docs/static/typedoc/interfaces/UrlParts.html +0 -9
- package/docs/static/typedoc/types/HttpParamSerializer.html +0 -2
- package/docs/static/typedoc/types/HttpParams.html +0 -2
- package/docs/static/typedoc/types/HttpPromise.html +0 -1
- package/docs/static/typedoc/types/HttpResponseStatus.html +0 -1
- package/docs/static/typedoc/types/LogCall.html +0 -2
- package/docs/static/typedoc/types/LogServiceFactory.html +0 -2
- package/docs/static/typedoc/types/UrlChangeListener.html +0 -5
- package/docs/static/typedoc/variables/EventBus.html +0 -1
- package/docs/static/version.js +0 -13
- package/docs/test-results/.last-run.json +0 -4
- package/docs/test-results/static-examples-counter-counter-counter-example/error-context.md +0 -50
- package/eslint.config.js +0 -26
- package/images/android-chrome-192x192.png +0 -0
- package/images/android-chrome-512x512.png +0 -0
- package/images/apple-touch-icon.png +0 -0
- package/images/favicon-16x16.png +0 -0
- package/images/favicon-32x32.png +0 -0
- package/images/favicon.ico +0 -0
- package/images/site.webmanifest +0 -19
- package/index.html +0 -86
- package/legacy.d.ts +0 -1678
- package/playwright.config.ts +0 -81
- package/public/jasmine/boot0.js +0 -66
- package/public/jasmine/boot1.js +0 -134
- package/public/jasmine/jasmine-html.js +0 -970
- package/public/jasmine/jasmine.css +0 -323
- package/public/jasmine/jasmine.js +0 -11406
- package/public/public/README.md +0 -1
- package/public/public/circle.html +0 -1
- package/public/public/jasmine-helper.css +0 -9
- package/public/public/my_child_directive.html +0 -1
- package/public/public/my_directive.html +0 -1
- package/public/public/my_other_directive.html +0 -1
- package/public/public/test.html +0 -1
- package/rollup.config.js +0 -51
- package/src/angular.js +0 -286
- package/src/angular.spec.js +0 -1191
- package/src/animations/animate-cache.js +0 -80
- package/src/animations/animate-children-directive.js +0 -32
- package/src/animations/animate-children-directive.md +0 -80
- package/src/animations/animate-css-driver.js +0 -284
- package/src/animations/animate-css.html +0 -58
- package/src/animations/animate-css.js +0 -915
- package/src/animations/animate-css.md +0 -263
- package/src/animations/animate-js-driver.js +0 -60
- package/src/animations/animate-js.html +0 -47
- package/src/animations/animate-js.js +0 -371
- package/src/animations/animate-queue.js +0 -859
- package/src/animations/animate-runner.js +0 -193
- package/src/animations/animate-swap.js +0 -33
- package/src/animations/animate-swap.md +0 -88
- package/src/animations/animate.html +0 -19
- package/src/animations/animate.js +0 -546
- package/src/animations/animate.md +0 -933
- package/src/animations/animate.spec.js +0 -490
- package/src/animations/animation.js +0 -519
- package/src/animations/animations.test.js +0 -10
- package/src/animations/interface.ts +0 -19
- package/src/animations/raf-scheduler.html +0 -19
- package/src/animations/raf-scheduler.js +0 -92
- package/src/animations/raf-scheduler.spec.js +0 -98
- package/src/animations/shared.js +0 -341
- package/src/binding.html +0 -19
- package/src/binding.spec.js +0 -474
- package/src/binding.test.js +0 -10
- package/src/core/compile/attributes.js +0 -337
- package/src/core/compile/compile.html +0 -19
- package/src/core/compile/compile.js +0 -3271
- package/src/core/compile/compile.md +0 -1128
- package/src/core/compile/compile.spec.js +0 -15574
- package/src/core/compile/compile.test.js +0 -12
- package/src/core/controller/controller.html +0 -22
- package/src/core/controller/controller.js +0 -193
- package/src/core/controller/controller.spec.js +0 -334
- package/src/core/controller/controller.test.js +0 -12
- package/src/core/controller/interface.ts +0 -6
- package/src/core/core.html +0 -20
- package/src/core/core.test.js +0 -12
- package/src/core/di/injector.html +0 -19
- package/src/core/di/injector.js +0 -307
- package/src/core/di/injector.md +0 -740
- package/src/core/di/injector.spec.js +0 -2310
- package/src/core/di/injector.test.js +0 -12
- package/src/core/di/internal-injector.js +0 -286
- package/src/core/di/ng-module.html +0 -19
- package/src/core/di/ng-module.js +0 -229
- package/src/core/di/ng-module.spec.js +0 -263
- package/src/core/di/ng-module.test.js +0 -12
- package/src/core/filter/filter.html +0 -19
- package/src/core/filter/filter.js +0 -55
- package/src/core/filter/filter.md +0 -132
- package/src/core/filter/filter.spec.js +0 -149
- package/src/core/filter/filter.test.js +0 -12
- package/src/core/interpolate/interface.ts +0 -14
- package/src/core/interpolate/interpolate.html +0 -22
- package/src/core/interpolate/interpolate.js +0 -410
- package/src/core/interpolate/interpolate.spec.js +0 -601
- package/src/core/interpolate/interpolate.test.js +0 -12
- package/src/core/parse/ast/ast-node.ts +0 -81
- package/src/core/parse/ast/ast.html +0 -19
- package/src/core/parse/ast/ast.js +0 -574
- package/src/core/parse/ast/ast.spec.js +0 -1453
- package/src/core/parse/ast/ast.test.js +0 -10
- package/src/core/parse/ast-type.js +0 -23
- package/src/core/parse/interface.ts +0 -84
- package/src/core/parse/interpreter.js +0 -915
- package/src/core/parse/lexer/lexer.html +0 -19
- package/src/core/parse/lexer/lexer.js +0 -338
- package/src/core/parse/lexer/lexer.spec.js +0 -303
- package/src/core/parse/lexer/lexer.test.js +0 -10
- package/src/core/parse/lexer/token.ts +0 -22
- package/src/core/parse/parse.html +0 -19
- package/src/core/parse/parse.js +0 -337
- package/src/core/parse/parse.md +0 -57
- package/src/core/parse/parse.spec.js +0 -2107
- package/src/core/parse/parse.test.js +0 -10
- package/src/core/parse/parser/parser.html +0 -19
- package/src/core/parse/parser/parser.js +0 -64
- package/src/core/parse/parser/parser.spec.js +0 -8
- package/src/core/parse/parser/parser.test.js +0 -10
- package/src/core/prop.spec.js +0 -775
- package/src/core/root-element.spec.js +0 -14
- package/src/core/sanitize/interface.ts +0 -10
- package/src/core/sanitize/sanitize-uri.js +0 -75
- package/src/core/sanitize/sanitize-uri.spec.js +0 -249
- package/src/core/sanitize/sanitize-uri.test.js +0 -12
- package/src/core/sanitize/sanitize.html +0 -22
- package/src/core/scope/scope.html +0 -19
- package/src/core/scope/scope.js +0 -1252
- package/src/core/scope/scope.spec.js +0 -3000
- package/src/core/scope/scope.test.js +0 -12
- package/src/directive/aria/aria.html +0 -19
- package/src/directive/aria/aria.js +0 -382
- package/src/directive/aria/aria.md +0 -145
- package/src/directive/aria/aria.spec.js +0 -1241
- package/src/directive/aria/aria.test.js +0 -12
- package/src/directive/attrs/attrs.html +0 -19
- package/src/directive/attrs/attrs.js +0 -106
- package/src/directive/attrs/attrs.md +0 -224
- package/src/directive/attrs/attrs.spec.js +0 -71
- package/src/directive/attrs/attrs.test.js +0 -12
- package/src/directive/attrs/boolean.html +0 -19
- package/src/directive/attrs/boolean.spec.js +0 -137
- package/src/directive/attrs/boolean.test.js +0 -12
- package/src/directive/attrs/element-style.html +0 -22
- package/src/directive/attrs/element-style.spec.js +0 -85
- package/src/directive/attrs/element-style.test.js +0 -12
- package/src/directive/attrs/src.html +0 -19
- package/src/directive/attrs/src.spec.js +0 -163
- package/src/directive/attrs/src.test.js +0 -12
- package/src/directive/bind/bind-html.spec.js +0 -36
- package/src/directive/bind/bind.html +0 -20
- package/src/directive/bind/bind.js +0 -78
- package/src/directive/bind/bind.md +0 -142
- package/src/directive/bind/bind.spec.js +0 -314
- package/src/directive/bind/bind.test.js +0 -12
- package/src/directive/channel/channel.html +0 -19
- package/src/directive/channel/channel.js +0 -30
- package/src/directive/channel/channel.spec.js +0 -67
- package/src/directive/channel/channel.test.js +0 -10
- package/src/directive/class/class-test.html +0 -23
- package/src/directive/class/class.html +0 -19
- package/src/directive/class/class.js +0 -184
- package/src/directive/class/class.spec.js +0 -704
- package/src/directive/class/class.test.js +0 -12
- package/src/directive/cloak/cloak.html +0 -19
- package/src/directive/cloak/cloak.js +0 -11
- package/src/directive/cloak/cloak.spec.js +0 -44
- package/src/directive/cloak/cloak.test.js +0 -12
- package/src/directive/controller/controller.html +0 -22
- package/src/directive/controller/controller.js +0 -11
- package/src/directive/controller/controller.md +0 -46
- package/src/directive/controller/controller.spec.js +0 -175
- package/src/directive/controller/controller.test.js +0 -12
- package/src/directive/events/click.spec.js +0 -35
- package/src/directive/events/event.spec.js +0 -267
- package/src/directive/events/events-test.html +0 -36
- package/src/directive/events/events.html +0 -20
- package/src/directive/events/events.js +0 -65
- package/src/directive/events/events.md +0 -125
- package/src/directive/events/events.test.js +0 -12
- package/src/directive/form/form.html +0 -19
- package/src/directive/form/form.js +0 -669
- package/src/directive/form/form.spec.js +0 -1515
- package/src/directive/form/form.test.js +0 -12
- package/src/directive/http/delete.spec.js +0 -23
- package/src/directive/http/form-router-test.html +0 -44
- package/src/directive/http/form-test.html +0 -18
- package/src/directive/http/get.spec.js +0 -488
- package/src/directive/http/http.html +0 -22
- package/src/directive/http/http.js +0 -342
- package/src/directive/http/http.test.js +0 -12
- package/src/directive/http/interface.ts +0 -36
- package/src/directive/http/post-example.html +0 -30
- package/src/directive/http/post.spec.js +0 -521
- package/src/directive/http/put.spec.js +0 -23
- package/src/directive/if/if-animate-css.html +0 -57
- package/src/directive/if/if-animate-svg.html +0 -25
- package/src/directive/if/if.html +0 -19
- package/src/directive/if/if.js +0 -72
- package/src/directive/if/if.md +0 -76
- package/src/directive/if/if.spec.js +0 -293
- package/src/directive/if/if.test.js +0 -114
- package/src/directive/include/include.html +0 -19
- package/src/directive/include/include.js +0 -151
- package/src/directive/include/include.md +0 -87
- package/src/directive/include/include.spec.js +0 -734
- package/src/directive/include/include.test.js +0 -12
- package/src/directive/init/init.html +0 -19
- package/src/directive/init/init.js +0 -22
- package/src/directive/init/init.md +0 -41
- package/src/directive/init/init.spec.js +0 -68
- package/src/directive/init/init.test.js +0 -12
- package/src/directive/inject/inject.html +0 -19
- package/src/directive/inject/inject.js +0 -35
- package/src/directive/inject/inject.spec.js +0 -108
- package/src/directive/inject/inject.test.js +0 -12
- package/src/directive/input/input-example.html +0 -15
- package/src/directive/input/input.html +0 -19
- package/src/directive/input/input.js +0 -1078
- package/src/directive/input/input.md +0 -706
- package/src/directive/input/input.spec.js +0 -3700
- package/src/directive/input/input.test.js +0 -12
- package/src/directive/messages/messages.html +0 -22
- package/src/directive/messages/messages.js +0 -349
- package/src/directive/messages/messages.md +0 -543
- package/src/directive/messages/messages.spec.js +0 -1083
- package/src/directive/messages/messages.test.js +0 -12
- package/src/directive/model/change.md +0 -25
- package/src/directive/model/model.html +0 -19
- package/src/directive/model/model.js +0 -1170
- package/src/directive/model/model.spec.js +0 -1976
- package/src/directive/model/model.test.js +0 -12
- package/src/directive/model-options/model-option.test.js +0 -12
- package/src/directive/model-options/model-options.html +0 -22
- package/src/directive/model-options/model-options.js +0 -142
- package/src/directive/model-options/model-options.md +0 -407
- package/src/directive/model-options/model-options.spec.js +0 -1022
- package/src/directive/non-bindable/non-bindable.html +0 -22
- package/src/directive/non-bindable/non-bindable.js +0 -9
- package/src/directive/non-bindable/non-bindable.spec.js +0 -59
- package/src/directive/non-bindable/non-bindable.test.js +0 -12
- package/src/directive/observe/observe-demo.html +0 -184
- package/src/directive/observe/observe.html +0 -19
- package/src/directive/observe/observe.js +0 -41
- package/src/directive/observe/observe.spec.js +0 -106
- package/src/directive/observe/observe.test.js +0 -10
- package/src/directive/on/on.html +0 -19
- package/src/directive/on/on.spec.js +0 -215
- package/src/directive/on/on.test.js +0 -12
- package/src/directive/options/options-example.html +0 -17
- package/src/directive/options/options.html +0 -22
- package/src/directive/options/options.js +0 -542
- package/src/directive/options/options.md +0 -179
- package/src/directive/options/options.spec.js +0 -3554
- package/src/directive/options/options.test.js +0 -12
- package/src/directive/ref/href.html +0 -19
- package/src/directive/ref/href.spec.js +0 -141
- package/src/directive/ref/href.test.js +0 -19
- package/src/directive/ref/ref.html +0 -19
- package/src/directive/ref/ref.js +0 -89
- package/src/directive/ref/ref.spec.js +0 -546
- package/src/directive/repeat/repeat.html +0 -19
- package/src/directive/repeat/repeat.js +0 -333
- package/src/directive/repeat/repeat.md +0 -330
- package/src/directive/repeat/repeat.spec.js +0 -1209
- package/src/directive/repeat/repeat.test.js +0 -12
- package/src/directive/script/script.html +0 -19
- package/src/directive/script/script.js +0 -17
- package/src/directive/script/script.md +0 -11
- package/src/directive/script/script.spec.js +0 -47
- package/src/directive/script/script.test.js +0 -12
- package/src/directive/select/select.html +0 -19
- package/src/directive/select/select.js +0 -594
- package/src/directive/select/select.md +0 -74
- package/src/directive/select/select.spec.js +0 -2566
- package/src/directive/select/select.test.js +0 -12
- package/src/directive/setter/setter.html +0 -19
- package/src/directive/setter/setter.js +0 -59
- package/src/directive/setter/setter.spec.js +0 -100
- package/src/directive/setter/setter.test.js +0 -12
- package/src/directive/show-hide/show-hide.html +0 -22
- package/src/directive/show-hide/show-hide.js +0 -65
- package/src/directive/show-hide/show-hide.md +0 -255
- package/src/directive/show-hide/show-hide.spec.js +0 -268
- package/src/directive/show-hide/show-hide.test.js +0 -12
- package/src/directive/style/style.html +0 -19
- package/src/directive/style/style.js +0 -27
- package/src/directive/style/style.md +0 -23
- package/src/directive/style/style.spec.js +0 -183
- package/src/directive/style/style.test.js +0 -12
- package/src/directive/switch/switch.html +0 -19
- package/src/directive/switch/switch.js +0 -133
- package/src/directive/switch/switch.md +0 -66
- package/src/directive/switch/switch.spec.js +0 -509
- package/src/directive/switch/switch.test.js +0 -12
- package/src/directive/transclude/transclude.js +0 -122
- package/src/directive/validators/validators.html +0 -22
- package/src/directive/validators/validators.js +0 -346
- package/src/directive/validators/validators.spec.js +0 -740
- package/src/directive/validators/validators.test.js +0 -12
- package/src/filters/filter.js +0 -213
- package/src/filters/filter.spec.js +0 -719
- package/src/filters/filters.html +0 -22
- package/src/filters/filters.js +0 -239
- package/src/filters/filters.spec.js +0 -36
- package/src/filters/filters.test.js +0 -12
- package/src/filters/interface.ts +0 -9
- package/src/filters/limit-to.js +0 -55
- package/src/filters/limit-to.spec.js +0 -252
- package/src/filters/order-by.js +0 -181
- package/src/filters/order-by.spec.js +0 -883
- package/src/index.js +0 -6
- package/src/index.spec.js +0 -11
- package/src/injection-tokens.js +0 -81
- package/src/interface.ts +0 -430
- package/src/ng.js +0 -291
- package/src/ng.spec.js +0 -45
- package/src/router/common/trace.js +0 -240
- package/src/router/directives/component-example.html +0 -37
- package/src/router/directives/state-directives.html +0 -22
- package/src/router/directives/state-directives.js +0 -393
- package/src/router/directives/state-directives.md +0 -435
- package/src/router/directives/state-directives.spec.js +0 -1091
- package/src/router/directives/state-directives.test.js +0 -10
- package/src/router/directives/view-directive.js +0 -489
- package/src/router/directives/view-directive.spec.js +0 -1921
- package/src/router/directives/view-directive.test.js +0 -10
- package/src/router/directives/view-directives.html +0 -22
- package/src/router/glob/glob.html +0 -19
- package/src/router/glob/glob.js +0 -102
- package/src/router/glob/glob.spec.js +0 -108
- package/src/router/glob/glob.test.js +0 -12
- package/src/router/hooks/core-resolvables.js +0 -38
- package/src/router/hooks/ignored-transition.js +0 -25
- package/src/router/hooks/invalid-transition.js +0 -14
- package/src/router/hooks/lazy-load.js +0 -104
- package/src/router/hooks/on-enter-exit-retain.js +0 -55
- package/src/router/hooks/redirect-to.js +0 -38
- package/src/router/hooks/resolve.js +0 -57
- package/src/router/hooks/update-globals.js +0 -34
- package/src/router/hooks/url.js +0 -34
- package/src/router/hooks/views.js +0 -41
- package/src/router/params/interface.ts +0 -626
- package/src/router/params/param-factory.js +0 -23
- package/src/router/params/param-type.js +0 -133
- package/src/router/params/param-types.js +0 -153
- package/src/router/params/param.js +0 -243
- package/src/router/params/state-params.js +0 -36
- package/src/router/path/path-node.js +0 -78
- package/src/router/path/path-utils.js +0 -207
- package/src/router/resolve/interface.ts +0 -208
- package/src/router/resolve/resolvable.js +0 -123
- package/src/router/resolve/resolve-context.js +0 -190
- package/src/router/router-test-hashbang.html +0 -45
- package/src/router/router-test.html +0 -41
- package/src/router/router.html +0 -22
- package/src/router/router.js +0 -54
- package/src/router/router.test.js +0 -12
- package/src/router/services.spec.js +0 -52
- package/src/router/state/interface.ts +0 -1007
- package/src/router/state/state-builder.js +0 -376
- package/src/router/state/state-builder.spec.js +0 -86
- package/src/router/state/state-matcher.js +0 -64
- package/src/router/state/state-object.js +0 -118
- package/src/router/state/state-queue-manager.js +0 -95
- package/src/router/state/state-registry.js +0 -262
- package/src/router/state/state-service.js +0 -687
- package/src/router/state/state.html +0 -23
- package/src/router/state/state.spec.js +0 -1002
- package/src/router/state/state.test.js +0 -12
- package/src/router/state/target-state.js +0 -162
- package/src/router/state/views.js +0 -195
- package/src/router/state-filter.spec.js +0 -139
- package/src/router/state-filters.js +0 -46
- package/src/router/template-factory.html +0 -19
- package/src/router/template-factory.js +0 -249
- package/src/router/template-factory.spec.js +0 -146
- package/src/router/template-factory.test.js +0 -12
- package/src/router/transition/hook-builder.js +0 -137
- package/src/router/transition/hook-registry.js +0 -181
- package/src/router/transition/interface.js +0 -18
- package/src/router/transition/interface.ts +0 -922
- package/src/router/transition/reject-factory.js +0 -122
- package/src/router/transition/transition-event-type.js +0 -26
- package/src/router/transition/transition-hook.js +0 -199
- package/src/router/transition/transition-service.js +0 -297
- package/src/router/transition/transition.js +0 -653
- package/src/router/url/url-config.js +0 -155
- package/src/router/url/url-matcher.js +0 -532
- package/src/router/url/url-rule.js +0 -231
- package/src/router/url/url-rules.js +0 -350
- package/src/router/url/url-service.js +0 -446
- package/src/router/url/url-service.spec.js +0 -1288
- package/src/router/url/url.html +0 -19
- package/src/router/url/url.test.js +0 -12
- package/src/router/view/interface.ts +0 -51
- package/src/router/view/view.html +0 -19
- package/src/router/view/view.js +0 -262
- package/src/router/view/view.spec.js +0 -100
- package/src/router/view/view.test.js +0 -12
- package/src/router/view-hook.spec.js +0 -215
- package/src/router/view-scroll.js +0 -33
- package/src/router/view-scroll.spec.js +0 -72
- package/src/services/anchor-scroll/anchor-scroll.html +0 -76
- package/src/services/anchor-scroll/anchor-scroll.js +0 -147
- package/src/services/exception/exception-handler.js +0 -75
- package/src/services/exception/interface.ts +0 -7
- package/src/services/http/http.html +0 -23
- package/src/services/http/http.js +0 -1109
- package/src/services/http/http.spec.js +0 -4320
- package/src/services/http/http.test.js +0 -11
- package/src/services/http/interface.ts +0 -256
- package/src/services/http/template-request.spec.js +0 -220
- package/src/services/location/interface.ts +0 -70
- package/src/services/location/location.html +0 -22
- package/src/services/location/location.js +0 -1006
- package/src/services/location/location.spec.js +0 -3792
- package/src/services/location/location.test.js +0 -12
- package/src/services/log/interface.ts +0 -39
- package/src/services/log/log.html +0 -19
- package/src/services/log/log.js +0 -74
- package/src/services/log/log.spec.js +0 -64
- package/src/services/log/log.test.js +0 -12
- package/src/services/pubsub/pubsub.html +0 -19
- package/src/services/pubsub/pubsub.js +0 -349
- package/src/services/pubsub/pubsub.spec.js +0 -400
- package/src/services/pubsub/pubsub.test.js +0 -12
- package/src/services/sce/sce.html +0 -19
- package/src/services/sce/sce.js +0 -852
- package/src/services/sce/sce.spec.js +0 -617
- package/src/services/sce/sce.test.js +0 -12
- package/src/services/template-cache/template-cache.html +0 -22
- package/src/services/template-cache/template-cache.js +0 -15
- package/src/services/template-cache/template-cache.spec.js +0 -134
- package/src/services/template-cache/template-cache.test.js +0 -12
- package/src/services/template-request/interface.ts +0 -23
- package/src/services/template-request/template-request.js +0 -142
- package/src/shared/cache.js +0 -7
- package/src/shared/common.js +0 -365
- package/src/shared/common.spec.js +0 -294
- package/src/shared/constants.js +0 -21
- package/src/shared/dom.js +0 -716
- package/src/shared/hof.js +0 -157
- package/src/shared/hof.spec.js +0 -60
- package/src/shared/interface.ts +0 -21
- package/src/shared/min-err.spec.js +0 -178
- package/src/shared/noderef.js +0 -225
- package/src/shared/predicates.js +0 -34
- package/src/shared/queue.js +0 -105
- package/src/shared/queue.spec.js +0 -80
- package/src/shared/shared.html +0 -24
- package/src/shared/shared.test.js +0 -12
- package/src/shared/strings.js +0 -142
- package/src/shared/strings.spec.js +0 -40
- package/src/shared/test-utils.js +0 -47
- package/src/shared/url-utils/interface.ts +0 -54
- package/src/shared/url-utils/url-utils.html +0 -22
- package/src/shared/url-utils/url-utils.js +0 -122
- package/src/shared/url-utils/url-utils.spec.js +0 -148
- package/src/shared/url-utils/url-utils.test.js +0 -12
- package/src/shared/utils.js +0 -1255
- package/src/shared/utils.spec.js +0 -178
- package/src/src.html +0 -21
- package/src/src.test.js +0 -10
- package/tsconfig.json +0 -19
- package/tsconfig.types.json +0 -14
- package/typedoc.json +0 -8
- package/utils/express.js +0 -203
- package/utils/version.cjs +0 -23
- package/vite.config.js +0 -14
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { DefType, Param } from "./param.js";
|
|
2
|
-
|
|
3
|
-
export class ParamFactory {
|
|
4
|
-
/**
|
|
5
|
-
* @param {import("../url/url-config.js").UrlConfigProvider} urlServiceConfig
|
|
6
|
-
*/
|
|
7
|
-
constructor(urlServiceConfig) {
|
|
8
|
-
/**
|
|
9
|
-
* @type {import("../url/url-config.js").UrlConfigProvider}
|
|
10
|
-
*/
|
|
11
|
-
this.urlServiceConfig = urlServiceConfig;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
fromConfig(id, type, state) {
|
|
15
|
-
return new Param(id, type, DefType.CONFIG, this.urlServiceConfig, state);
|
|
16
|
-
}
|
|
17
|
-
fromPath(id, type, state) {
|
|
18
|
-
return new Param(id, type, DefType.PATH, this.urlServiceConfig, state);
|
|
19
|
-
}
|
|
20
|
-
fromSearch(id, type, state) {
|
|
21
|
-
return new Param(id, type, DefType.SEARCH, this.urlServiceConfig, state);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { filter, map } from "../../shared/common.js";
|
|
2
|
-
import { isDefined } from "../../shared/utils.js";
|
|
3
|
-
/**
|
|
4
|
-
* An internal class which implements [[ParamTypeDefinition]].
|
|
5
|
-
*
|
|
6
|
-
* A [[ParamTypeDefinition]] is a plain javascript object used to register custom parameter types.
|
|
7
|
-
* When a param type definition is registered, an instance of this class is created internally.
|
|
8
|
-
*
|
|
9
|
-
* This class has naive implementations for all the [[ParamTypeDefinition]] methods.
|
|
10
|
-
*
|
|
11
|
-
* Used by [[UrlMatcher]] when matching or formatting URLs, or comparing and validating parameter values.
|
|
12
|
-
*
|
|
13
|
-
* #### Example:
|
|
14
|
-
* ```js
|
|
15
|
-
* var paramTypeDef = {
|
|
16
|
-
* decode: function(val) { return parseInt(val, 10); },
|
|
17
|
-
* encode: function(val) { return val && val.toString(); },
|
|
18
|
-
* equals: function(a, b) { return this.is(a) && a === b; },
|
|
19
|
-
* is: function(val) { return angular.isNumber(val) && isFinite(val) && val % 1 === 0; },
|
|
20
|
-
* pattern: /\d+/
|
|
21
|
-
* }
|
|
22
|
-
*
|
|
23
|
-
* var paramType = new ParamType(paramTypeDef);
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export class ParamType {
|
|
27
|
-
/**
|
|
28
|
-
* @param def A configuration object which contains the custom type definition. The object's
|
|
29
|
-
* properties will override the default methods and/or pattern in `ParamType`'s public interface.
|
|
30
|
-
*/
|
|
31
|
-
constructor(def) {
|
|
32
|
-
this.pattern = /.*/;
|
|
33
|
-
this.inherit = true;
|
|
34
|
-
Object.assign(this, def);
|
|
35
|
-
this.name = undefined;
|
|
36
|
-
}
|
|
37
|
-
// consider these four methods to be "abstract methods" that should be overridden
|
|
38
|
-
|
|
39
|
-
is(val) {
|
|
40
|
-
return !!val;
|
|
41
|
-
}
|
|
42
|
-
encode(val) {
|
|
43
|
-
return val;
|
|
44
|
-
}
|
|
45
|
-
decode(val) {
|
|
46
|
-
return val;
|
|
47
|
-
}
|
|
48
|
-
equals(a, b) {
|
|
49
|
-
return a == b;
|
|
50
|
-
}
|
|
51
|
-
$subPattern() {
|
|
52
|
-
const sub = this.pattern.toString();
|
|
53
|
-
return sub.substring(1, sub.length - 2);
|
|
54
|
-
}
|
|
55
|
-
toString() {
|
|
56
|
-
return `{ParamType:${this.name}}`;
|
|
57
|
-
}
|
|
58
|
-
/** Given an encoded string, or a decoded object, returns a decoded object */
|
|
59
|
-
$normalize(val) {
|
|
60
|
-
return this.is(val) ? val : this.decode(val);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Wraps an existing custom ParamType as an array of ParamType, depending on 'mode'.
|
|
64
|
-
* e.g.:
|
|
65
|
-
* - urlmatcher pattern "/path?{queryParam[]:int}"
|
|
66
|
-
* - url: "/path?queryParam=1&queryParam=2
|
|
67
|
-
* - $stateParams.queryParam will be [1, 2]
|
|
68
|
-
* if `mode` is "auto", then
|
|
69
|
-
* - url: "/path?queryParam=1 will create $stateParams.queryParam: 1
|
|
70
|
-
* - url: "/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2]
|
|
71
|
-
*/
|
|
72
|
-
$asArray(mode, isSearch) {
|
|
73
|
-
if (!mode) return this;
|
|
74
|
-
if (mode === "auto" && !isSearch)
|
|
75
|
-
throw new Error("'auto' array mode is for query parameters only");
|
|
76
|
-
return new ArrayType(this, mode);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/** Wraps up a `ParamType` object to handle array values. */
|
|
80
|
-
function ArrayType(type, mode) {
|
|
81
|
-
// Wrap non-array value as array
|
|
82
|
-
function arrayWrap(val) {
|
|
83
|
-
return Array.isArray(val) ? val : isDefined(val) ? [val] : [];
|
|
84
|
-
}
|
|
85
|
-
// Unwrap array value for "auto" mode. Return undefined for empty array.
|
|
86
|
-
function arrayUnwrap(val) {
|
|
87
|
-
switch (val.length) {
|
|
88
|
-
case 0:
|
|
89
|
-
return undefined;
|
|
90
|
-
case 1:
|
|
91
|
-
return mode === "auto" ? val[0] : val;
|
|
92
|
-
default:
|
|
93
|
-
return val;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// Wraps type (.is/.encode/.decode) functions to operate on each value of an array
|
|
97
|
-
function arrayHandler(callback, allTruthyMode) {
|
|
98
|
-
return function handleArray(val) {
|
|
99
|
-
if (Array.isArray(val) && val.length === 0) return val;
|
|
100
|
-
const arr = arrayWrap(val);
|
|
101
|
-
const result = map(arr, callback);
|
|
102
|
-
return allTruthyMode === true
|
|
103
|
-
? filter(result, (x) => !x).length === 0
|
|
104
|
-
: arrayUnwrap(result);
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
// Wraps type (.equals) functions to operate on each value of an array
|
|
108
|
-
function arrayEqualsHandler(callback) {
|
|
109
|
-
return function handleArray(val1, val2) {
|
|
110
|
-
const left = arrayWrap(val1),
|
|
111
|
-
right = arrayWrap(val2);
|
|
112
|
-
if (left.length !== right.length) return false;
|
|
113
|
-
for (let i = 0; i < left.length; i++) {
|
|
114
|
-
if (!callback(left[i], right[i])) return false;
|
|
115
|
-
}
|
|
116
|
-
return true;
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
["encode", "decode", "equals", "$normalize"].forEach((name) => {
|
|
120
|
-
const paramTypeFn = type[name].bind(type);
|
|
121
|
-
const wrapperFn = name === "equals" ? arrayEqualsHandler : arrayHandler;
|
|
122
|
-
this[name] = wrapperFn(paramTypeFn);
|
|
123
|
-
});
|
|
124
|
-
Object.assign(this, {
|
|
125
|
-
dynamic: type.dynamic,
|
|
126
|
-
name: type.name,
|
|
127
|
-
pattern: type.pattern,
|
|
128
|
-
inherit: type.inherit,
|
|
129
|
-
raw: type.raw,
|
|
130
|
-
is: arrayHandler(type.is.bind(type), true),
|
|
131
|
-
$arrayMode: mode,
|
|
132
|
-
});
|
|
133
|
-
}
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { equals, inherit, map, pick } from "../../shared/common.js";
|
|
2
|
-
import { hasOwn, isDefined, isNullOrUndefined } from "../../shared/utils.js";
|
|
3
|
-
import { is } from "../../shared/hof.js";
|
|
4
|
-
import { ParamType } from "./param-type.js";
|
|
5
|
-
/**
|
|
6
|
-
* A registry for parameter types.
|
|
7
|
-
*
|
|
8
|
-
* This registry manages the built-in (and custom) parameter types.
|
|
9
|
-
*
|
|
10
|
-
* The built-in parameter types are:
|
|
11
|
-
*
|
|
12
|
-
* - [[string]]
|
|
13
|
-
* - [[path]]
|
|
14
|
-
* - [[query]]
|
|
15
|
-
* - [[hash]]
|
|
16
|
-
* - [[int]]
|
|
17
|
-
* - [[bool]]
|
|
18
|
-
* - [[date]]
|
|
19
|
-
* - [[json]]
|
|
20
|
-
* - [[any]]
|
|
21
|
-
*
|
|
22
|
-
* To register custom parameter types, use [[UrlConfig.type]], i.e.,
|
|
23
|
-
*
|
|
24
|
-
* ```js
|
|
25
|
-
* router.urlService.config.type(customType)
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export class ParamTypes {
|
|
29
|
-
constructor() {
|
|
30
|
-
this.enqueue = true;
|
|
31
|
-
this.typeQueue = [];
|
|
32
|
-
this.defaultTypes = pick(ParamTypes.prototype, [
|
|
33
|
-
"hash",
|
|
34
|
-
"string",
|
|
35
|
-
"query",
|
|
36
|
-
"path",
|
|
37
|
-
"int",
|
|
38
|
-
"bool",
|
|
39
|
-
"date",
|
|
40
|
-
"json",
|
|
41
|
-
"any",
|
|
42
|
-
]);
|
|
43
|
-
// Register default types. Store them in the prototype of this.types.
|
|
44
|
-
const makeType = (definition, name) =>
|
|
45
|
-
new ParamType(Object.assign({ name }, definition));
|
|
46
|
-
this.types = inherit(map(this.defaultTypes, makeType), {});
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Registers a parameter type
|
|
50
|
-
*
|
|
51
|
-
* End users should call [[UrlMatcherFactory.type]], which delegates to this method.
|
|
52
|
-
*/
|
|
53
|
-
type(name, definition, definitionFn) {
|
|
54
|
-
if (!isDefined(definition)) return this.types[name];
|
|
55
|
-
if (hasOwn(this.types, name))
|
|
56
|
-
throw new Error(`A type named '${name}' has already been defined.`);
|
|
57
|
-
this.types[name] = new ParamType(Object.assign({ name }, definition));
|
|
58
|
-
if (definitionFn) {
|
|
59
|
-
this.typeQueue.push({ name, def: definitionFn });
|
|
60
|
-
if (!this.enqueue) this._flushTypeQueue();
|
|
61
|
-
}
|
|
62
|
-
return this;
|
|
63
|
-
}
|
|
64
|
-
_flushTypeQueue() {
|
|
65
|
-
while (this.typeQueue.length) {
|
|
66
|
-
const type = this.typeQueue.shift();
|
|
67
|
-
if (type.pattern)
|
|
68
|
-
throw new Error("You cannot override a type's .pattern at runtime.");
|
|
69
|
-
Object.assign(
|
|
70
|
-
this.types[type.name],
|
|
71
|
-
window["angular"].$injector.invoke(type.def),
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
function initDefaultTypes() {
|
|
77
|
-
const makeDefaultType = (def) => {
|
|
78
|
-
const valToString = (val) => (val != null ? val.toString() : val);
|
|
79
|
-
const defaultTypeBase = {
|
|
80
|
-
encode: valToString,
|
|
81
|
-
decode: valToString,
|
|
82
|
-
is: is(String),
|
|
83
|
-
pattern: /.*/,
|
|
84
|
-
|
|
85
|
-
equals: (a, b) => a == b, // allow coersion for null/undefined/""
|
|
86
|
-
};
|
|
87
|
-
return Object.assign({}, defaultTypeBase, def);
|
|
88
|
-
};
|
|
89
|
-
// Default Parameter Type Definitions
|
|
90
|
-
Object.assign(ParamTypes.prototype, {
|
|
91
|
-
string: makeDefaultType({}),
|
|
92
|
-
path: makeDefaultType({
|
|
93
|
-
pattern: /[^/]*/,
|
|
94
|
-
}),
|
|
95
|
-
query: makeDefaultType({}),
|
|
96
|
-
hash: makeDefaultType({
|
|
97
|
-
inherit: false,
|
|
98
|
-
}),
|
|
99
|
-
int: makeDefaultType({
|
|
100
|
-
decode: (val) => parseInt(val, 10),
|
|
101
|
-
is: function (val) {
|
|
102
|
-
return !isNullOrUndefined(val) && this.decode(val.toString()) === val;
|
|
103
|
-
},
|
|
104
|
-
pattern: /-?\d+/,
|
|
105
|
-
}),
|
|
106
|
-
bool: makeDefaultType({
|
|
107
|
-
encode: (val) => (val && 1) || 0,
|
|
108
|
-
decode: (val) => parseInt(val, 10) !== 0,
|
|
109
|
-
is: is(Boolean),
|
|
110
|
-
pattern: /[01]/,
|
|
111
|
-
}),
|
|
112
|
-
date: makeDefaultType({
|
|
113
|
-
encode: function (val) {
|
|
114
|
-
return !this.is(val)
|
|
115
|
-
? undefined
|
|
116
|
-
: [
|
|
117
|
-
val.getFullYear(),
|
|
118
|
-
("0" + (val.getMonth() + 1)).slice(-2),
|
|
119
|
-
("0" + val.getDate()).slice(-2),
|
|
120
|
-
].join("-");
|
|
121
|
-
},
|
|
122
|
-
decode: function (val) {
|
|
123
|
-
if (this.is(val)) return val;
|
|
124
|
-
const match = this.capture.exec(val);
|
|
125
|
-
return match ? new Date(match[1], match[2] - 1, match[3]) : undefined;
|
|
126
|
-
},
|
|
127
|
-
is: (val) => val instanceof Date && !isNaN(val.valueOf()),
|
|
128
|
-
equals(l, r) {
|
|
129
|
-
return ["getFullYear", "getMonth", "getDate"].reduce(
|
|
130
|
-
(acc, fn) => acc && l[fn]() === r[fn](),
|
|
131
|
-
true,
|
|
132
|
-
);
|
|
133
|
-
},
|
|
134
|
-
pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,
|
|
135
|
-
capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,
|
|
136
|
-
}),
|
|
137
|
-
json: makeDefaultType({
|
|
138
|
-
encode: JSON.stringify,
|
|
139
|
-
decode: JSON.parse,
|
|
140
|
-
is: is(Object),
|
|
141
|
-
equals: equals,
|
|
142
|
-
pattern: /[^/]*/,
|
|
143
|
-
}),
|
|
144
|
-
// does not encode/decode
|
|
145
|
-
any: makeDefaultType({
|
|
146
|
-
encode: (x) => x,
|
|
147
|
-
decode: (x) => x,
|
|
148
|
-
is: () => true,
|
|
149
|
-
equals: equals,
|
|
150
|
-
}),
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
initDefaultTypes();
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { filter, map, allTrueR, find } from "../../shared/common.js";
|
|
2
|
-
import { isInjectable } from "../../shared/predicates.js";
|
|
3
|
-
import { isDefined, isUndefined, isString } from "../../shared/utils.js";
|
|
4
|
-
import { ParamType } from "./param-type.js";
|
|
5
|
-
|
|
6
|
-
const isShorthand = (cfg) =>
|
|
7
|
-
["value", "type", "squash", "array", "dynamic"].filter(
|
|
8
|
-
Object.prototype.hasOwnProperty.bind(cfg || {}),
|
|
9
|
-
).length === 0;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @private
|
|
13
|
-
* @enum {number}
|
|
14
|
-
*/
|
|
15
|
-
export const DefType = {
|
|
16
|
-
PATH: 0,
|
|
17
|
-
SEARCH: 1,
|
|
18
|
-
CONFIG: 2,
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
function getParamDeclaration(paramName, location, state) {
|
|
22
|
-
const noReloadOnSearch =
|
|
23
|
-
(state.reloadOnSearch === false && location === DefType.SEARCH) ||
|
|
24
|
-
undefined;
|
|
25
|
-
const dynamic = find([state.dynamic, noReloadOnSearch], isDefined);
|
|
26
|
-
const defaultConfig = isDefined(dynamic) ? { dynamic } : {};
|
|
27
|
-
const paramConfig = unwrapShorthand(
|
|
28
|
-
state && state.params && state.params[paramName],
|
|
29
|
-
);
|
|
30
|
-
return Object.assign(defaultConfig, paramConfig);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function unwrapShorthand(cfg) {
|
|
34
|
-
cfg = isShorthand(cfg) ? { value: cfg } : cfg;
|
|
35
|
-
getStaticDefaultValue["__cacheable"] = true;
|
|
36
|
-
function getStaticDefaultValue() {
|
|
37
|
-
return cfg.value;
|
|
38
|
-
}
|
|
39
|
-
const $$fn = isInjectable(cfg.value) ? cfg.value : getStaticDefaultValue;
|
|
40
|
-
return Object.assign(cfg, { $$fn });
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function getType(cfg, urlType, location, id, paramTypes) {
|
|
44
|
-
if (cfg.type && urlType && urlType.name !== "string")
|
|
45
|
-
throw new Error(`Param '${id}' has two type configurations.`);
|
|
46
|
-
if (
|
|
47
|
-
cfg.type &&
|
|
48
|
-
urlType &&
|
|
49
|
-
urlType.name === "string" &&
|
|
50
|
-
paramTypes.type(cfg.type)
|
|
51
|
-
)
|
|
52
|
-
return paramTypes.type(cfg.type);
|
|
53
|
-
if (urlType) return urlType;
|
|
54
|
-
if (!cfg.type) {
|
|
55
|
-
const type =
|
|
56
|
-
location === DefType.CONFIG
|
|
57
|
-
? "any"
|
|
58
|
-
: location === DefType.PATH
|
|
59
|
-
? "path"
|
|
60
|
-
: location === DefType.SEARCH
|
|
61
|
-
? "query"
|
|
62
|
-
: "string";
|
|
63
|
-
return paramTypes.type(type);
|
|
64
|
-
}
|
|
65
|
-
return cfg.type instanceof ParamType ? cfg.type : paramTypes.type(cfg.type);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/** returns false, true, or the squash value to indicate the "default parameter url squash policy". */
|
|
69
|
-
function getSquashPolicy(config, isOptional, defaultPolicy) {
|
|
70
|
-
const squash = config.squash;
|
|
71
|
-
if (!isOptional || squash === false) return false;
|
|
72
|
-
if (!isDefined(squash) || squash == null) return defaultPolicy;
|
|
73
|
-
if (squash === true || isString(squash)) return squash;
|
|
74
|
-
throw new Error(
|
|
75
|
-
`Invalid squash policy: '${squash}'. Valid policies: false, true, or arbitrary string`,
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function getReplace(config, arrayMode, isOptional, squash) {
|
|
80
|
-
const defaultPolicy = [
|
|
81
|
-
{ from: "", to: isOptional || arrayMode ? undefined : "" },
|
|
82
|
-
{ from: null, to: isOptional || arrayMode ? undefined : "" },
|
|
83
|
-
];
|
|
84
|
-
const replace = Array.isArray(config.replace) ? config.replace : [];
|
|
85
|
-
if (isString(squash)) replace.push({ from: squash, to: undefined });
|
|
86
|
-
const configuredKeys = map(replace, (x) => x.from);
|
|
87
|
-
return filter(
|
|
88
|
-
defaultPolicy,
|
|
89
|
-
(item) => configuredKeys.indexOf(item.from) === -1,
|
|
90
|
-
).concat(replace);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export class Param {
|
|
94
|
-
/**
|
|
95
|
-
*
|
|
96
|
-
* @param {*} id
|
|
97
|
-
* @param {*} type
|
|
98
|
-
* @param {DefType} location
|
|
99
|
-
* @param {import("../url/url-config.js").UrlConfigProvider} urlConfig
|
|
100
|
-
* @param {*} state
|
|
101
|
-
*/
|
|
102
|
-
constructor(id, type, location, urlConfig, state) {
|
|
103
|
-
const config = getParamDeclaration(id, location, state);
|
|
104
|
-
type = getType(config, type, location, id, urlConfig.paramTypes);
|
|
105
|
-
const arrayMode = getArrayMode();
|
|
106
|
-
type = arrayMode
|
|
107
|
-
? type.$asArray(arrayMode, location === DefType.SEARCH)
|
|
108
|
-
: type;
|
|
109
|
-
const isOptional =
|
|
110
|
-
config.value !== undefined || location === DefType.SEARCH;
|
|
111
|
-
const dynamic = isDefined(config.dynamic)
|
|
112
|
-
? !!config.dynamic
|
|
113
|
-
: !!type.dynamic;
|
|
114
|
-
const raw = isDefined(config.raw) ? !!config.raw : !!type.raw;
|
|
115
|
-
const squash = getSquashPolicy(
|
|
116
|
-
config,
|
|
117
|
-
isOptional,
|
|
118
|
-
urlConfig.defaultSquashPolicy(),
|
|
119
|
-
);
|
|
120
|
-
const replace = getReplace(config, arrayMode, isOptional, squash);
|
|
121
|
-
const inherit = isDefined(config.inherit)
|
|
122
|
-
? !!config.inherit
|
|
123
|
-
: !!type.inherit;
|
|
124
|
-
// array config: param name (param[]) overrides default settings. explicit config overrides param name.
|
|
125
|
-
function getArrayMode() {
|
|
126
|
-
const arrayDefaults = {
|
|
127
|
-
array: location === DefType.SEARCH ? "auto" : false,
|
|
128
|
-
};
|
|
129
|
-
const arrayParamNomenclature = id.match(/\[\]$/) ? { array: true } : {};
|
|
130
|
-
return Object.assign(arrayDefaults, arrayParamNomenclature, config).array;
|
|
131
|
-
}
|
|
132
|
-
this.isOptional = isOptional;
|
|
133
|
-
this.type = type;
|
|
134
|
-
this.location = location;
|
|
135
|
-
this.id = id;
|
|
136
|
-
this.dynamic = dynamic;
|
|
137
|
-
this.raw = raw;
|
|
138
|
-
this.squash = squash;
|
|
139
|
-
this.replace = replace;
|
|
140
|
-
this.inherit = inherit;
|
|
141
|
-
this.array = arrayMode;
|
|
142
|
-
this.config = config;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
isDefaultValue(value) {
|
|
146
|
-
return this.isOptional && this.type.equals(this.value(), value);
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the
|
|
150
|
-
* default value, which may be the result of an injectable function.
|
|
151
|
-
*/
|
|
152
|
-
value(value) {
|
|
153
|
-
/**
|
|
154
|
-
* [Internal] Get the default value of a parameter, which may be an injectable function.
|
|
155
|
-
*/
|
|
156
|
-
const getDefaultValue = () => {
|
|
157
|
-
if (this._defaultValueCache) return this._defaultValueCache.defaultValue;
|
|
158
|
-
if (!window["angular"].$injector)
|
|
159
|
-
throw new Error(
|
|
160
|
-
"Injectable functions cannot be called at configuration time",
|
|
161
|
-
);
|
|
162
|
-
const defaultValue = window["angular"].$injector.invoke(this.config.$$fn);
|
|
163
|
-
if (
|
|
164
|
-
defaultValue !== null &&
|
|
165
|
-
defaultValue !== undefined &&
|
|
166
|
-
!this.type.is(defaultValue)
|
|
167
|
-
)
|
|
168
|
-
throw new Error(
|
|
169
|
-
`Default value (${defaultValue}) for parameter '${this.id}' is not an instance of ParamType (${this.type.name})`,
|
|
170
|
-
);
|
|
171
|
-
if (this.config.$$fn["__cacheable"]) {
|
|
172
|
-
this._defaultValueCache = { defaultValue };
|
|
173
|
-
}
|
|
174
|
-
return defaultValue;
|
|
175
|
-
};
|
|
176
|
-
const replaceSpecialValues = (val) => {
|
|
177
|
-
for (const tuple of this.replace) {
|
|
178
|
-
if (tuple.from === val) return tuple.to;
|
|
179
|
-
}
|
|
180
|
-
return val;
|
|
181
|
-
};
|
|
182
|
-
value = replaceSpecialValues(value);
|
|
183
|
-
return isUndefined(value) ? getDefaultValue() : this.type.$normalize(value);
|
|
184
|
-
}
|
|
185
|
-
isSearch() {
|
|
186
|
-
return this.location === DefType.SEARCH;
|
|
187
|
-
}
|
|
188
|
-
validates(value) {
|
|
189
|
-
// There was no parameter value, but the param is optional
|
|
190
|
-
if ((isUndefined(value) || value === null) && this.isOptional) return true;
|
|
191
|
-
// The value was not of the correct ParamType, and could not be decoded to the correct ParamType
|
|
192
|
-
const normalized = this.type.$normalize(value);
|
|
193
|
-
if (!this.type.is(normalized)) return false;
|
|
194
|
-
// The value was of the correct type, but when encoded, did not match the ParamType's regexp
|
|
195
|
-
const encoded = normalized; // this.type.encode(normalized);
|
|
196
|
-
return !(isString(encoded) && !this.type.pattern.exec(encoded));
|
|
197
|
-
}
|
|
198
|
-
toString() {
|
|
199
|
-
return `{Param:${this.id} ${this.type} squash: '${this.squash}' optional: ${this.isOptional}}`;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
static values(params, values = {}) {
|
|
203
|
-
const paramValues = {};
|
|
204
|
-
for (const param of params) {
|
|
205
|
-
paramValues[param.id] = param.value(values[param.id]);
|
|
206
|
-
}
|
|
207
|
-
return paramValues;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Finds [[Param]] objects which have different param values
|
|
211
|
-
*
|
|
212
|
-
* Filters a list of [[Param]] objects to only those whose parameter values differ in two param value objects
|
|
213
|
-
*
|
|
214
|
-
* @param params: The list of Param objects to filter
|
|
215
|
-
* @param values1: The first set of parameter values
|
|
216
|
-
* @param values2: the second set of parameter values
|
|
217
|
-
*
|
|
218
|
-
* @returns any Param objects whose values were different between values1 and values2
|
|
219
|
-
*/
|
|
220
|
-
static changed(params, values1 = {}, values2 = {}) {
|
|
221
|
-
return params.filter(
|
|
222
|
-
(param) => !param.type.equals(values1[param.id], values2[param.id]),
|
|
223
|
-
);
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Checks if two param value objects are equal (for a set of [[Param]] objects)
|
|
227
|
-
*
|
|
228
|
-
* @param params The list of [[Param]] objects to check
|
|
229
|
-
* @param values1 The first set of param values
|
|
230
|
-
* @param values2 The second set of param values
|
|
231
|
-
*
|
|
232
|
-
* @returns true if the param values in values1 and values2 are equal
|
|
233
|
-
*/
|
|
234
|
-
static equals(params, values1 = {}, values2 = {}) {
|
|
235
|
-
return Param.changed(params, values1, values2).length === 0;
|
|
236
|
-
}
|
|
237
|
-
/** Returns true if a the parameter values are valid, according to the Param definitions */
|
|
238
|
-
static validates(params, values = {}) {
|
|
239
|
-
return params
|
|
240
|
-
.map((param) => param.validates(values[param.id]))
|
|
241
|
-
.reduce(allTrueR, true);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ancestors } from "../../shared/common.js";
|
|
2
|
-
|
|
3
|
-
export class StateParams {
|
|
4
|
-
constructor(params = {}) {
|
|
5
|
-
Object.assign(this, params);
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Merges a set of parameters with all parameters inherited between the common parents of the
|
|
9
|
-
* current state and a given destination state.
|
|
10
|
-
*
|
|
11
|
-
* @param {Object} newParams The set of parameters which will be composited with inherited params.
|
|
12
|
-
* @param {Object} $current Internal definition of object representing the current state.
|
|
13
|
-
* @param {Object} $to Internal definition of object representing state to transition to.
|
|
14
|
-
*/
|
|
15
|
-
$inherit(newParams, $current, $to) {
|
|
16
|
-
const parents = ancestors($current, $to),
|
|
17
|
-
inherited = {},
|
|
18
|
-
inheritList = [];
|
|
19
|
-
for (const i in parents) {
|
|
20
|
-
if (!parents[i] || !parents[i].params) continue;
|
|
21
|
-
const parentParams = parents[i].params;
|
|
22
|
-
const parentParamsKeys = Object.keys(parentParams);
|
|
23
|
-
if (!parentParamsKeys.length) continue;
|
|
24
|
-
for (const j in parentParamsKeys) {
|
|
25
|
-
if (
|
|
26
|
-
parentParams[parentParamsKeys[j]].inherit == false ||
|
|
27
|
-
inheritList.indexOf(parentParamsKeys[j]) >= 0
|
|
28
|
-
)
|
|
29
|
-
continue;
|
|
30
|
-
inheritList.push(parentParamsKeys[j]);
|
|
31
|
-
inherited[parentParamsKeys[j]] = this[parentParamsKeys[j]];
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return Object.assign({}, inherited, newParams);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { applyPairs, find } from "../../shared/common.js";
|
|
2
|
-
import { propEq } from "../../shared/hof.js";
|
|
3
|
-
import { Param } from "../params/param.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* A node in a [[TreeChanges]] path
|
|
7
|
-
*
|
|
8
|
-
* For a [[TreeChanges]] path, this class holds the stateful information for a single node in the path.
|
|
9
|
-
* Each PathNode corresponds to a state being entered, exited, or retained.
|
|
10
|
-
* The stateful information includes parameter values and resolve data.
|
|
11
|
-
*/
|
|
12
|
-
export class PathNode {
|
|
13
|
-
constructor(stateOrNode) {
|
|
14
|
-
if (stateOrNode instanceof PathNode) {
|
|
15
|
-
const node = stateOrNode;
|
|
16
|
-
this.state = node.state;
|
|
17
|
-
this.paramSchema = node.paramSchema.slice();
|
|
18
|
-
this.paramValues = Object.assign({}, node.paramValues);
|
|
19
|
-
this.resolvables = node.resolvables.slice();
|
|
20
|
-
this.views = node.views && node.views.slice();
|
|
21
|
-
} else {
|
|
22
|
-
const state = stateOrNode;
|
|
23
|
-
this.state = state;
|
|
24
|
-
this.paramSchema = state.parameters({ inherit: false });
|
|
25
|
-
this.paramValues = {};
|
|
26
|
-
this.resolvables = state.resolvables.map((res) => res.clone());
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
clone() {
|
|
31
|
-
return new PathNode(this);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/** Sets [[paramValues]] for the node, from the values of an object hash */
|
|
35
|
-
applyRawParams(params) {
|
|
36
|
-
const getParamVal = (paramDef) => [
|
|
37
|
-
paramDef.id,
|
|
38
|
-
paramDef.value(params[paramDef.id]),
|
|
39
|
-
];
|
|
40
|
-
this.paramValues = this.paramSchema.reduce(
|
|
41
|
-
(memo, pDef) => applyPairs(memo, getParamVal(pDef)),
|
|
42
|
-
{},
|
|
43
|
-
);
|
|
44
|
-
return this;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** Gets a specific [[Param]] metadata that belongs to the node */
|
|
48
|
-
parameter(name) {
|
|
49
|
-
return find(this.paramSchema, propEq("id", name));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* @returns true if the state and parameter values for another PathNode are
|
|
54
|
-
* equal to the state and param values for this PathNode
|
|
55
|
-
*/
|
|
56
|
-
equals(node, paramsFn) {
|
|
57
|
-
const diff = this.diff(node, paramsFn);
|
|
58
|
-
return diff && diff.length === 0;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Finds Params with different parameter values on another PathNode.
|
|
63
|
-
*
|
|
64
|
-
* Given another node (of the same state), finds the parameter values which differ.
|
|
65
|
-
* Returns the [[Param]] (schema objects) whose parameter values differ.
|
|
66
|
-
*
|
|
67
|
-
* Given another node for a different state, returns `false`
|
|
68
|
-
*
|
|
69
|
-
* @param node The node to compare to
|
|
70
|
-
* @param paramsFn A function that returns which parameters should be compared.
|
|
71
|
-
* @returns The [[Param]]s which differ, or null if the two nodes are for different states
|
|
72
|
-
*/
|
|
73
|
-
diff(node, paramsFn) {
|
|
74
|
-
if (this.state !== node.state) return false;
|
|
75
|
-
const params = paramsFn ? paramsFn(this) : this.paramSchema;
|
|
76
|
-
return Param.changed(params, this.paramValues, node.paramValues);
|
|
77
|
-
}
|
|
78
|
-
}
|