{
"version": 3,
"file": "stateEvents.js",
"sources": [
"@uirouter\\angularjs\\src\\angular.ts",
"@uirouter\\angularjs\\src\\legacy\\stateEvents.ts"
],
"sourcesContent": [
"/** @publicapi @module ng1 */ /** */\r\nimport * as ng_from_import from 'angular';\r\n/** @hidden */ declare let angular;\r\n/** @hidden */ const ng_from_global = angular;\r\n/** @hidden */ export const ng = ng_from_import && ng_from_import.module ? ng_from_import : ng_from_global;\r\n",
"/**\r\n * # Legacy state events\r\n *\r\n * Polyfill implementation of the UI-Router 0.2.x state events.\r\n *\r\n * The 0.2.x state events are deprecated. We recommend moving to Transition Hooks instead, as they\r\n * provide much more flexibility, support async, and provide the context (the Transition, etc) necessary\r\n * to implement meaningful application behaviors.\r\n *\r\n * To enable these state events, include the `stateEvents.js` file in your project, e.g.,\r\n * ```\r\n * \r\n * ```\r\n * and also make sure you depend on the `ui.router.state.events` angular module, e.g.,\r\n * ```\r\n * angular.module(\"myApplication\", ['ui.router', 'ui.router.state.events']\r\n * ```\r\n *\r\n * @publicapi @module ng1_state_events\r\n */ /** */\r\nimport { ng as angular } from '../angular';\r\nimport { IScope, IAngularEvent, IServiceProviderFactory } from 'angular';\r\nimport {\r\n Obj,\r\n TargetState,\r\n StateService,\r\n Transition,\r\n TransitionService,\r\n UrlRouter,\r\n HookResult,\r\n UIInjector,\r\n} from '@uirouter/core';\r\nimport { StateProvider } from '../stateProvider';\r\n\r\n/**\r\n * An event broadcast on `$rootScope` when the state transition **begins**.\r\n *\r\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\r\n *\r\n * You can use `event.preventDefault()`\r\n * to prevent the transition from happening and then the transition promise will be\r\n * rejected with a `'transition prevented'` value.\r\n *\r\n * Additional arguments to the event handler are provided:\r\n * - `toState`: the Transition Target state\r\n * - `toParams`: the Transition Target Params\r\n * - `fromState`: the state the transition is coming from\r\n * - `fromParams`: the parameters from the state the transition is coming from\r\n * - `options`: any Transition Options\r\n * - `$transition$`: the [[Transition]]\r\n *\r\n * #### Example:\r\n * ```js\r\n * $rootScope.$on('$stateChangeStart', function(event, transition) {\r\n * event.preventDefault();\r\n * // transitionTo() promise will be rejected with\r\n * // a 'transition prevented' error\r\n * })\r\n * ```\r\n *\r\n * @event $stateChangeStart\r\n * @deprecated\r\n */\r\nexport let $stateChangeStart: IAngularEvent;\r\n\r\n/**\r\n * An event broadcast on `$rootScope` if a transition is **cancelled**.\r\n *\r\n * ### Deprecation warning: use [[TransitionService.onStart]] instead\r\n *\r\n * Additional arguments to the event handler are provided:\r\n * - `toState`: the Transition Target state\r\n * - `toParams`: the Transition Target Params\r\n * - `fromState`: the state the transition is coming from\r\n * - `fromParams`: the parameters from the state the transition is coming from\r\n * - `options`: any Transition Options\r\n * - `$transition$`: the [[Transition]] that was cancelled\r\n *\r\n * @event $stateChangeCancel\r\n * @deprecated\r\n */\r\nexport let $stateChangeCancel: IAngularEvent;\r\n\r\n/**\r\n * An event broadcast on `$rootScope` once the state transition is **complete**.\r\n *\r\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onSuccess]]\r\n *\r\n * Additional arguments to the event handler are provided:\r\n * - `toState`: the Transition Target state\r\n * - `toParams`: the Transition Target Params\r\n * - `fromState`: the state the transition is coming from\r\n * - `fromParams`: the parameters from the state the transition is coming from\r\n * - `options`: any Transition Options\r\n * - `$transition$`: the [[Transition]] that just succeeded\r\n *\r\n * @event $stateChangeSuccess\r\n * @deprecated\r\n */\r\nexport let $stateChangeSuccess: IAngularEvent;\r\n\r\n/**\r\n * An event broadcast on `$rootScope` when an **error occurs** during transition.\r\n *\r\n * ### Deprecation warning: use [[TransitionService.onStart]] and [[Transition.promise]], or [[Transition.onError]]\r\n *\r\n * It's important to note that if you\r\n * have any errors in your resolve functions (javascript errors, non-existent services, etc)\r\n * they will not throw traditionally. You must listen for this $stateChangeError event to\r\n * catch **ALL** errors.\r\n *\r\n * Additional arguments to the event handler are provided:\r\n * - `toState`: the Transition Target state\r\n * - `toParams`: the Transition Target Params\r\n * - `fromState`: the state the transition is coming from\r\n * - `fromParams`: the parameters from the state the transition is coming from\r\n * - `error`: The reason the transition errored.\r\n * - `options`: any Transition Options\r\n * - `$transition$`: the [[Transition]] that errored\r\n *\r\n * @event $stateChangeError\r\n * @deprecated\r\n */\r\nexport let $stateChangeError: IAngularEvent;\r\n\r\n/**\r\n * An event broadcast on `$rootScope` when a requested state **cannot be found** using the provided state name.\r\n *\r\n * ### Deprecation warning: use [[StateService.onInvalid]] instead\r\n *\r\n * The event is broadcast allowing any handlers a single chance to deal with the error (usually by\r\n * lazy-loading the unfound state). A `TargetState` object is passed to the listener handler,\r\n * you can see its properties in the example. You can use `event.preventDefault()` to abort the\r\n * transition and the promise returned from `transitionTo()` will be rejected with a\r\n * `'transition aborted'` error.\r\n *\r\n * Additional arguments to the event handler are provided:\r\n * - `unfoundState` Unfound State information. Contains: `to, toParams, options` properties.\r\n * - `fromState`: the state the transition is coming from\r\n * - `fromParams`: the parameters from the state the transition is coming from\r\n * - `options`: any Transition Options\r\n *\r\n * #### Example:\r\n * ```js\r\n * // somewhere, assume lazy.state has not been defined\r\n * $state.go(\"lazy.state\", { a: 1, b: 2 }, { inherit: false });\r\n *\r\n * // somewhere else\r\n * $scope.$on('$stateNotFound', function(event, transition) {\r\n * function(event, unfoundState, fromState, fromParams){\r\n * console.log(unfoundState.to); // \"lazy.state\"\r\n * console.log(unfoundState.toParams); // {a:1, b:2}\r\n * console.log(unfoundState.options); // {inherit:false} + default options\r\n * });\r\n * ```\r\n *\r\n * @event $stateNotFound\r\n * @deprecated\r\n */\r\nexport let $stateNotFound: IAngularEvent;\r\n\r\n(function () {\r\n const { isFunction, isString } = angular;\r\n\r\n function applyPairs(memo: Obj, keyValTuple: any[]) {\r\n let key: string, value: any;\r\n if (Array.isArray(keyValTuple)) [key, value] = keyValTuple;\r\n if (!isString(key)) throw new Error('invalid parameters to applyPairs');\r\n memo[key] = value;\r\n return memo;\r\n }\r\n\r\n function stateChangeStartHandler($transition$: Transition) {\r\n if (!$transition$.options().notify || !$transition$.valid() || $transition$.ignored()) return;\r\n\r\n const $injector = $transition$.injector();\r\n const $stateEvents = $injector.get('$stateEvents');\r\n const $rootScope = $injector.get('$rootScope');\r\n const $state = $injector.get('$state');\r\n const $urlRouter = $injector.get('$urlRouter');\r\n\r\n const enabledEvents = $stateEvents.provider.enabled();\r\n\r\n const toParams = $transition$.params('to');\r\n const fromParams = $transition$.params('from');\r\n\r\n if (enabledEvents.$stateChangeSuccess) {\r\n const startEvent = $rootScope.$broadcast(\r\n '$stateChangeStart',\r\n $transition$.to(),\r\n toParams,\r\n $transition$.from(),\r\n fromParams,\r\n $transition$.options(),\r\n $transition$\r\n );\r\n\r\n if (startEvent.defaultPrevented) {\r\n if (enabledEvents.$stateChangeCancel) {\r\n $rootScope.$broadcast(\r\n '$stateChangeCancel',\r\n $transition$.to(),\r\n toParams,\r\n $transition$.from(),\r\n fromParams,\r\n $transition$.options(),\r\n $transition$\r\n );\r\n }\r\n // Don't update and resync url if there's been a new transition started. see issue #2238, #600\r\n if ($state.transition == null) $urlRouter.update();\r\n return false;\r\n }\r\n\r\n // right after global state is updated\r\n const successOpts = { priority: 9999 };\r\n $transition$.onSuccess(\r\n {},\r\n function () {\r\n $rootScope.$broadcast(\r\n '$stateChangeSuccess',\r\n $transition$.to(),\r\n toParams,\r\n $transition$.from(),\r\n fromParams,\r\n $transition$.options(),\r\n $transition$\r\n );\r\n },\r\n successOpts\r\n );\r\n }\r\n\r\n if (enabledEvents.$stateChangeError) {\r\n $transition$.promise['catch'](function (error) {\r\n if (error && (error.type === 2 /* RejectType.SUPERSEDED */ || error.type === 3) /* RejectType.ABORTED */)\r\n return;\r\n\r\n const evt = $rootScope.$broadcast(\r\n '$stateChangeError',\r\n $transition$.to(),\r\n toParams,\r\n $transition$.from(),\r\n fromParams,\r\n error,\r\n $transition$.options(),\r\n $transition$\r\n );\r\n\r\n if (!evt.defaultPrevented) {\r\n $urlRouter.update();\r\n }\r\n });\r\n }\r\n }\r\n\r\n stateNotFoundHandler.$inject = ['$to$', '$from$', '$state', '$rootScope', '$urlRouter'];\r\n function stateNotFoundHandler($to$: TargetState, $from$: TargetState, injector: UIInjector): HookResult {\r\n const $state: StateService = injector.get('$state');\r\n const $rootScope: IScope = injector.get('$rootScope');\r\n const $urlRouter: UrlRouter = injector.get('$urlRouter');\r\n\r\n interface StateNotFoundEvent extends IAngularEvent {\r\n retry: Promise;\r\n }\r\n\r\n const redirect = { to: $to$.identifier(), toParams: $to$.params(), options: $to$.options() };\r\n const e = $rootScope.$broadcast('$stateNotFound', redirect, $from$.state(), $from$.params());\r\n\r\n if (e.defaultPrevented || e.retry) $urlRouter.update();\r\n\r\n function redirectFn(): TargetState {\r\n return $state.target(redirect.to, redirect.toParams, redirect.options);\r\n }\r\n\r\n if (e.defaultPrevented) {\r\n return false;\r\n } else if (e.retry || !!$state.get(redirect.to)) {\r\n return e.retry && isFunction(e.retry.then) ? e.retry.then(redirectFn) : redirectFn();\r\n }\r\n }\r\n\r\n $StateEventsProvider.$inject = ['$stateProvider'];\r\n function $StateEventsProvider($stateProvider: StateProvider) {\r\n $StateEventsProvider.prototype.instance = this;\r\n\r\n interface IEventsToggle {\r\n [key: string]: boolean;\r\n $stateChangeStart: boolean;\r\n $stateNotFound: boolean;\r\n $stateChangeSuccess: boolean;\r\n $stateChangeError: boolean;\r\n }\r\n\r\n let runtime = false;\r\n const allEvents = ['$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError'];\r\n const enabledStateEvents = allEvents.map((e) => [e, true]).reduce(applyPairs, {});\r\n\r\n function assertNotRuntime() {\r\n if (runtime) throw new Error('Cannot enable events at runtime (use $stateEventsProvider');\r\n }\r\n\r\n /**\r\n * Enables the deprecated UI-Router 0.2.x State Events\r\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\r\n */\r\n this.enable = function (...events: string[]) {\r\n assertNotRuntime();\r\n if (!events || !events.length) events = allEvents;\r\n events.forEach((event) => (enabledStateEvents[event] = true));\r\n };\r\n\r\n /**\r\n * Disables the deprecated UI-Router 0.2.x State Events\r\n * [ '$stateChangeStart', '$stateNotFound', '$stateChangeSuccess', '$stateChangeError' ]\r\n */\r\n this.disable = function (...events: string[]) {\r\n assertNotRuntime();\r\n if (!events || !events.length) events = allEvents;\r\n events.forEach((event) => delete enabledStateEvents[event]);\r\n };\r\n\r\n this.enabled = () => enabledStateEvents;\r\n\r\n this.$get = $get;\r\n $get.$inject = ['$transitions'];\r\n function $get($transitions: TransitionService) {\r\n runtime = true;\r\n\r\n if (enabledStateEvents['$stateNotFound']) $stateProvider.onInvalid(stateNotFoundHandler);\r\n if (enabledStateEvents.$stateChangeStart) $transitions.onBefore({}, stateChangeStartHandler, { priority: 1000 });\r\n\r\n return {\r\n provider: $StateEventsProvider.prototype.instance,\r\n };\r\n }\r\n }\r\n\r\n angular\r\n .module('ui.router.state.events', ['ui.router.state'])\r\n .provider('$stateEvents', ($StateEventsProvider as any) as IServiceProviderFactory)\r\n .run([\r\n '$stateEvents',\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n function ($stateEvents: any) {\r\n /* Invokes $get() */\r\n },\r\n ]);\r\n})();\r\n"
],
"names": [
"ng_from_import.module",
"angular"
],
"mappings": "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"
}